I remember when the source code for this was published in BYTE magazine. I figured out every line of it, and I thought how it worked was utterly magical. It was a big factor in me going into compilers.
OT: Empire was one of the games that hooked into computing and eventual programming. For such a simple looking game it was to me then what Civilization games are to people today, something I would start playing and look up and see it was morning
> This version of Tiny Pascal was written in North Star BASIC. According to the articles, it implemented most of Pascal with some limitations:
> - the GOTO statement was missing
> - only integers and one-dimensional integer arrays were allowed for variable types
> - there was no “structured data type, pointer type, user defined type, and file type”
> - parameters were passed by value only
> On the other hand, Tiny Pascal did add some extensions to standard Pascal, such as else clauses in case statements.
I would imagine this to severely hamper creating efficient programs in the language, especially in those resource-limited days. What kind of programs were written in Tiny Pascal?
The feature set doesn't seem so crazy for those days.
It's trivial to implement two dimensional arrays. And you can pass indexes as parameters.
I remember programming with Spectrum and the first PCs and sometimes you needed to look up some table for the ordinal of a character or sprite. I remember poking bytes in the 8086 screen buffer, was it B800?
If you take a look at the BASIC source of the compiler and the Pascal source example, i think it becomes immediately obvious that the latter was a little nicer to write stuff in regardless of limitations :-P.
EDIT: the compiler also seems to support direct memory access via a special `MEM[expression]` syntax (implemented in lines 3130 for reading and 4640 for writing). Considering that those computers allowed free reign over the entire system via memory accesses, this alone would be enough to implement more complex stuff wrapped around nice functions.
Funny I hadn't heard of this before, but I grew up with BLS Pascal (which is small but very capable). Wirth's most recent iteration on the theme is Oberon [1] and the compiler is quite small and digestible (one file for each the lexer, parser, and codegen respectably). With a less verbose syntax, this could be a nice language :)