WikiDer > KOMAL

COMAL
COMAL-80
ParadigmaImperativ, strukturiert
erschien1973
Entworfen vonBorge Christensen, Benedict Lofstedt
Typensystemstark
ImplementierungenCP/M, MS-DOS, Unix
DialekteRC Comal, Metanic, UniComal, OpenComal
Beeinflusst vonBASIC, Pascal
BetriebssystemMultiplattform
Portal  Portalsymbol  Informatik

COMAL, COMmon einlgorithmisch lSprache, ist ein Programmiersprache der dritten Generation das in 1973 wurde basierend auf entwickelt BASIC und Pascal bis zum Dänen Børge Christensen, Lehrer am Statsseminarium (Lehrerausbildung) in Punk, und Benedict Løfstedt, Informatiker an der Universität arrhus.

Geschichte

Anfang 1972 erhielt das Institut, dem Christensen als Mathematiklehrer angegliedert war, eine Mini-Computer zum Zweck der neu einzurichtenden Ausbildung Computerwissenschaften. Auf diesem Computer war wie eine Programmiersprache Erweiterte BASIC verfügbar. Christensen wurde bald klar, dass diese Sprache für Bildungszwecke ungeeignet war.[1]

Zusammen mit Løfstedt schrieb er den Standard, den die neue Sprache erfüllen musste: die Einfachheit von BASIC mit dem Strukturen von Pascal, wie Prozeduren und Funktionen und vor allem umfangreiche Kontrollstrukturen wie REPEAT…UNTIL und IF…THEN…ELSE…ENDIF Die Beschreibung wurde Anfang 1974 fertiggestellt und dann die Implementierung der Sprache. Eine der Herausforderungen bestand darin, aussagekräftige (und daher lange) Namen von Variablen. Möglich war dies auch durch sogenannte Token mit denen das in a Array gespeicherte Namen waren angesprochen.

Am 5. August 1974 lief das erste Programm des späteren COMAL 75 auf einem Computer. Es war ein fünfzeiliges Programm innerhalb einer REPEAT…UNTIL-Struktur. Aber es enthielt bereits als didaktisches Hilfsmittel automatisch eingerückte Zeilen innerhalb dieser Struktur.Im Februar 1975 wurde die erste Version auf Band veröffentlicht, da es damals noch keine Disketten gab. Und es war ein Erfolg, denn alle Bildungsinstitute in Dänemark hatten den gleichen Computer. Die Lehrer waren etwas zögerlich, aber die Schüler nahmen die Dinge schnell auf. Sie könnten NUMBER=5 und NAME$="Peter Sørensen" schreiben; und der Syntax wurde beim Tippen zeilenweise überprüft. Aber es war vor allem das vierfach verschachtelte IF…THEN…ELSE…ENDIF-Konstrukt, das strukturierte Programmierung erst möglich machte (die Anweisung GEHE ZU wurde nicht mehr benötigt; in COMAL sogar unmöglich).[2]

Standardisierung

Aufgrund der Popularität von COMAL in Dänemark stieg die Zahl der Computermarken, auf denen COMAL implementiert wurde, schnell an. Da die pädagogischen Facetten der Sprache eine wichtige Rolle spielten, wurde beschlossen, eine internationale Standardisierungs- und Entwicklungsgruppe einzurichten, in der neben Hard- und Softwareanbietern und Informatikern auch Anwender vertreten waren: Die Standardisierungs- und Entwicklungsgruppen von COMAL. Das erste Treffen beider Gruppen fand am 28. Februar und 1. März 1983 in Kopenhagen statt. Die teilnehmenden Hard- und Softwarehersteller waren alle Dänen: A/S Regnecentraleen, Metanic ApS und Commodore Gruppen.

Der Name der Sprache wurde dann auch auf COMAL-80 festgelegt.

Später kamen weitere Hard- und Softwarehersteller und -anwender hinzu, unter anderem aus Irland, England und Schottland, den USA, Schweden, den Niederlanden und Deutschland.[3]

Verbreitung der Sprache

Patrone COMAL-80 für den Commodore 64
Handbuch COMAL-80 für den Commodore 64

Dänemark war offensichtlich das erste Land, das COMAL-80 in der Ausbildung von der High School bis zur Universität einsetzte.

1980 beschloss die irische Regierung Apfel II Computer in weiterführenden Schulen mit COMAL als Pflichtsprache zu verwenden Acorn Computer in England 1984 eine COMAL-Implementierung für die dort hauptsächlich verwendeten BBC/Acorn-Computer. In der Folge folgten auch Nutzer in Australien und Kanada.

A/S Regnecentralen entwickelte speziell für Bildungs- und Schulverwaltungszwecke einen Minicomputer, den RC700 Piccolo (und später eine einfachere Version, den Piccoline), auf dem der COMAL-Standard implementiert wurde. Diese Maschine wurde natürlich in Dänemark eingesetzt, aber auch bei der Verbreitung von COMAL in den Niederlanden, Deutschland und Polen spielte diese Maschine eine wichtige Rolle.

Zwischen 1984 und 1987 entwickelte Telenova (Schweden) eine COMAL-Version für ihren Desktop-Computer (Compis), die im schwedischen Bildungswesen verwendet wurde. Später wurde diese Version auch auf Computern implementiert, auf denen die BetriebssystemeCP/M, MS-DOS und Windows XP.

