Pure Research in software means creating the envelope / environment / context in which practical languages can be built.
A university degree in Applied Research is called a BASc.
Applied research is also known as Engineering.
Structured Programming gave us nesting of GOTOs.
Scoping gave us nesting of global variables.
Denotational Semantics is tamed using passes/phases.
Peter Lee and Uwe Pleban
Docker nests environments.
Docker provides isolation. [https://guitarvydas.github.io/2020/12/09/Isolation.html]
Syntax Semantic Language (not Secure Sockets Layer).
SL is the gem.
S/xL is the syntax portion. A little language for parsing. About 14 operations.
x/SL is the semantics portion. A little language for expressing operations on data.
x/SL is the real gem.
Rust provides UNIX® like isolation of data.
UNIX® pipes don't need data ownership, because data is transfered by-value via pipes.
Ownership is just an optimization that allows memory sharing.
For example Fig. 1
Fig. 1 Nested Diagram
is more expressive than
(especially when deep nesting occurs, and when problems are "complex").
PL Syntax is a way to wrap nesting, to make it "prettier".
if…then…else… can be expressed as
(if (…) (…) (…))
if (…) then
Syntax can be used to enable syntax checking.
E.g. Pascal-like languages can be syntax checked, while Lisp cannot.
Syntax checking is only good for simple error checks, e.g. typos. After such initial checking, syntax checking is no longer needed.
Callbacks are textual nestings.
Callbacks are a good example of where text-only fails.
Functions are one-in-one-out nestings of code.
 An OEM product, now defunct.
 Note that the concept of memory sharing makes no sense if one tries to design a language for distributed computing.
 PL means Programming Language
 Lisp tends to use kludges added to the editor to provide syntax checking.
 Except for checking syntax of newly added code.
 Exceptions are another text-only kludge.