Inleiding | Onderwijs | Kledinglijn
Eighty | Developer | Beschikbaarheid | Visual
Comal ][ COMAL-80 | OpenCOMAL
Inleiding
UniComal is een uitbreiding van de programmeertaal COMAL-80.
UniComal dat als DOS-applicatie is ontwikkeld door UniCOMAL A/S in Denemarken, kan via
zogenoemde packages of modules worden uitgebreid. Was dit bij COMAL-80 reeds het geval met
turtle-graphics (USE turtle) en andere grafische toepassingen (USE graphics), in UniComal
kan gebruik worden gemaakt van modules waarmee ook andere, met name dynamische datatypen,
kunnen worden gedefinieerd, zoals queues (zie voorbeeld hieronder).
Daarnaast is het gebruik ook toegespitst op netwerkomgevingen door middel van file en
record locking.
Niet alleen specifiek voor het
onderwijs
Een volledige beschrijving van de taal gaat ook op deze pagina te ver.
We geven daarom hieronder enkele gebruiksvoordelen en typische kenmerken van de
programmeertaal..
- UniComal is (nog steeds) bijzonder geschikt voor aanvankelijk programmeeronderwijs, niet alleen in scholen voor voortgezet onderwijs, maar zeker ook op lerarenopleidingen, hogescholen en universiteiten, waarbij de procedure-gerichte programeertaal wordt ondersteund door modulaire en gestructureerde opbouw en de interactieve programmeeromgeving. Daardoor wordt het leerproces zeer goed ondersteund.
- UniComal bevordert modulaire programmmering met op zichzelf staande, begrensde programmablokken (ook black-boxes zijn op eenvoudige wijze in UniComal te programmeren). Een voorbeeld:
STRUC queue // Implementation of the queue data structure // queue.push(x) -- Put x last in the queue // queue.pop -- Returns first element in the queue // queue.empty# -- Returns true iff the queue is empty EXPORT push, pop, empty# // Initialize: max# := 100 // Size of queue inptr# := 1 // Next place to push outptr# := 1 // Next place to pop from DIM q(max#) // Queue area PROC push(x) // Put x in the end q(inptr#) := x; inptr# :+ 1 IF inptr# > max# THEN inptr# := 1 IF inptr# = outptr# THEN STOP "Queue overflow" ENDPROC push FUNC pop // Remove value from queue IF inptr# = outptr# THEN STOP "Queue underflow" IF outptr# < max# THEN outptr# :+ 1 RETURN q(outptr# - 1) ELSE outptr# := 1 RETURN q(max#) ENDIF ENDFUNC pop FUNC empty# // Is the queue empty? RETURN inptr# = outptr# ENDFUNC empty# // ENDSTRUC queue
- Bij het invoeren van de programmaregels vindt controle op de syntax plaats, waarbij, indien nodig, contextafhankelijke foutmeldingen worden gegenereerd.
- UniComal kent sequentiële en willekeurig toegankelijke (RANDOM) bestandsformaten in ASCII- of binair formaat.
- UniComal bevat een module voor turtle-graphics. Een voorbeeld (klik hier voor de programma-listing):
Op nevenstaande fractaal is een kledinglijn gebaseerd: eighty by celie !
Homepage Yildiz Celie, Amsterdam, 2005
Zie ook: Yildiz' logo
- In UniComal ontwikkelde programma's hebben, mede door de token-notatie ervan, een grote verwerkingssnelheid.
- De rekennauwkeurigheid in UniComal vindt plaats met 15 significante cijfers.
- Het afvangen van fouten met de TRAP-HANDLER-RETRY-ENDTRAP-structuur draagt bij aan het construeren van bijzonder gebruiksvriendelijke programmatuur.
- Vanaf versie 3.x kunnen datastructuren, zoals records, worden geïmplementeerd, waarbij het mogelijk is globale en locale procedures voor deze structuren te definiëren (zie voorbeeld hierboven).
- In UniComal 3.x kunnen modules, geschreven in UniComal (maar ook in C of Assembler), aan het hoofdprogramma worden gekoppeld..
- Pointers en pointervariablen maken de definitie van dynamische gegevensstructuren mogelijk.
- Externe procedures uit programma-bibliotheken worden door UniComal uitgevoerd via een externe aanroep.
- UniComal kent volledige netwerkondersteuning op DOS-niveau via file en record locking.
- Nadat een programma interactief volledig is getest, is compilatie tot een "executable" programma mogelijk zonder verdere wijziging van het UniComal-programma.
UniComal als ontwikkeltool
Speciaal voor programma-ontwikkelaars is een uitgebreide versie van
UniComal beschikbaar: UniComal 3.11 Developer.
Specificaties:
- UniComal 3.11 is een compleet pakket met alle kenmerken van UniComal
- Turtle- en x/y-grafieken
- Beeldscherm-drivers voor Hercules, CGA, EGA, VGA en SVGA
- UniDump-module voor het direct verwerken van hardcopy naar een printer
- Compiler voor direct uitvoeren van programma's (.EXE)
- Muis-module
- UniWindow- und UniMenu-module voor eenvoudig progammeren van wisselende schermen en menu's (specifiek voor DOS-niveau, maar ook goed bruikbaar in een DOS-window onder Windows 9.x)
- SCOM-module vor RS232-ondersteuning
- Helpteksten in Engels, Deens, Noors en Zweeds (en op aanvraag ook in het Duits en Nederlands)
- Module voor Btrieve interfacing
- Handoek in de Engelse taal
Beschikbaarheid
UniComal is eigendom van UniCOMAL A/S, Prolog Development Center in Brøndby (Denmarken),
en wordt gedistribueerd door MacharSoft (Newton Stewart, Schotland).
UniComal wordt geleverd op 3¼" diskettes.
Voor levering van de verschillende pakketten en voor prijsinformatie kan via e-mail
contact opgenomen worden met MacharSoft (Schotland).
Verdere informatie is te vinden op de website van MacharSoft - Schotland.
Via de MacharSoft-website kan een groot aantal demo-programma's
en andere toepassingen (gratis) worden gedownload.
Visual Comal
UniComal draait zonder mankeren in een DOS-box onder Windows 9.x.
Op dit moment is een COMAL-versie in ontwikkeling (bij MacharSoft) die geheel draait onder
Windows 9.x.
Van deze versie, Visual Comal, is een eenvoudig prototype nu reeds
beschikbaar.
Klik hier
voor download [Zip-bestand, 63Kb].
Zie verder ook openCOMAL.