In den Niederlanden wurde die Version von Metanic ApS verwendet, die unter CP/M funktioniert, hauptsächlich in Schulen, die Mitglied der Vereinigten (neutralen) Sonderschulen waren (VBS). Die Einführung 1981 (auf der National Education Exhibition) erfolgte in einer Partnerschaft zwischen der Pascal Foundation (für technische Unterstützung durch die VBS), RC Data Systems (mit Sitz in Gouda; zuerst eine Tochtergesellschaft von A/S Regnecentralen, später von Datapoint) . und der Verlag Educaboek (in Culemborg). Bei Educaboek wurden ein Benutzerhandbuch und zwei Lehrbücher veröffentlicht. Letztere waren Übersetzungen der dänischen Bücher von Børge Christensen.[4][5]

Auch in Deutschland, hauptsächlich in den nördlichen Bundesländern, und in Polen wurde die Metanic-Implementierung von COMAL-80 an weiterführenden Schulen und einigen Universitäten verwendet.

Ein Durchbruch der Sprache in den Vereinigten Staaten kam zur gleichen Zeit, als eine amerikanische Commodore-Benutzergruppe eine "proprietäre" Diskettenversion der Sprache auf den Markt brachte, Version 0.14 für den sehr beliebten Commodore 64. Dies wurde von einer regelmäßigen Zeitschrift begleitet Komal heute, in dem auch Disketten mit (Beispiel-)Programmen ausgegeben wurden, sowie von einer Reihe von Lehrbüchern.

Auch aufgrund dieses Erfolgs entwickelte ein neues dänisches Unternehmen, UniComal, nicht nur eine Version für MS-DOS, sondern auch eine Patrone für den Commodore 64 der komplett ist kompatibel war mit der DOS-Version. Ein von der COMAL Development Group initiiertes neues Konzept – das sogenannte Package – ermöglichte es, jede COMAL-Implementierung um maschinenspezifische Standardbefehle zu erweitern. Für den Commodore 64 (und 128) beinhaltete dies ein Turtle-Paket (entnommen aus Logo) und das Soundpaket.

In den meisten Ländern, in denen COMAL-80 verwendet wurde, entstanden Benutzergruppen, unter anderem in den Niederlanden: die COMAL-80 GG (im Oktober 1982), die die niederländische Übersetzung des Handbuchs für den Commodore 64 und den Import und Verkauf der Patrone lieferte . . Diese Gruppe veröffentlichte auch ein Magazin namens Comal-Info problematisch.[6]

Die Entwicklung in Dänemark stand nicht still. Es gab dort Schulabbrecher, die nur mit COMAL programmieren gelernt hatten. UniComal hat deshalb auch eine Version veröffentlicht, die es möglich gemacht hat objektorientierten programmieren. Diese Version, 3.00, war auch als Compiler die die Entwicklung kommerzieller Software in COMAL ermöglichte, die unabhängig unter MS-DOS ausgeführt werden konnte.

OpenComal

Mit der Einführung des Windows-Betriebssystems (und der Entwicklung mausgesteuerter Programmiersprachen) endete auch die Weiterentwicklung und Nutzung von COMAL, mit Ausnahme der Nutzung an einer einzelnen Bildungseinrichtung in England und Schottland.

Ein weiterer COMAL-Dolmetscher wurde jedoch 1992 in der gemeinfrei, unter dem Decknamen PDComal, das 2002 in . umbenannt wurde OpenComal und ist für die Plattformen verfügbar Unix, MS-DOS und Win32 unten GNU General Public License. Diese Version basiert auf dem neuesten COMAL-Standard, hat aber auch einige Erweiterungen, wie zB NAME-Parameter in einer Prozedur, die es ermöglichen, Ausdrücke (und auch Prozeduren) an eine Prozedur zu übergeben. In dieser Implementierung erlaubt die CASE-Anweisung – wenn auch eingeschränkt – die Auswertung logischer Ausdrücke.[7]

Betriebssysteme, Marken und Versionen

Die verschiedenen Versionen von COMAL oder COMAL-80 waren auf den folgenden Betriebssystemen und Computermarken erhältlich.


Einige Beispiele für Standard-COMAL-Kontrollstrukturen

// Dies ist eine kommentierte COMAL-Anweisung

Wiederholen

FOR counter#:= 1 BIS 100 SCHRITT 3 DO PRINT counter#;ENDFOR counter#

Funktion mit Bedingung

FUNC Fakultät(n) IF n < 0 OR n <> INT(n) THEN STOP "Fehler im Parameter" ELIF n = 0 THEN // ELIF bedeutet ELSE IF RETURN 1 ELSE // rekursiv mit der Funktion RETURN n * Fakultät( n - 1) ENDIFENDFUNC Fakultät

Verfahren mit Auswahlanweisung

PROC change(REF a, b) CASE b OF WHEN 1, 2 a := a b WHEN 3, 4, 5 a := a * b WHEN 0 EXIT // Prozedur verlassen SONST a := 0 ENDCASEENDPROC change

Externe Links

Siehe auch