Newsletter Downloads
Forth and AI revisited: BRAIN.FORTH
Six years ago in this journal we discussed the work of Arthur T. Murray, who endeavored to explore artificial intelligence using the Forth programming language [1]. His creation, which he called MIND.FORTH, was interesting in its ability to understand ...
Parametric polymorphism for Java: is there any hope in sight?
In spite of years of research toward a solution for the problem of extending Java with parametric polymorphism (genericity) the officially accepted solution already in its beta release allows violation of the Java type system and turns a type safe ...
Checking spelling in source code
Word processors have long been able to check spelling as a special pass over the whole document, but the feature really came into its own with "check as you type". So useful is this feature (and so well within the capabilities of modern computers) that ...
Notes on notes on postmodern programming
These notes have the status of letters written to ourselves: we wrote them down because, without doing so, we found ourselves making up new arguments over and over again. So began the abstract of our earlier paper Notes on Postmodern Programming. We now ...
Looking for love (in all the wrong places)
Onward! Seeks future directions. The Feyerabend project seeks to redefine computing. Thoroughly disillusioned with traditional and contemporary practices, a significant number are looking for a software development profession that we can love. If a ...
Methodology work is ontology work
I argue that a successful switch from one methodology to another requires a switch from one ontology to another. Large-scale adoption of a new methodology means "infecting" people with new ideas about what sorts of things there are in the (software ...
Protocols for processes: programming in the large for open systems
The modeling and enactment of business processes is being recognized as key to modern information managment. The expansion of Web services has increased the attention given to processes, because processes are how services are composed and put to good ...
Example centric programming
Programmers tend to understand programs by thinking of concrete examples. Example Centric Programming seeks to add IDE support for examples throughout the process of programming. Instead of programmers interpreting examples in their head, the examples ...
Finding bugs is easy
Many techniques have been developed over the years to automatically find bugs in software. Often, these techniques rely on formal methods and sophisticated program analysis. While these techniques are valuable, they can be difficult to apply, and they ...
Granule-oriented programming
A program will become obsolete or less effective in solving domain problems due to many reasons. One of the main reasons can be the fact that the program does not fit its context. The context of a program is defined as a collection of functionalities ...
Languages of the future
This paper explores a new point in the design space of formal reasoning systems - part programming language, part logical framework. The system is built on a programming language where the user expresses equality constraints between types and the type ...