/Voorpagina
/Nieuws
/Mensen
/Achtergrond
/Academie
/Onderzoek
/Opinie
/Reportage
/Bestuur
/Cultuur
/Studentenleven
/Ruis
/Harmpje
/Colofon
/Vacatures
/Mensa
/Oude cursors
/pdf formaat
/Faculteits Berichten
/Zoeken
/TUE
/ Cursor nummer 3

jaargang 42, 23 september 1999


Onderzoek

Een soort van tijger en een

nieuwe programmeertaal

TOM zorgt voor eenvoudiger hergebruik van software

Fred Gaasendam

Dr.ir. Pieter Schoenmakers van de faculteit Elektrotechniek heeft een programmeertaal ontworpen die een programmeur in staat stelt om op flexibele wijze veranderingen aan te brengen in stukken software. Die stukken kunnen dan weer hergebruikt worden in andere programmaâs. De programmeur wint zo tijd en geld.

Software-programmaâs krijgen steeds meer ingewikkelde functies en stellen daardoor niet alleen eisen aan de gebruiker, maar ook aan de programmeur. Die voelt bovendien nog eens de hete adem van concurrerende bedrijven in zijn nek. Programmeren is daardoor een bezigheid waaraan steeds meer efficiency-eisen worden gesteld. Programmeurs kunnen zich een heleboel werk besparen wanneer delen van de geschreven code van hun software hergebruikt kan worden. Jarenlang was hergebruik echter zo goed als onmogelijk, omdat stukken code moeilijk als zelfstandig functionerende eenheden uit een programma gelicht konden worden. Dat had te maken met de werkwijze. Een systeemontwikkelaar paste op basis van de wensen van een klant een zogeheten Îfunctionele decompositieâ toe, die ertoe leidde dat de gewenste functies van een softwarepakket vertaald werden naar instructies voor programmeren. Die handelwijze had tot gevolg dat er een systeem uitrolde dat doet wat de klant vraagt. En vervolgens was de kous daarmee ook af. Wie nog een toeter of een bel aan het programma wilde toevoegen, kon die wens gevoeglijk op zijn buik schrijven. Toevoegingen zorgen dan vaak voor domino-effecten in andere delen van de programmatuur. Iets wijzigen betekent in feite gewoon opnieuw beginnen met programmeren.

In de loop van de jaren Î90 kwam het object-geori‘nteerd programmeren steeds meer in zwang. Systeemontwikkelaars begonnen in de analysefase van de bouw van een softwaresysteem te werken met objecten die betrekking hadden op concrete begrippen: een bankrekening bij-voorbeeld, maar ook een window of een button. Dit heet niet functionele decompositie, maar Îdomein-modelleringâ. Om er nu voor te zorgen dat een programma doet wat de gebruiker wil, is het vooral zaak om de objecten, die al vastgestelde functies hebben, op een bepaalde manier met elkaar te laten werken.

Voor deze manier van ontwerpen waren object-geori‘nteerde programmeertalen nodig. C++ is een bekend voorbeeld daarvan. Er kleven aan de bestaande talen echter enige beperkingen. Pieter Schoenmakers van Elektrotechniek (capaciteitsgroep Informatie- en Communicatiesystemen, leerstoel Ontwerptechnologie van prof.dr.ing. Jochen Jess), heeft een object-geori‘nteerde taal ontworpen die die beperkingen niet heeft. Schoenmakers: ãAls je als programmeur object-geori‘nteerd werkt, is het in principe mogelijk om code te kunnen hergebruiken. Een object in een softwaresysteem verbergt als het ware al zijn handelingen voor de rest van het systeem. Daardoor is dat deel feitelijk afgescheiden van de rest en geschikt voor hergebruik. Een wijziging binnen de functie van een object hoeft dus geen gevolgen te hebben op de rest van de programmatuur.ä

Dat maakt het programmeren op zichzelf dus makkelijker. Nu zou het helemaal mooi zijn wanneer een object niet alleen hergebruikt kan worden door zijn eigen maker, maar ook door een andere programmeur. Dit blijkt in de praktijk echter niet gemakkelijk te gaan. Een programmeur die werkt in een object-geori‘nteerde taal ontwerpt zogeheten klassen, waarbinnen objecten voorkomen die voor een deel dezelfde eigenschappen hebben. Zo kenmerken de objecten in de klasse der zoogdieren zich door de eigenschap dat ze hun kroost zogen. Wat dichter bij huis: een button op uw scherm is altijd Îklik-baarâ; wat een button doet kan flink verschillen.

Extensies

