EXEL(ID:4154/exe003)


Language family for the Eidelweiss system, concerned with program manipulation and verification


Related languages
ATF => EXEL   Evolution of
EXEL => Arsac dataflow   family member

References:
  • Arsac, J.; Blain, G.; Nolin, L.; Ruggiu, G.; Vasseur, J.P. "EXEL an experimental language" - 1973 view details
  • Noguez, Gérard L.M. "Design of a microprogramming language" 6th International Symposium on Microarchitecture College Park, Maryland, United States 1973 pp145-155 view details Abstract: This paper attempts to define some of the fundaments of a high level microprogramming language. In particular, we have attempted to design tools to describe and process parallel orders. These tools are based on an uniform tree structure issued from the structured programming. That allows to process and optimize microprograms as normal data sets. There is no ?GO TO? or ?ASSIGN? statements. An instruction segment is written as a complete parenthesis expression, using iterative and conditional clauses. The variables are replaced by sequential functions and a logical or arithmetical expression is described as the composition of combinational functions. These features are used to optimize the data sets management. The suggested writing facilities give a readable and computable description of the instruction set and data flow of a computer. The set declarations structure, added to the sequential and parallel notations, allow to optimize the user's sequences of parallel orders, through the mixing declarations. Illustrating our concepts, a description of the mini-computer ELBIT 100 is given.
  • Nolin, L. "Une théorie des algorithmes - Présentation intuitive" Mémoire No 0173 du Groupe d'Informatique Théorique de l'Université de Paris - 1973. view details
  • Nolin, L.; Ruggiu, G.; "Formalization of EXEL" pp108-119 view details Extract: Introduction
    EXEL is a family of programming languages, which has been designed in the framework of a research on computer architecture : the EIDELWEISS system [VAS-BLA]. The development of EXEL is such as to place it in the framework of structured programming. The notion of label and "GOTO" have disappeared and are replaced by those of program schemata equations. This gives rise to important mathematical properties which are useful in organizing the system. Furthermore, this fact may bring profound implications in the theory of programming; in particular, we foresee powerful methods proving the correctness of programs.
    The semantics of EXEL is well-defined with respect to combinatory logic that is, there exists an algorithm which allows one to translate any EXEL program A, into a word "a" of combinatory logic. We assume that the semantics of combinatory logic is known.
    The word "a", thus obtained, contains constants only and the execution of the program consists in reducing this word until no reduction rule remains applicable. The reduced word thus obtained ie the result of the program. It is necessary that certain constants of EXEL and of combinatory logic should have the same interpretation. To simplify we have simply added to combinatory logic these specific constants and the operating rules in EXEL correspond to the reductions in combinatory logic. This is made more precise in the following.
    Since the memory allocation will be made during the interpretation of the programs, most of the declarations are suppressed and are not considered in this formalization. However, concerning the added constants, their treatment by the computer is accompanied by a control of types similar to that described by B. Robinet. Such a calculus is in any way indispensable for a variant APL of EXEL.
    As for the procedures, we envisage a simplified treatment of the calculus of types. The header of a procedure gives the possibility of determining its type which is more general and more precise than that defined in the languages such as ALGOL. We use this calculus of types to generalize the procedure calls.
    The correspondence between EXEL and combinatory logic thus allows one :
    al - to describe without ambiguity how a machine executes a program,
    b) - to define the interpretation and therefore the semantics of a program, independently of any machine,
    c) ? to establish properties of the programs,
    These properties give the possibility of defining transformations which preserve the equivalence of the programs. These transformations may be used by the system to increase the efficiency of program execution by a machine. The treatment of programs, and more generally, the architecture and the logical functions of the EDELWEISS system are thus justified.

          in [ACM SIGACT-SIGPLAN] Proceedings of the ACM Symposium on Principles of Programming Languages, Boston, October 1973. Association for Computing Machinery. view details
  • Arsac, Jacques J. "Syntactic source to source transforms and program manipulation" pp43-54 view details Abstract: Syntactic transforms are the source to source program transformations which preserve the history of computation, and thus do not modify the execution time. Combined with a small number of primitive semantic transforms, they provide a powerful tool for program manipulation. A complete catalogue of syntactic transforms, and its use for solution of a system of program equations, is given. Examples of derivation of more complex source to source transformations are also presented. Two case studies illustrate the way in which syntactic and semantic source to source transformations may be used for development of clear, simple, and reasonably efficient programs. External link: Online copy
          in [ACM] CACM 22(01) January 1979 view details
  • Boussinot, Frederic "Un Interpreteur Utilisant Un Appel Par Necessite Avec Partage Pour L'evaluation Des Expressions De Procedure Du Langage Exel" [Interpreter Using a Call by Necessity with Sharing to Evaluate the Procedure Expressions of the EXEL Language.] Revue technique - Thomson-CSF 11(4) December 1979, pp921-942 view details Abstract: EXEL is an original language around which an increasing number of studies have been carried out. In this article the author analyzes the mechanism of procedure call in EXEL and describes an implementation of the EXEL variant EXEL/APL, based on a necessity call mechanism showing that, in spite of a major restriction which consists of prohibiting the implementation EXEL achieves a power of expression comparable to that of lambda -calculus and describes the sensitive points encounted during the construction of the EXEL/ APL interpreter.
          in [ACM] CACM 22(01) January 1979 view details