Software program developer and classic computing fanatic Felix Winkelmann has launched a low-level programming language and matching compiler for “tiny computer systems,” with back-ends supporting the Uxn digital machine, the Atari 2600/VCS console, the Commodore 64 and compatibles, and IBM-compatible PCs working DOS: SUPERFLY.
“‘SUPERFLY’ is a compiler for a non-pure practical low-level programming language concentrating on tiny computer systems,” Winkelmann explains of the challenge. “The language derives from John Backus’ ‘FP’ and is closely influenced by the ‘Ok’ array language. The compiler is written in C, has been examined on numerous UNIX like techniques and ought to be transportable to a variety of working techniques. The one exterior dependencies are a C compiler. If you do not have Uxn put in, a minimal model of the VM included within the distribution information is used for testing.”
SUPERFLY is a compiler that turns FP-inspired program code (above) into executables for “tiny computer systems.” (📷: Felix Winkelmann)
The language behind SUPERFLY is a minimal implementation of FP, for “Useful Programming,” a language launched by John Backus within the 1977 paper Can Programming Be Liberated from the von Neumann Fashion. Whereas trendy practical programming languages are sometimes primarily based on lambda calculus, Backus’ function-level method nonetheless has its followers — together with Winkelmann.
Applications written in Winkelmann’s model of FP are compiled for his or her targets utilizing SUPERFLY. “The compiler performs some minor optimizations however depends totally on the person to make sure the generated code is compact and environment friendly,” Winkelmann explains. “Regardless that the programming mannequin makes use of dynamically allotted sequences, a easy translation mannequin and the power to maintain brief arrays in registers permits to supply comparatively good code assuming the programmer retains the code easy and has a enough understanding on how the compiler operates.”
Applications compiled by SUPERFLY can run on the Uxn digital machine, Atari’s basic 2600/VCS video games console, the Commodore 64 and compatibles together with the Commodore 128 and SX-64, and x86 techniques working MS-DOS or a suitable working system. Not all backends are full, nonetheless: Winkelmann says the Uxn backend is probably the most practical, adopted by the DOS backend that “lacks some optimizations,” then the Commodore 64 backend that “wants extra testing,” and eventually the Atari 2600 backend, which is described as “full, with sure restrictions.”
Extra data, together with instance program code, is offered on the challenge’s Codeberg repository, the place the complete supply code is made accessible underneath an unspecified license.