ALGOL N(ID:1809/alg041)

Simple extensible variant to Algol 60 


N for Nippon

Yoneda. Proposed successor to ALGOL 60, as simple alternative to Algol 68




Related languages
ALGOL 60 => ALGOL N   Successor

References:
  • ALGOL N (version 1), Report of the Research Institute of Mathematical Sciences, Kyoto, Japan, 1968. view details
  • Fujisaki,T., ALGOL N Implementation, Master's thesis, University of Tokyo, 1971 view details
  • Suzuki, N.; Fujisaki, T.; Kakehi, K.; Wada, E.; Simauti, T. "The implementation of ALGOL N" pp15-22 view details Abstract: Recent expansion of new techniques invented a great number of application areas in which computers are used in the ways which have not been dreamed of a decade ago. Since the usage of computers was controlled by programs stored in computers, the production of programs has been increasing in enormous rate. In order to ease programming efforts, many programming devices have been invented and organized to become an operating system and a programming system. Nowadays the operating system serves as an interface between the hardware and the programming system or a programmer. They are designed as a multipurpose program so as to be able to handle any usage of the computer. The programming system is, on the other hand, the tool for the programmer to make a program. It serves as an interface between a programmer and the operating system or the hardware. Since there are peculiar notions in each application area, different programming languages are invented for each application area so that programs become short and easy to write. The nucleus of the programming system is the language processor, so the programming system is expanding in terms of language processors. It now becomes necessary to find an easy way to create programming systems which can be expanded easily. There are three main approaches to resolving this problem. The first approach is to make a universal language and to write all programs in this language. Only one language processor is necessary for one computer. But this has never been realized. PL/I is supposed to serve as a higher programming language version of a universal language. The second approach is to make one compiler-compiler and to generate all compilers for different programming languages by that compiler-compiler. Strong tools for defining the syntax of the language already exist, but it is still not easy to define semantics. So it is very difficult to generate a good compiler with a good optimization facility. The third approach, now becoming more attractive, is the attempt to make a language extensible. An extensible language is the language which can introduce new syntax, practically in the form of operators, and new data structures. So if a programmer wants special operators and data structures, he can declare them before the program and can program in terms of them. This approach is promising since the programmer can make a program constructively.


          in [ACM] SIGPLAN Notices 6(12) December 1971 Proceedings of the international symposium on Extensible languages Grenoble, France 1971 view details
  • Suzuki, Norihisa, Implementation of an Extendible Language. ALGOL N, Master's thesis, University of Tokyo, 1971 view details
          in [ACM] SIGPLAN Notices 6(12) December 1971 Proceedings of the international symposium on Extensible languages Grenoble, France 1971 view details
  • Yoneda, N. "The description and the structure of ALGOL N" pp10-14 view details Abstract: ALGOL 68 has been designed as a powerful successor of ALGOL 60. It is a monumental language, but we regret the complexity of it and its description. This has been the primary motivation for our designing ALGOL N, a more viable successor of ALGOL 60, as powerful as ALGOL 68, and yet described in a much simpler way. Some characteristics of ALGOL N will now be given. The letter 'N' is short for 'Nippon', which means 'Japan' in Japanese. 1. An easy-to-grasp meta-language for the syntax description is devised. It is logically equivalent to BNF, but the whole syntax can be compactified by its use. Thus the syntax of ALGOL N (see Appendix) is even shorter and easier to understand than the BNF syntax of ALGOL 60. There are a number of extensions to the strict language just as in ALGOL 68. 2. The semantics is described with rigor, partly in prose of mathematical clarity, and otherwise, in the form of simple programs in a semantics description language called the 'core language'. 3. Basic data types are effect, real, bits, string, and reference from which types of array-style, structure-style, and procedure-style are compounded. The result of a completed elaboration of an expression is (aside from possible side effects) a 'quantity' of some 'mode' with which some value of a fixed type is associated. The type specifies a machine-independent domain of values such as the domain of real numbers, while the mode prescribes the behavior of a quantity upon assignment of a value (e.g. rounding). Coercion is avoided by this system without tears. 4. The treatment of operators is generalized so that the unified notion 'formula' covers term, factor, assignment statement, for-statement, conditional expression, etc. This together with the feature that, in specifying a type, any sample expression having an established type may be used, makes the mode-indication in ALGOL 68 only a special case of 0-ary operator.
          in [ACM] SIGPLAN Notices 6(12) December 1971 Proceedings of the international symposium on Extensible languages Grenoble, France 1971 view details
  • ALGOL N (version 2), to appear in Commentarii mathematici Sancti Pauli, Ed. Rikkyo Univ., Tokyo, Japan. view details
          in [ACM] SIGPLAN Notices 6(12) December 1971 Proceedings of the international symposium on Extensible languages Grenoble, France 1971 view details