Concurrent Langs

Reference 1

Widely used parallel programming systems:

Shared Memory Message Passing Distributed Computing
Language Java, C#
Extension OpenMP Remote Procedure Call
Library pthreads, Win32 threads MPI Internet libraries

Library augmentation for legacy languages still dominate today.

While the library approach requires no changes to the syntax of languages that use it, compilers must refrain from performing optimizations that may introduce races into programs with multiple threads.

In comparision to libaray packages, an explicitly concurrent programming language has the advantage of compiler support. It can make use of syntax other than subroutine calls, and can integrate communication and thread management more tightly with such concepts as type checking, scoping, and exceptions.

At the same time, since most programs have historically been sequential, concurrent languages have been slow to gain widespread acceptance, particularly given that the presence of concurrent feature can sometime make the sequential case more difficult to understand.

LLM: the three design patterna should also be applicable to securiy solution designs: do we need new language, new library, or language extension? I vote new language in the long term, new library for short term compatibility, and new language extension as buffer-period solution. Compiler-awared security engineering plays an important part here.


  1. Pragmatics, 3rd Ed. Chapter 12. ↩
Created Nov 24, 2019 // Last Updated Nov 24, 2019

If you could revise
the fundmental principles of
computer system design
to improve security...

... what would you change?