• Corpus ID: 54448454

Gems of Corrado B\"ohm

@article{Barendregt2018GemsOC,
  title={Gems of Corrado B\"ohm},
  author={HENK P. Barendregt},
  journal={arXiv: Logic in Computer Science},
  year={2018}
}
  • H. Barendregt
  • Published 5 December 2018
  • Computer Science
  • arXiv: Logic in Computer Science
The main scientific heritage of Corrado Bohm consists of ideas about computing, concerning concrete algorithms, as well as models of computability. The following will be presented. 1. A compiler that can compile itself. 2. Structured programming, eliminating the 'goto' statement. 3. Functional programming and an early implementation. 4. Separability in {\lambda}-calculus. 5. Compiling combinators without parsing. 6. Self-evaluation in {\lambda}-calculus. 

References

SHOWING 1-10 OF 46 REFERENCES

A Self-Interpreter of Lambda Calculus Having a Normal Form

TLDR
The notion of a canonical algebraic term rewriting system can be interpreted in the lambda calculus by the Bohm — Piperno technique in such a way that strong normalization is preserved and allows us to improve some recent results of Mogensen concerning efficient godelizations.

The Mechanical Evaluation of Expressions

TLDR
It is shown how some forms of expression in current programming languages can be modelled in Church's X-notation, and a way of "interpreting" such expressions is described, which suggests a method of analyzing the things computer users write.

The Implementation of Functional Programming Languages

Theoretical Pearls Enumerators of lambda terms are reducing

TLDR
An ingenious recursion theoretic proof by Statman will be presented, showing that every enumerator is reducing, but I do not know any direct proof.

The lambda calculus - its syntax and semantics

  • H. Barendregt
  • Mathematics
    Studies in logic and the foundations of mathematics
  • 1985

Discriminating Coded Lambda Terms

A coding for a (type-free) lambda term M is a lambda term ⌜M⌝ in normal form such that M (and its parts) can be reconstructed from ⌜M⌝ in a lambda definable way. Kleene (1936) defined a coding ⌜M⌝K}

The imperative and functional programming paradigm

TLDR
Major advantages of the functional programming paradigm over the imperative one, that are applicable, provided one is has the mental capacity to explicitly deal with simple abstractions, are presented.

Higher-order abstract syntax

TLDR
Higher-order abstract syntax incorporates name binding information in a uniform and language generic way and acts as a powerful link integrating diverse tools in program manipulation and other formal systems where matching and substitution or unification are central operations.

The Böhm-Jacopini Theorem Is False, Propositionally

TLDR
A purely propositional account of the Bohm---Jacopini theorem, which states that any deterministic flowchart program is equivalent to a while program, and reformulate the problems at the propositional level in terms of automata on guarded strings, the automata-theoretic counterpart to Kleene algebra with tests.

Enumerators of lambda Terms are Reducing Constructively