Telegram Group Search
Forwarded from Books (Blac MeW)
The program is given as a flowchart with the nodes identified by labels. Without loss of generality I consider flowcharts with two distinguished nodes: the start node (the one node without an incoming arc) and the halt node (the one node without an outgoing arc). For a correctness proof each label is associated with an assertion.

An assertion is a formula of first-order predicate logic. As such it is restricted to a given vocabulary, which consists of function and predicate symbols and of variables. The variables can be bound or free; only the latter concern us here. The set of assertions that belong to the same flowchart are restricted to the same vocabulary. Whether an assertion is true depends on an interpretation of the function and predicate symbols and on the state (the values of the variables).

To follow a computation by a flowchart one has to know what the current state is and at what node control has arrived.

Maarten van Emden, History of "Structured Programming"
My first remark is that, although the programmer’s activity ends when he has constructed a correct program, the process taking place under control of his program is the true subject matter of his activity, for it is this process that has to accomplish the desired effect; it is this process that in its dynamic behaviour has to satisfy the desired specifications.

Edsger W. Dijkstra, “Letters to the editor: go to statement considered harmful.” (1968)
Nicholas Bourbaki, Elements of the History of Mathematics (1984)
Forwarded from A Math Book
Introduction to Computation: Haskell, Logic and Automata ( Donald Sannella - Michael Fourman - Haoran Peng - Philip Wadler ). Springer 2022
Forwarded from A Math Book
Introduction to Computation.pdf
9 MB
Introduction to Computation: Haskell, Logic and Automata ( Donald Sannella - Michael Fourman - Haoran Peng - Philip Wadler ). Springer 2022
Donald Knuth in conversation with Peter Seibel.

Peter Seibel, Coders At Work: Reflections on the Craft of Programming (2009)
Forwarded from A Math Book
Calculus Without Derivatives ( Jean-Paul Penot ). Springer 2013
Forwarded from A Math Book
Calculus Without Derivatives.pdf
7 MB
Calculus Without Derivatives ( Jean-Paul Penot ). Springer 2013
Stoll, C., “The Curious History of the First Pocket Calculator,” Scientific American (2004)
Programming language design benefits from constructs for extending the syntax and semantics of a host language. While C’s string-based macros empower programmers to introduce notational shorthands, the parser-level macros of Lisp encourage experimentation with domain-specific languages. The Scheme programming language improves on Lisp with macros that respect lexical scope.

The design of Racket—a descendant of Scheme—goes even further with the introduction of a full-fledged interface to the static semantics of the language. A Racket extension programmer can thus add constructs that are indistinguishable from “native” notation, large and complex embedded domain-specific languages, and even optimizing transformations for the compiler backend. This power to experiment with language design has been used to create a series of sub-languages for programming with first-class classes and modules, numerous languages for implementing the Racket system, and the creation of a complete and fully integrated typed sister language to Racket’s untyped base language.

Tobin-Hochstadt, et.al, Languages as Libraries (2011)
2025/03/06 01:18:49
Back to Top
HTML Embed Code: