>> Algol 60 was a very successful language in it's day. > > It caught on in a few niches and was popular in europe for a while (probably > exactly because it wasn't completely based on english), but I would hardly > call it successful as a language. Some of its concepts do live on, but the > language doesn't. Also notice that silly keywords chosen only to not be > english hasn't been tried with any seriousness since. Are you mixing up Algol60 and Algol68? The 58/60 version used normal english keywords. AFAIK the language itself was not as widely used as FORTRAN and COBOL, but most concepts it introduced survive in nearly every computer language today. The 68 version was a mathematical marvel, but 'a little' too difficult to explain (and probably use and to compile). I recall that any student who could derive a small Algol68 program using its 2-level syntax got a top mark for a certain course on programming languages. The professor was vd Poel, one of the 'oldies'. The direction Algol68 was taking was what pushed Wirth (in disgust of the complexity of Algol68) to develop his branch of algol60-like languages (pascal, modula). List of Algol60 keywords from http://www.csci.csusb.edu/dick/samples/algol60.syntax.html: 1. array::lexeme, indicates a type of data -- an n-dimensional array. 2. begin::lexeme, indicates the start of a block of code 3. Boolean::lexeme, name of the Boolean data type. 4. comment::lexeme, indicates that start of a comment. 5. do::lexeme, indicates the end of a for clause. 6. else::lexeme, separates the else from the then in a conditional statement 7. end::lexeme, indicates the end of a block of code. 8. false::lexeme, one of the Boolean data types. 9. for::lexeme, indicates the start of a loop. 10. goto::lexeme, indicates an unconditional transfer of control to a label. 11. if::lexeme, starts a selection statement of conditional expression. 12. integer::lexeme, name of a fixed point data type. 13. label::lexeme, indicate a label parameter. 14. own::lexeme, indicates a variable with static life time but local scope. 15. procedure::lexeme, indicates a sub-program or function. 16. real::lexeme, name of a floating point type. 17. step::lexeme, used in a for clause to indicate an increment 18. string::lexeme, a type of character string data type. 19. switch::lexeme, declares a variables that is something like an array of labels. 20. then::lexeme, Separates a condition from the true part of a selection. 21. true::lexeme, a Boolean value 22. until::lexeme, indicates the final value in for clause. 23. value::lexeme, indicate pass by value in a parameter. 24. while::lexeme, indicates a conditional loop part of a for clause. -- Wouter van Ooijen -- ------------------------------------------- Van Ooijen Technische Informatica: www.voti.nl consultancy, development, PICmicro products docent Hogeschool van Utrecht: www.voti.nl/hvu -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist