Knowledge Domain

Master
Despite reports on the `software crisis', the spectular increases in performance of hardware are being matched with a similar increase in the productivity of software developers. Systems that used to be constructed from scratch, currently are constructed using high-level (domain-specific) programming languages, procedural libraries, program generators, and component libraries. While the number of \emph{lines of source code} produced per man hour has not increased, the number of \emph{instructions} produced has increased. At the same time the reliability of software has improved.

Het Center for Software Technologie richt zich er op het producren van correcte software nog effci nter te laten verlopen.

Enerzijds doet zij dat door onderzoek te doen op het gebied van geavanceerde programmeertalen, generieke programmeermethoden en hun effici nte implementatie, en anderzijds door de bestaande methoden ook buiten de kerninfomatica (vertalerbouw, programmeeromgeveingen, operating systemen en data bases) in te zetten.

Momenteel wordt gewerkt aan het ontwerp van een taal voor het beschrijven van generieke algoritmen, systemen voor compositioneel taalontwerp, het genereren van voor de gebruiker eenvoudig te interpreteren foutmeldingen uit abstracte interpretaties, programmatransformatiesystemen, en compositionele bewijstechnieken. Daarbij staat de integratie van de individuele technieken in bruikbare systemen voorop.

Het CST zal de hoofdverantwoordelijkheid dragen voor het masterprogramma Software Technology dat vanaf september 2002 aangeboden zal worden.

De software technologie bestudeert het ontwerp, de bouw, en het onderhoud van software in al zijn aspecten, waarbij de generieke aspecten d.w.z. die niet specifiek zijn voor een, veelal buiten de kerninformatica liggend, toepassingsgebied voorop staan.

Programmeermethoden worden genalyseerd (de programmeermethodologie), geformaliseerd (programmeertaalontwerp en semantiek) en met hulpmiddelen ondersteund (vertalers, programma-analysatoren, en transformatiesystemen).

Hierbij blijkt dat er een veelheid aan technieken bestaat die keer op keer toegepast kunnen worden.

Sterke typering doet het aantal fouten sterk afnemen, hogere orde constructies en andere abstrcatiemechanismen maken dat de mogelijkheid tot hergebruik dramatisch toeneemt, automatische globale optimalisatietechnieken produceren uiterst efficiente programmas die met de hand welhaast niet te construeren zijn, krachtige abstractiemechanismen faciliteren het gebruik van krachtige bibliotheken, parti\"ele evaluatie zorgt ervoor dat de hiermee normaliter gepaard gaande extra runtime kosten binnen de perken blijven en formele verificatie maakt het mogelijk om zonder te testen uitspraken te doen over het correcte gedrag van programmatuur.

Een interessante ontwikkeling is dat het vermogen te formaliseren en uit deze formalisaties implementaties te genereren nu ook zijn toepassing begint te vinden buiten de informatica. Met de komst van de XML-standaarden heeft het formaliserenvan vrijwel alle maatschappelijke interacties een aanvang genomen.

Internationaal vindt het onderzoek op het gebied van de functionele talen en de programmeermethodologie plaats binnen de actieve Haskell community, met bijdragen vanuit Chalmers, Oxford, Nottingham, Oregon, Cambridge etc. Op het gebeid van het generiek programmeren (Generic Haskell) en de (functionele) programmeermethodologie (combinator libraries) en de programmatransformatiesystemen (Stratego) speelt Utrecht een vooraanstaande rol, met name via de IFIP Working Group 2.1.

Het centrum heeft van oudsher een sterke band met het onderzoek binnen het Software Engineering Research Centre (SERC), alwaar men expertise heeft op het gebied van het object-georienteerde programmeren en de programmeeromgeveingen. Bestaande toolkits en geconstrueerde programmeeromgevingsgeneratoren (LRC) worden gebruikt binnen Ordina en Philips. Verwacht wordt dat verdere verspreiding van de bestaande toolboxen via het XML-kanaal een grote vlucht zal nemen (Proxima-project). Veel studenten voeren een afstudeeropdracht uit bij het bedrijfsleven, waarbij veelal ook technologie-overdracht plaats vindt.