Welcome to taxi, an interpreter of ALGOL 60. taxi is a boy-interpreter, simple but elegant, full of features and with a full documentation. Why boy? Because it does not fulfill the Knuth's requirements for a complete ALGOL system, and also because it is a very young program: maybe it will better with age. But for the rest, it's a complete and easy tool, useful for learning this wonderful language.
Documentation
Available documentation (which is contained into the downloadable package and is linked here for your convenience):
The
taxi manual for the current version in
pdf format.
Installation from sources
While the Windows version executable can be downloaded directly from the link you find at the bottom of this page, the
taxi executable for the Linux and Unix environments, must be compiled and installed before usage. I suggest the following very easy procedure in 4 steps (use the terminal):
1) Copy the package somewhere, and unpack it; it will unpack into a directory named taxi.XXX.src (where 'XXX' stands for the version string);
2) Get into taxi source directory, open the file custom.h and change what you think must be changed. The file has auto-explicative comments;
3) Now type the following (be sure to have
gcc installed):
$ make $ make install
The latter may require root privileges if you try to install
taxi into system directories, as suggested by default in the Makefile. In this case, if you have administrative access, as a common user, type
$ sudo make install
and the program will install.
4) now type the following to test the correct installation:
$ taxi --version
to see the version number, or better
$ taxi --help
to see all the basic options of
taxi. Here it is! taxi is installed and can be run! Remember also to read the manual, to know the internal secrets of taxi!
Download taxi
Version 1.0.alpha 'flag' (August 25, 2024)
Changes:
- corrected the manual
- I solved a bug in string PROCEDURE that caused a SIGSEGV error if the same string procedure was used procedurally (i.e., out of an assignment)
- solved a bug in string PROCEDURE that didn't recognize a string user procedure when used inside another function (e.g. outstring())
- solved a bug for string recognition for HEAD and CONVERT string functions
- solved a bug in RAND that correctly didn't read the keyword
Version 1.0.alpha 'geographic' (January 4, 2021)
Changes:
- modified the warning signalling a variable is already declared to act only if happening in the same procedure or level
- red-coloured letters T,A,X and I in the welcome string.
- corrected a bug in the operators' tokenization, where the central dot was bound to the dot and not to the asterisk (multiplication), as reported in the manual.
- added option -c/--cdc that interprets channel 60 as channel 0 and channel 61 as channel 1; this is necessary for programs written for the CDC system, where channels 60 and 61 were used.
- removed the check for binary files, which interfered with the Windows version. Bruce found this bug.
Version 1.0.alpha 'harbour' (January 3, 2021)
Changes:
- solved a bug found by Bruce Axtens, related to the label indexing.
Version 1.0.alpha 'inshore' (January 2, 2021)
Infinite thanks to Ian Jones, a friend and a great tester who, in the starting phase of development, compiled and ran taxi an incredibly high number of times, finding all sort of errors in the listings. And thanks also to Henry Levkin, who has shown great interest in this tool, adding a reference to www.algol60.org. And finally, last but not least, thanks to Bruce Axtens, who compiled the Windows Version. Without all these guys, this project would hardly have seen the light...
Note: This version coincides with the previous first version of May 29, 2020, with the sole addition of the PAUSE command and a small revision in the manual (for the insertion of the reference of this new addition).
Download
The taxi Alpha sources for the current Linux and Unix versions can be downloaded
here.
The Windows executable package can be downloaded here.
If you want some previous versions (while I cannot understand why, since they are surely bugged!) write to me, and I'll send them to you.
Remember: this is an Alpha version. I expect tons of bugs! I am waiting for your impressions. Send
to me your suggestions, your considerations, your corrections, the bugs you find, your working ALGOL 60 programs for
taxi, hopefully fully commented and completed with your name and date: they will be part of the next package if useful for the Algol community.