OpenComal |
OpenComal is a portable and free implementation of the Comal programming language written by moi. Currently supported platforms are Unix, MsDos and Win32 (95, 98, NT, 2000, XP and whatever they come up with next :-)
Comal is a crossover between Basic and Pascal, with the best features of both and none of the drawbacks of either. Look at this sample program. This program takes a number and writes out the correct pronounciation in Dutch (handy uh? :-). Take a look at this screen shot.
In the early history of micro computing, resources (CPU, memory, disk) were scarce, slow and expensive. Micro computers were usually distributed with limited memory capacity and limited on board software. The famous-in-it's-own-time ZX80 (by Sinclair) probably set an all time record low with 4K ROM and 1K RAM. BASIC was the language of choice back then. Almost all micro computers featured their own dialect of BASIC, usually present in ROM. These BASICs were basic indeed. Most of the time they lacked about everything necessary to develop well-structured and maintainable programs. This situation led to bad-programming habits spreading like wildfire. Would-be programmers were not encouraged to produce clear program code, and in order to make the programs smaller, faster and more attractive many tricks were used like directly modifying system variables (the notorious POKE instruction), using multi statement lines, using GOTO's etc. etc. The principles of structured programming were available of course, but structured languages like PASCAL were not really available for small micro's due to limitations in the micro's resource capacity and the then available compiler technology. Somewhere in Denmark a teacher named Borge Christensen understood the potential dangers of the BASIC habits and he leaded a team of people who were determined to modify an available BASIC interpreter so as to create a new language which should support structured programming concepts like PROCedures, FUNCtions and GOTO-less loops. The first Comal (COMmon Algorithmic Language) interpreter was born. In 1992 I went on an unplanned sabbatical of four months or so. With all this extra time on my hands, I decided to create a free Comal interpreter with the following features: - Free software (although I did not know that phrase at that time). - Containing numerous ethically justifiable extensions to the basic Comal specifications - Highly portable - Containing no built in limits to program and variable size (which is somewhat of a challenge on MsDos). I created OpenComal (then called Public Domain Comal (or PDComal)) on an XT PC (8088 CPU) running MsDos using Turbo C. I did however fathom porting to Unixes and other platforms, so everything was written in pretty portable K&R C, with all operating system dependencies separated out in a set of routines in one source file (e.g. pdclinux.c). Over the last ten years, I have been tweaking with OpenComal a bit, but not regularly. The Comal movement has all but disappeared, which is a shame because I think it is a nice language to start programming with... And right now, in 2002, I am on yet another (this time planned) sabbatical, and I decided to rename PDComal to OpenComal, attach the GPL to it, improve Linux keyboard/screen support (using ncurses) and release it to the general public. Let's see what happens....