triplescripts.org wiki SDIPD

SDIPD

From triplescripts.org wiki
(Redirected from Destructive compilation)

Triple scripts are an embodiment of the SDIPD principle (pronounced "serendipity" or "s'dipity"?). SDIPD stands for "package distribution is source distribution [sic]". (Yes, really. Equality is commutative.)

Software that obeys the SDIPD principle must eschew with conventional toolchains, requiring instead non-destructive compilation (if any compilation occurs at all). Traditional compilers take as input human readable source code and mangle it to produce an executable from which the original source code cannot be recovered. This implementation detail of computing systems in the 1980s catalyzed the free software movement—later the movement was retrofitted to operate under banner of "open source", a term that arose in 1998 motivated by the release of the Netscape Navigator source code. Much of the free and open source software corpus, however, does not exhibit or enable a form of computing with the goal of non-destructive compilation. Even if the source code is readily available, most projects' build procedures still rely on compilers that perform the destructive process of transforming human readable source code into binary executables and object files suitable for loading into memory when the program is run. With non-destructive compilation, the program maintains some level of readability for humans whether in its compiled form or in its pre-compilation form, and indeed the executable produced by the compiler can be considered equivalent to the original source code from which it was created; that is, it is possible reverse the compilation process to reproduce the original source code with perfect fidelity. That's a precondition for non-destructive compilation generally; for the non-destructive compilation approach that triplescripts.org takes in particular, it's feasible for a human to open the compiler output and modify it directly to effect the sorts of changes he or she desires, with no need for intermediate decompilation and recompilation steps (although this approach is of course available the machine operator).

Among other properties that triple scripts exhibit, the triple script file format was designed to respect SDIPD. The triplescripts.org reference compiler trplkt applies non-destructive compilation to the programs it processes. (The obvious question is whether trplkt as a program itself exhibits SDIPD, and the answer is "yes"; trplkt is itself implemented as a triple script.)

See also[edit]

Automorphism

Cookies help us deliver our services. By using our services, you agree to our use of cookies.