A draft of a proposed GNU extension to the Algol 68 programming language has been published today at https://algol68-lang.org/docs/GNU68-2025-004-supper.pdf . SUPPER stropping in Algol 68 This new stropping regime aims to be more appealing to contemporary programmers, and also more convenient to be used in today's computing systems, while at the same time retaining the full expressive power of a…
Homepage for Algol 68
The Algol 68 programming language got a new homepage: https://www.algol68-lang.org .
We just got official DWARF codes assigned to Algol 68, and adapted the GCC front-end to use them. For DWARF 5, DW_LANG_Algol68 = 0x44. For DWARF 6, DW_LNAME_Algol68 = 0x2e with versioning schema YYYY, starting with 1973 for the original Revised language. The language extensions we are working on will be encoded in subsequent versions, 2025 etc. DWARF issue 250304.1 .
Byte endianness is an important aspect of encoding data. As a good binary editor poke provides support for both little and big endian, and will soon acquire the ability to encode exotic endianness like PDP endian. Endianness control is integrated in the Poke language, and is designed to be easily used in type descriptions. Let's see how.
I just committed support for styling in printf. Basically, it uses the libtextstyle approach of having styling classes that the user can customize in a .css file.
The Poke type definitions can be seen as a sort of declarative specifications for decoding and encoding procedures. You specify the structure of the data you want to operate on, and poke uses that information to automatically decode and encode the data for you. Under this perspective, struct types correspond to sequences of instructions, array types to repetitions (or loops), and union types to…
Early in the design of what is becoming GNU poke I was struck by a problem that, to my surprise, would prove not easy to overcome in a satisfactory way: would I make a byte-oriented program, or a bit-oriented program? Considering that the program in question was nothing less than an editor for binary data, this was no petty dilemma.
Poke arrays are rather peculiar. One of their seemingly bizarre characteristics is the fact that the expressions calculating their boundaries (when they are bounded) evaluate in their own lexical environment, which is captured. In other words: the expressions denoting the boundaries of Poke arrays conform closures. Also, the way they evaluate may be surprising. This is no capricious.
GNU poke is a pretty new program and it introduces many a new concept. As people are starting to join the development, I think it is a good idea to clarify how I call things. The idea is for everyone to use the same nomenclature when referring to pokeish thingies. Otherwise its gonna get very confusing very soon!
The Rabbit Herd will be meeting the weekend from 26 July to 28 July 2019, in Frankfurt. If you are in the nearby and in the mood for some hacking, feel free to join us!