The first programs were written in binary/hexadecimal, and only later did we invent coding languages to convert between human readable code and binary machine code.
So why can’t we just do the same thing in reverse? I hear a lot about devices from audio streaming to footware rendered useless by abandonware. Couldn’t a very smart person (or AI) just take the existing program and turn it into code?
Thank you for adding this! If people want a real life example of the effect shown in this pseudocode, here is a side-by-side comparison of real production code I wrote and it’s decompiled counterpart:
override fun process(event: MapStateEvent) { when(event) { is MapStateEvent.LassoButtonClicked -> { action( MapStateAction.LassoButtonSelected(false), MapStateAction.Transition(BrowseMapState::class.java) ) } is MapStateEvent.SaveSearchClicked -> { save(event.name) } // Propagated from the previous level is MapStateEvent.LassoCursorLifted -> { load(event.line + event.line.first()) } is MapStateEvent.ClusterClick -> { when (val action = ClusterHelper.handleClick(event.cluster)) { is ClusterHelper.Action.OpenBottomDialog -> action(MapStateAction.OpenBottomDialog(action.items)) is ClusterHelper.Action.AnimateCamera -> action(MapStateAction.AnimateCamera(action.animation)) } } is MapStateEvent.ClusterItemClick -> { action( MapStateAction.OpenItem(event.item.proposal) ) } else -> {} } }
decompiled:
public void c(@l j jVar) { L.p(jVar, D.f10724I0); if (jVar instanceof j.c) { f(new i.h(false), new i.r(c.class, (j) null, 2, (C2498w) null)); } else if (jVar instanceof j.e) { m(((j.e) jVar).f8620a); } else if (jVar instanceof j.d) { List<LatLng> list = ((j.d) jVar).f8619a; j(I.A4(list, I.w2(list))); } else if (jVar instanceof j.a) { d.a a7 = d.f8573a.a(((j.a) jVar).f8616a); if (a7 instanceof d.a.b) { f(new i.j(((d.a.b) a7).f8575a)); } else if (a7 instanceof d.a.C0058a) { f(new i.a(((d.a.C0058a) a7).f8574a)); } } else if (jVar instanceof j.b) { f(new i.k(((j.b) jVar).f8617a.f11799a)); } }
keep in mind, this was buried in hundreds of unlabeled classes and functions. I was only able to find this in a short amount of time because I have the most intimate knowledge of the code possible, having written it myself.