Premium
Introduction to enhanced C (EC)
Author(s) -
Katzenelson Jacob
Publication year - 1983
Publication title -
software: practice and experience
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.437
H-Index - 70
eISSN - 1097-024X
pISSN - 0038-0644
DOI - 10.1002/spe.4380130702
Subject(s) - computer science , programming language , tuple , programmer , macro , substitution (logic) , extensibility , syntax , abstract syntax tree , code (set theory) , set (abstract data type) , abstract syntax , tree (set theory) , theoretical computer science , semantics (computer science) , natural language processing , parsing , mathematical analysis , mathematics , discrete mathematics
The main goals of EC are to design a set‐oriented, extensible, C‐like language and to build a translator for this language that produces efficient run‐time code. A set‐oriented language supports higher level data aggregates and operations. In EC these are sets, sequences, tuples, oneofs, and the corresponding operations. Extensibility in EC involves the use of data abstractions to define new types. EC's data abstractions, called clusters, are macro‐like devices that perform substitution on the typed syntax tree. They handle names in a way that prevents name conflicts at substitution time. They also have some novel error reporting properties. Run‐time efficient code is understood as code of the quality expected from a programmer using C. This paper describes the EC language and, in particular, the data abstractions. The description is by examples and assumes familiarity with C. Conclusions and the experience gained in applying EC are summarized in the last section.