Date: Mon, 1 Oct 2012 11:21:15 +0200 Subject: 1 October 2012, 11:00, L202: Dclare (Carel Bast, Wim Bast, Tom Brus) From: Vadim Zaytsev To: PEM Cc: Carel Bast, Wim Bast Dear environmentalists, Coordinating the next PEM presentation this Friday will fall in the trusty hands of Tijs, with yours truly still being at MoDELS. The speakers have been specially invited by him, and will present Dclare, a software language that abstracts away from sequentiality. Date: 5 October 2012 Time: 11:00 Room: L202 (Aquarium!) Speakers: Carel Bast, Wim Bast, Tom Brus Title: Towards a Programming Language That Really Abstracts Away from Time Abstract: see below ---------------------------------------------------------------------- Towards a Programming Language that Really Abstracts away from Time For some years now, the clock-speed of the CPU=92s can not be increase significantly anymore. Parallelism is the only practically available means to increase performance now. With currently available programming languages however, the code-complexity is increased dramatically for these architectures. Even without considering parallelism software is becoming increasingly complex. The impact of changes in large and complex software is almost impossible to predict and comprehend. The current mainstream programming languages are forcing us to express functionality in terms of sequential processes. These processes are not actually relevant to the functional problem domains. They are mostly relevant for specifying the problem in the programming language at hand, it is an over-specification. This burdens us with a maintenance problem over time. To solve these issues, we need a programming language that abstracts away from time/sequential aspects. This language must be backed by an execution environment that leverages parallelism in an implicit manner. We present our language (Dclare) and our proposal for an execution environment here. The advantages will be that performance scales-up automatically with the available processing power, in clock-speed and/or in CPUs. The maintainability of our software will be improved by a higher level of abstraction, and the absence of sequential process specification. This new programming paradigm combines the advantages of object-oriented and functional programming languages, without the disadvantages of the non-functional aspects of ordinary OO and hybrid languages. When we really need time related functionality, it must (and can be) explicitly specified. But only then. Of course this approach has some challenges. How do we efficiently execute this language? Is this new paradigm easy to learn? Are we humans capable of thinking about problems and solutions in a declarative way? In this talk we introduce the language "Dclare", the first really declarative, functional OO language. Dclare is a declarative language. It has an object oriented type system, as in Java you define classes and fields, you can use polymorphism, generics and lambda=92s. Methods are replaced by functions and constraints. Functions can not have side effects. Constraints are assertions with an enforcement strategy. When an assertion fails the constraint defines how the assertion can be satisfied again. ---------------------------------------------------------------------- http://event.cwi.nl/pem/calendar.html ---------------------------------------------------------------------- Yours, Vadim.