<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=COMAL</id>
	<title>COMAL - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=COMAL"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=COMAL&amp;action=history"/>
	<updated>2026-05-23T14:46:35Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=COMAL&amp;diff=96399&amp;oldid=prev</id>
		<title>imported&gt;Ulanwp: 2 fehlende Sprachparameter eingefügt; 2 Datumsformate konvertiert</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=COMAL&amp;diff=96399&amp;oldid=prev"/>
		<updated>2026-02-20T10:52:45Z</updated>

		<summary type="html">&lt;p&gt;2 fehlende Sprachparameter eingefügt; 2 Datumsformate konvertiert&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Begriffsklärungshinweis|Siehe auch: [[Comal (Kochgerät)]].}}&lt;br /&gt;
{{Infobox Programmiersprache&lt;br /&gt;
|Name = COMAL&lt;br /&gt;
|Paradigma = [[Strukturierte Programmierung|strukturiert]]&lt;br /&gt;
|Erscheinungsjahr = 1973&lt;br /&gt;
|Entwickler = Benedict Løfstedt und Børge R. Christensen&lt;br /&gt;
|Typisierung = streng&lt;br /&gt;
|Implementierung =&lt;br /&gt;
|Dialekte = UniCOMAL&lt;br /&gt;
|Beeinflusst_von = [[BASIC]], [[Pascal (Programmiersprache)|Pascal]]&lt;br /&gt;
|Beeinflusste =&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;COMAL&amp;#039;&amp;#039;&amp;#039; ([[Englische Sprache|engl.]] &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;com&amp;#039;&amp;#039;&amp;#039;mon &amp;#039;&amp;#039;&amp;#039;a&amp;#039;&amp;#039;&amp;#039;lgorithmic &amp;#039;&amp;#039;&amp;#039;l&amp;#039;&amp;#039;&amp;#039;anguage&amp;#039;&amp;#039;) ist eine [[Imperative Programmierung|imperative]] [[Programmiersprache]] der [[3GL|dritten Generation]].&lt;br /&gt;
&lt;br /&gt;
Sie wurde [[1973]] von den Dänen Benedict Løfstedt und Børge Christensen entwickelt und richtete sich hauptsächlich an Programmieranfänger. COMAL wurde unter anderem an europäischen Universitäten weiterentwickelt und 1979 als COMAL-80 standardisiert.&lt;br /&gt;
&lt;br /&gt;
Die Sprache nimmt dabei eine Stellung zwischen [[BASIC]] und [[Pascal (Programmiersprache)|Pascal]] ein und übernimmt aus BASIC konzeptionell die leichte Erlernbarkeit und die interaktive Arbeitsweise, während [[Kontrollstruktur]]en, [[Funktion (Programmierung)|Funktionen]], [[Prozedur (Programmierung)|Prozeduren]] und [[Rekursion]] aus Pascal stammen.&lt;br /&gt;
&lt;br /&gt;
Die UniCOMAL-[[Implementation]] für [[Disk Operating System|DOS]] und [[OS/2]] ist eine [[Objektorientierte Programmiersprache]] und erlaubt benutzerdefinierte Erweiterungen.&lt;br /&gt;
&lt;br /&gt;
Es gibt Implementierungen für folgende Computer-Architekturen:&lt;br /&gt;
* [[CP/M]]&lt;br /&gt;
* [[Commodore International|Commodore]] [[CBM-4000-Serie]] ([[Public Domain]])&lt;br /&gt;
* [[Commodore 64]] (&amp;#039;&amp;#039;COMAL 80&amp;#039;&amp;#039;, Public Domain)&amp;lt;ref name=&amp;quot;COMAL 80&amp;quot;&amp;gt;Fritz Nestle, Dietrich Pohlmann: &amp;#039;&amp;#039;C64/128 COMAL 80 Programmierpraxis.&amp;#039;&amp;#039; Haar bei München: Markt+Technik (1987)&amp;lt;/ref&amp;gt;&lt;br /&gt;
* [[Commodore 128#COMAL|Commodore 128]] (&amp;#039;&amp;#039;COMAL 80&amp;#039;&amp;#039;, Public Domain)&amp;lt;ref name=&amp;quot;COMAL 80&amp;quot; /&amp;gt;&lt;br /&gt;
* Commodore [[Amiga]]&lt;br /&gt;
* [[Amstrad CPC|Schneider/Amstrad CPC]]&lt;br /&gt;
* [[Acorn]] 8-bit&lt;br /&gt;
* Acorn Electron&lt;br /&gt;
* Acorn 32-bit&lt;br /&gt;
* [[IBM]] PC/AT (auf [[Disk Operating System|DOS]] und [[OS/2]])&lt;br /&gt;
* 32-Bit-Windows (OpenComal)&lt;br /&gt;
* Unix (BSD, GNU/Linux, Mac OS X) (OpenComal)&lt;br /&gt;
* MS-DOS (OpenComal)&lt;br /&gt;
&lt;br /&gt;
== Anweisungen, Befehle und Kommandos in COMAL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;AUTO&amp;lt;/code&amp;gt;:&amp;lt;br /&amp;gt;&lt;br /&gt;
Während der Programmeingabe nummeriert der Computer die Programmzeilen selbständig.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DEL&amp;lt;/code&amp;gt;:&amp;lt;br /&amp;gt;&lt;br /&gt;
Dieser Befehl wird beim Löschen von Prozeduren sowie Programmzeilen benutzt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;LIST&amp;lt;/code&amp;gt;:&amp;lt;br /&amp;gt;&lt;br /&gt;
Mit diesem Befehl werden alle Programmzeilen auf dem Bildschirm ausgegeben.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;LIST&amp;quot;&amp;lt;/code&amp;gt;:&amp;lt;br /&amp;gt;&lt;br /&gt;
Dieser Befehl wird benutzt, um Programmteile oder Programme so zu speichern, dass diese&lt;br /&gt;
später an im Speicher befindliche Programme angefügt werden können.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;LOAD&amp;lt;/code&amp;gt;:&amp;lt;br /&amp;gt;&lt;br /&gt;
Mit diesem Befehl lesen Sie eine Kopie eines Programms vom externen Speicher in den [[Arbeitsspeicher]]. Ist bereits ein Programm im Arbeitsspeicher vorhanden, so wird dieses gelöscht.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MERGE&amp;lt;/code&amp;gt;:&amp;lt;br /&amp;gt;&lt;br /&gt;
Mit diesem Befehl laden Sie Programme in den Arbeitsspeicher, ohne ihn vorher zu löschen. Ist bereits ein Programm im Arbeitsspeicher vorhanden, so wird das neue Programm an das bereits vorhandene angefügt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PAGE&amp;lt;/code&amp;gt;:&amp;lt;br /&amp;gt;&lt;br /&gt;
Dieser Befehl löscht den Bildschirminhalt und setzt den Cursor in die linke obere Ecke.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;RENUM&amp;lt;/code&amp;gt;:&amp;lt;br /&amp;gt;&lt;br /&gt;
Mit dieser Anweisung sorgen Sie für eine Neu-Nummerierung des Programms in Zehnerschritten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;RUN&amp;lt;/code&amp;gt;:&amp;lt;br /&amp;gt;&lt;br /&gt;
Mit diesem Befehl starten Sie den Programmablauf.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;SCAN&amp;lt;/code&amp;gt;:&amp;lt;br /&amp;gt;&lt;br /&gt;
Diese Anweisung ermöglicht einen Probelauf ohne eine Programmausführung. Es wird lediglich die Programmstruktur erklärt, und eventuelle Fehler werden gemeldet.&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
&lt;br /&gt;
=== Bedingungen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;qbasic&amp;quot;&amp;gt;&lt;br /&gt;
 10 IF zahl &amp;gt; 1000 THEN&lt;br /&gt;
 20   PRINT &amp;quot;Ihre Zahl ist größer als 1000&amp;quot;&lt;br /&gt;
 30 ELIF zahl &amp;lt; 1000 THEN&lt;br /&gt;
 40   PRINT &amp;quot;Ihre Zahl ist kleiner als 1000&amp;quot;&lt;br /&gt;
 50 ELSE&lt;br /&gt;
 60   PRINT &amp;quot;Ihre Zahl ist 1000&amp;quot;&lt;br /&gt;
 70 ENDIF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;qbasic&amp;quot;&amp;gt;&lt;br /&gt;
 10 FOR zahl:= 1 TO 100 STEP 0.1 DO&lt;br /&gt;
 20   PRINT zahl&lt;br /&gt;
 30 ENDFOR&lt;br /&gt;
&lt;br /&gt;
 10 WHILE zahl &amp;lt;= 1000 DO&lt;br /&gt;
 20   PRINT zahl&lt;br /&gt;
 30   zahl:+1&lt;br /&gt;
 40 ENDWHILE&lt;br /&gt;
&lt;br /&gt;
 10 REPEAT&lt;br /&gt;
 20   PRINT zahl&lt;br /&gt;
 30   zahl:+1&lt;br /&gt;
 40 UNTIL zahl = 1000&lt;br /&gt;
&lt;br /&gt;
 10 LOOP&lt;br /&gt;
 20   zahl:+1&lt;br /&gt;
 30   EXIT WHEN zahl = 1001&lt;br /&gt;
 40   PRINT zahl&lt;br /&gt;
 50 ENDLOOP&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Beispielprogramm 1 ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;qbasic&amp;quot;&amp;gt;&lt;br /&gt;
 10 PAGE&lt;br /&gt;
 20 FOR zahl:= 1 TO 10 DO&lt;br /&gt;
 30   PRINT &amp;quot;Es macht Spaß, mit COMAL zu arbeiten.&amp;quot;&lt;br /&gt;
 40 ENDFOR&lt;br /&gt;
 50 END &amp;quot; &amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Beispielprogramm 2 ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;qbasic&amp;quot;&amp;gt;&lt;br /&gt;
 10  PRINT &amp;quot;Beispielprogramm in der Programmiersprache COMAL&amp;quot;&lt;br /&gt;
 20  REPEAT&lt;br /&gt;
 25    EXEC writeoptions&lt;br /&gt;
 30    INPUT &amp;quot;Bitte Option wählen&amp;quot;: Option&lt;br /&gt;
 40    INPUT &amp;quot;1.Zahl: &amp;quot;: first&lt;br /&gt;
 50    INPUT &amp;quot;2.Zahl: &amp;quot;: second&lt;br /&gt;
 60    EXEC auswahl(Option, first, second)&lt;br /&gt;
 70  UNTIL Option=5&lt;br /&gt;
 80  PROC writeoptions&lt;br /&gt;
 90    PRINT &amp;quot;1. Summe&amp;quot;&lt;br /&gt;
 100   PRINT &amp;quot;2. Differenz&amp;quot;&lt;br /&gt;
 110   PRINT &amp;quot;3. Produkt&amp;quot;&lt;br /&gt;
 120   PRINT &amp;quot;4. Quotient&amp;quot;&lt;br /&gt;
 130   PRINT &amp;quot;5. Ende&amp;quot;&lt;br /&gt;
 140 ENDPROC writeoptions&lt;br /&gt;
 150 PROC auswahl(A,B,C)&lt;br /&gt;
 160   CASE A OF&lt;br /&gt;
 170     WHEN 1&lt;br /&gt;
 175        PRINT &amp;quot;SUMME=&amp;quot;, B+C&lt;br /&gt;
 180     WHEN 2&lt;br /&gt;
 185        PRINT &amp;quot;Differenz=&amp;quot;, B-C&lt;br /&gt;
 190     WHEN 3&lt;br /&gt;
 195        PRINT &amp;quot;Produkt=&amp;quot;, B*C&lt;br /&gt;
 200     WHEN 4&lt;br /&gt;
 205        PRINT &amp;quot;Quotient=&amp;quot;, B/C&lt;br /&gt;
 210     WHEN 5&lt;br /&gt;
 215        PRINT &amp;quot;Ende&amp;quot;&lt;br /&gt;
 220     OTHERWISE&lt;br /&gt;
 225        PRINT &amp;quot;Falsche Option&amp;quot;&lt;br /&gt;
 230   ENDCASE&lt;br /&gt;
 240 ENDPROC auswahl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Beispielprogramm 3 ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;qbasic&amp;quot;&amp;gt;&lt;br /&gt;
 10  FOR z:= 1 TO 10 DO&lt;br /&gt;
 20    PRINT &amp;quot;COMAL macht Spaß!&amp;quot;&lt;br /&gt;
 25  ENDFOR z&lt;br /&gt;
 30  END &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Roy Atherton: &amp;#039;&amp;#039;Structured programming with COMAL.&amp;#039;&amp;#039; Horwood, Chichester 1982, ISBN 0-85312-416-7.&lt;br /&gt;
* {{cite journal |first=M. A. |last=Bramer |date=1982 |title=COMAL 80 – Adding structure to BASIC |journal=Computers &amp;amp; Education |volume=6 |issue=2 |pages=179–192 |doi=10.1016/0360-1315(82)90031-8 |issn=0360-1315 |language=en}}&lt;br /&gt;
* Borge R. Christensen, Heiko Wolgast: &amp;#039;&amp;#039;COMAL 0.14-Handbuch&amp;#039;&amp;#039;. Verlag Schmidt &amp;amp; Klaunig, Kiel 1984&lt;br /&gt;
* Borge R. Christensen: &amp;#039;&amp;#039;Strukturierte Programmierung mit COMAL 80&amp;#039;&amp;#039;. Oldenbourg Verlag, München 1985, ISBN 3-486-26902-X&lt;br /&gt;
* Andreas Fischer: &amp;#039;&amp;#039;COMAL.&amp;#039;&amp;#039; (Informatik in der Sekundarstufe I.) Klett, Stuttgart 1988, ISBN 3-12-718900-1&lt;br /&gt;
* V. Fischer: &amp;#039;&amp;#039;COMAL in Beispielen&amp;#039;&amp;#039;, 1. Auflage, B. G. Teubner Verlag 1986, ISBN 978-3-519-02538-2&lt;br /&gt;
* Hartmut Göhner, Bernd Hafenbrak: &amp;#039;&amp;#039;Arbeitsbuch COMAL. Programmbeispiele der Sekundarstufe I: Zeichnen, Rechnen, Text- u. Dateibearbeitung.&amp;#039;&amp;#039; 2., durchges. Aufl. Duemmler, Bonn 1988, ISBN 3-427-45302-2&lt;br /&gt;
* {{cite journal |first=Burkhard |last=Leuschner |date=1987 |title=Comal’s the thing |journal=System |volume=15 |issue=3 |pages=373–376 |doi=10.1016/0346-251X(87)90011-X |issn=0346251X |language=en}}&lt;br /&gt;
* UniComal A/S Denmark: UniComal ver.3 Programming System for DOS OS/2 Reference. UC 09.93, 511 Seiten, September 1993&lt;br /&gt;
* UniComal A/S Denmark: UniComal ver 3 Programming System for DOS OS/2 Developement Toolkit. UC 09.93, 394 Seiten, September 1993&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://www.josvisser.nl/opencomal/ OpenComal] – eine [[Open Source|Open-Source]]-[[Implementierung]] von COMAL für [[Unix]], [[macOS]], [[MS-DOS]] und [[Windows]]&lt;br /&gt;
* [https://github.com/pietsch/OpenCOMAL OpenCOMAL] – [[GitHub]]-Projekt, das OpenComal auf neueren Linux-Versionen lauffähig macht&lt;br /&gt;
* [https://www.bennoehr.de/comal.htm bennoehr.de] – Einführung, kurz, deutsch, Befehle, Beispielprogramm&lt;br /&gt;
* [https://www.64er-magazin.de/8411/comal.html 64er-magazin.de] - Einführung in Comal für den C64&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Programmiersprache]]&lt;br /&gt;
[[Kategorie:Abkürzung]]&lt;br /&gt;
[[Kategorie:Historische Software]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Ulanwp</name></author>
	</entry>
</feed>