archives

JavaMonads

Cannot find a link, did we discussed JavaMonads before? Looks like an interesting toy for exploring expressiveness of Java :-)

JavaDocs for those who hesitates to download it.

Rigour is good for you and feasible: reflections on formal treatments of C and UDP sockets

Not really about PLT, but this paper was mentioned on LtU before, and I believe it is a good reminder to people thinking that "research" means "useless".

Rigour is good for you and feasible: reflections on formal treatments of C and UDP sockets

Language designers give rigorous specifications of language syntax as a matter of course. [...] Rigorous definitions of type systems is less common [...] The situation for behavioural specification is even worse. [...] In the long term, we believe greater rigour is essential in the development of more robust software at all levels; there are many behaviourally subtle aspects of operating systems which could benefit from it, and for which the tools are now available.
Testimonials :-) :
"It would be difficult indeed to get more hard-nosedly pragmatic than C and sockets."
-- Paul Snively

Larger Subroutines == Fewer Defects

Why is the defect density curve U-shaped with component size?
This paper explores the empirical results of a number of recent (and not-so-recent) papers showing that larger software components are proportionately much more reliable than smaller software components within the same system up to a certain size after which they rapidly deteriorate. This is strongly counter-intuitive to basic notions of software engineering such as modularisation.

The paper first demonstrates that a logarithmic distribution of fault with component complexity closely fits the observed data over a range of component sizes and languages up to around 200 lines or so, (deemed medium size here), after which approximately quadratic behaviour is observed. The paper will review mitigating influences for this non-intuitive behaviour before concluding that none is really satisfactory. It then unites this complex behaviour in a simple mathematical model of the physiology of the human two-level memory system. The resulting component fault rate model accurately predicts the observed data for all languages in this study.

If this is true, how should it affect the design of programming languages?