Notes in progress about software

Updated: 2004-02-20
Created: 2004-09-20

This document is an incomplete draft.

Three types of simulation

Discrete simulation programs can be structured around activities, events or processes:

From Applicazioni del SIMULA-67, I. Spadafora, CNUCE, probably around 1976 .

Excessive language customizability is harmful

For and against transparent interposition

Workspace based multipurpose environment vs. frameworks

Emacs, Mozilla vs. separate applications, and portability.

Monolithic programs vs. modular programs

Modular programs are great for developers.

Unfortunately monolithic programs are more more convenient to deploy.

There are also strong social reasons to minimize dependencies for the user.

Definitions of database and very large database

A little extra care or flexibility in program design can go a long way

Executable two level grammars, or two levels for semantics

@Book{Cleaveland76,
  author =       "J. C. Cleaveland and R. C. Uzgalis",
  title =        "Grammars for programming languages: what every
		  programmer should know about grammar",
  publisher =    "American-Elsevier",
  year =         "1976",
  keywords =     "2-LVWG two level VWG grammar",
}

Affix or 2 level grammars, Uzgalis and Cleaveland

Interesting little known OS features

Unmapped segments in MUSS
Message transfer and not copying in MUSS
Dual sequence/index numbers in process id in MUSS
Programs as libraries, commands as entry points in MUSS
Local capabilities in Accent
Typed messages in Accent
Passing ports in messages in Accent
Control passing in Elmwood
User code level paging in Tenex
Installable schedulers in KeyKOS
Portals, user level domains in the BSD proposal

Interesting little known language features

exchange: in Smalltalk-80
with blocks in Pascal
reducible procedures in PL/1
areas and area based pointers in PL/1
virgin variable attribute by Dijstra
ref type in Algol 68
label in Lisp
dynamic scoping
instantiation, binding and call in SL/5
Partial application or freezing in POP-2
Parallel arrays in Jovial
Having the expr.function(args) syntax equivalent to function(expr,args) and viceversa like in POP-2.