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:
- Activitity oriented simulations are described in terms of
work accomplished and the resources used and their changes of
state.
- Event oriented simulations are described as to how they
influence the state of the entire system and create future
events.
- Process oriented simulations involve the description of
chains of actions of the components of the system and the way
each sequence of actions interferes with the others.
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 database is a mass of data whose working set cannot fit in
memory, that is every operation results in at least one disk
access.
- A very large database is one of a size larger than it can
be backed up offline.
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
area
s 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.