Mainstream programming languages are imperative: the programmer dictates the order of reads and writes to memory. Declarative languages (for example functional and logic languages) remove this major cause of complexity and error. Unfortunately, declarative languages impose severe constraints on the structure and variability of data. These constraints force the rethinking of software designs, or an escape back to imperative programming. I will explain the fundamental reason for these constraints, and present a language design that side-steps the problem by introducing a new object model with a Model-View architecture. It is possible to do declarative programming with objects.

People planning to attend this session also want to see:

Jonathan Edwards

MIT

In 1971, Jonathan Edwards encountered an idle PDP-11/20 in the basement of the Johns Hopkins EE department. A decade later, he cofounded IntraNet, whose software daily processes trillions of dollars in interbank funds transfers. He did early work on multithreading, OODB’s, transactions, and replication. He is now a Research Fellow at MITCSAIL in Daniel Jackson’s Software Design Group, where he has worked on the Alloy modeling language and experimented with new ideas in programming language design. He disturbs people at AlarmingDevelopment