In de software-omgeving is de klasse tevens een beperkende factor bij het hergebruik. Dat komt omdat een klasse tevens de eenheid is die het ontwerp bepaalt. Wanneer hergebruik door de maker is gepland, gaat het nog wel. ãDe hergebruiker is net zo vrij in het hergebruiken van een klasse als de ontwikkelaar van de klasse dat heeft toegestaan, voorzien en gepland,ä aldus Schoenmakers. Hergebruik van een zoogdier in een waterige omgeving is met andere woorden tot mislukken gedoemd. In de praktijk betekent een en ander volgens Schoenmakers dat je eigenlijk zeer weinig kunt hergebruiken, tenzij je de mogelijkheden voor wat hij noemt Îongepland hergebruikâ uitbreidt. Zijn programmeertaal TOM zorgt daarvoor.

Wie programmeert in TOM, kan de eigenschappen van een klasse van objecten gemakkelijk wijzigen. Die flexibiliteit zit ingebouwd in TOM zelf, in tegenstelling tot een taal als C++, waarin de eigenschappen van een klasse, eenmaal ingevoerd, niet meer gewijzigd kunnen worden, tenzij je de broncode tot je beschikking hebt. De definitie is als het ware monolithisch.

Wanneer een klasse van objecten, geschreven in TOM, voor andere doeleinden gebruikt moet worden, dan hoeft een programmeur niet opnieuw te beginnen met programmeren, maar kan hij volstaan met het wijzigen van de klasse-eigenschappen van de objecten. Dat is mogelijk omdat Tom gebruik maakt van zogeheten extensies, die de definitie van een klasse opsplitsen in meerdere delen.

Het mooie van de taal TOM is bovendien dat de flexibiliteit uitgezet kan worden, een ultieme vorm van flexibiliteit. Dat kan handig zijn wanneer een programmeur een vlot werkende executable (het eigenlijke programma met de extensie Î.exeâ) wil hebben. Flexibiliteit gaat ten koste van de snelheid van software; dat is niet altijd handig. Maar flexibiliteit is wel noodzakelijk bij het maken van een library, een soort van databank waaruit een programma gegevens put om zijn werk te doen. Libraries komen in allerlei soorten en maten voor. Op het Windowsplatform zijn ze te herkennen aan de extensie .dll, ofwel Dynamic Link Library. Ze bevatten klassen die door veel programmaâs gebruikt worden. Bij een taal als C++ bevat zoân library veel klassen die veel functionaliteit bieden. In TOM gaat het meer om de kwaliteit van het ontwerp van die klassen. TOM maakt het mogelijk dat elk programma aan de klassen in de library kan toevoegen wat het nodig heeft.

Tiggr

TOM is een jonge taal en wordt daarom nog niet veel gebruikt. Schoenmakers heeft nog niet zo lang geleden zijn dissertatie over TOM afgerond. Hij onderhoudt een website die alle aspecten van TOM belicht (http://gerbil.org/tom). Schoenmakers hoopt op een brede toepassing van TOM.

Wie de site bezoekt en Schoenmakers een mail wil sturen zal het opvallen dat de naamgeving van site en email-adres wat ongewoon is. Schoenmakers laat het toeval een grote rol spelen, zegt hij, bij het geven van namen. ãEen gerbil is een klein knaagdiertje. Ik bladerde op een gegeven moment in een woordenboek, zag het woord staan en dacht Îdat linkt leukâ.ä Daarom draagt de site van TOM de naam gerbil. Schoenmakers zelf gaat in cyberspace met de nickname Tiggr door het leven. Op zijn proefschrift staat op de achterpagina met kleine letters ÎA Tiggr Book!â. ãTigger komt voor bij Winnie-the-Pooh en is een soort van tijger,ä legt Schoenmakers uit. Hij is een Poeh-fan en zeker een Tigger-fan. Vandaar dat hij de naam als nickname op het internet gebruikt. De naam TOM van de taal heeft ook geen betekenis. ãGewoon TOM,ä aldus Schoenmakers, ãniet vernoemd naar iemand, geen afkorting van iets, maar gewoon TOM.ä

Maar het proefschrift van Schoenmakers geeft wel enige aanwijzingen voor de relatie tussen een programmeeromgeving en Winnie de Poeh. In de samenvatting van het proefschrift gaat Schoenmakers in op de werking van TOM: Îaan een klasse kan van alles bijgesteld worden om haar geschikt te maken voor een specifieke situatie: hiervoor hoeft zelfs de broncode van de klasse niet beschikbaar te zijn. Op deze manier ondersteunt TOM de evolutie van klassen, die zich aanpassen aan de omgeving van hergebruik: iets is goed, of een klein beetje anders.â Iets is een tijger, of een klein beetje anders, denk je dan onwillekeurig.

TOM: zullen we het houden op Tiggrâs Object Modelling? /.














Website