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.