Leertaak 1

Abrupte terminatie in Java

Achtergrond

Formele semantiekbeschrijving is nuttig bij het documenteren van (ontwerpen van) programmeertalen, maar semantische technieken komen ook van pas bij het ophelderen van verbanden tussen verwante mechanismen in bestaande talen.

Om een bepaald effect te modelleren zal er vaak een aanpassing van het formele systeem nodig zijn, bijvoorbeeld met aanvullende afleidingsregels of extra parameters. Vaak zijn die aanpassingen ook in compilers voor de betreffende taal terug te vinden.

We bekijken het verschijnsel 'abrupte terminatie' in de programmeertaal Java.

Leerdoel

Na het voltooien van deze taak kunt u

Instructie

  1. Bestudeer het verschijnsel 'abrupt completion' en de taalconstructies break, continue, throw en try-catch in de Java Language Specification. (Mocht Oracle de documenten weer op een andere plaats hebben gezet kunt u ook hier een PDF van deze specificatie vinden.)
  2. Maak een overzicht van de syntaxis en (informele) semantiek van de genoemde taalconstructies. Zorg dat we de essentie ervan kunnen bestuderen zonder gehinderd te worden door Java-specifieke randverschijnselen: formuleer de constructies als uitbreidingen van de programmeertaal While.
  3. Geef een formele semantiek voor de constructie 'continue'. (De 'break' doen we samen op het college.)
  4. Geef een formele semantiek voor de constructies 'try-catch' en 'throw'. (Op het college maken we een begin.)
  5. Bespreek de verbanden tussen de besproken taalconstructies. Zijn ze onafhankelijk en/of 'stapelbaar'? Hoe kunnen de semantiekbeschrijvingen gecombineerd worden als we meer dan één van de constructies willen toevoegen?

Product

Reflectie