Zum Inhalt springen

COMAL

aus Wikipedia, der freien Enzyklopädie

Vorlage:Hinweisbaustein

{{#if: | {{#if: | {{#if:strukturiert| {{#if:1973| {{#if:| {{#if:Benedict Løfstedt und Børge R. Christensen| {{#if:| {{#if:| {{#if:streng| {{#if:| {{#if:UniCOMAL| {{#if:| {{#if:BASIC, Pascal| {{#if:| {{#if:| {{#if:| {{#if:|
{{#if: COMAL | COMAL | {{#invoke:WLink|getArticleBase}} }}
colspan="2" class="notheme" style="text-align:center; background-color:#Vorlage:Standardfarbe;" | {{{Logo}}} |
 {{#if: {{#invoke:Wikidata|claim|P154}} |
[[Datei:{{#invoke:Wikidata|claim|P154}}|150px]]
 }}

}}

{{{Screenshot}}}{{#if: |
{{{Beschreibung}}} }}|

}}

Basisdaten
Paradigmen: strukturiert

}}

Erscheinungsjahr:
 {{#if: {{#invoke:Wikidata|claim|P571}} | 
Erscheinungsjahr: claim|P571|references=ja}}
 }}

}}

Designer:
 {{#if: {{#invoke:Wikidata|claim|P287}} | 
Designer: claim|P287|parameter=link|references=ja|list=, }}
 }}

}}

Entwickler:
 {{#if: {{#invoke:Wikidata|claim|P178}} | 
Entwickler: claim|P178|parameter=link|references=ja|list=, }}
 }}

}}

Aktuelle Version: {{{AktuelleVersion}}}  ({{{AktuelleVersionFreigabeDatum}}}) |

{{#if: {{#invoke:Wikidata|claim|P348}} |

Aktuelle Version {{#invoke:Wikidata|claim|P348|references=ja}}{{#if: {{#invoke:Wikidata|claim|Version|qualifier=P577}} | ({{#invoke:Wikidata|claim|Version|qualifier=P577}})}}}}

}}

Aktuelle Vorabversion: {{{AktuelleVorabVersion}}}  ({{{AktuelleVorabVersionFreigabeDatum}}})

}}

Typisierung: streng

}}

Wichtige Implementierungen:

}}

Dialekte: UniCOMAL

}}

Standardisierungen: {{{Standardisierungen}}}

}}

Beeinflusst von: BASIC, Pascal |
 {{#if: {{#invoke:Wikidata|claim|P737}} | 
Beeinflusst von: claim|P737|parameter=link|references=ja|list=, }}
 }}

}}

Beeinflusste:

}}

Betriebssystem:
 {{#if: {{#invoke:Wikidata|claim|P306}} | 
Betriebssystem: claim|P306|parameter=link|references=ja|list=, }}
 }}

}}

Lizenz:
 {{#if: {{#invoke:Wikidata|claim|P275}} | 
Lizenz: claim|P275|parameter=link|references=ja|list=, }}
 }}

}}

{{{Website}}} |
 {{#if: {{#invoke:Wikidata|claim|P856}} | 
{{#invoke: WLink | formatURL | {{#invoke:Wikidata|claim|P856|parameter=link}}}}
 }}

}}

COMAL (engl. common algorithmic language) ist eine imperative Programmiersprache der dritten Generation.

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.

Die Sprache nimmt dabei eine Stellung zwischen BASIC und Pascal ein und übernimmt aus BASIC konzeptionell die leichte Erlernbarkeit und die interaktive Arbeitsweise, während Kontrollstrukturen, Funktionen, Prozeduren und Rekursion aus Pascal stammen.

Die UniCOMAL-Implementation für DOS und OS/2 ist eine Objektorientierte Programmiersprache und erlaubt benutzerdefinierte Erweiterungen.

Es gibt Implementierungen für folgende Computer-Architekturen:

Anweisungen, Befehle und Kommandos in COMAL

AUTO:
Während der Programmeingabe nummeriert der Computer die Programmzeilen selbständig.

DEL:
Dieser Befehl wird beim Löschen von Prozeduren sowie Programmzeilen benutzt.

LIST:
Mit diesem Befehl werden alle Programmzeilen auf dem Bildschirm ausgegeben.

LIST":
Dieser Befehl wird benutzt, um Programmteile oder Programme so zu speichern, dass diese später an im Speicher befindliche Programme angefügt werden können.

LOAD:
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.

MERGE:
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.

PAGE:
Dieser Befehl löscht den Bildschirminhalt und setzt den Cursor in die linke obere Ecke.

RENUM:
Mit dieser Anweisung sorgen Sie für eine Neu-Nummerierung des Programms in Zehnerschritten.

RUN:
Mit diesem Befehl starten Sie den Programmablauf.

SCAN:
Diese Anweisung ermöglicht einen Probelauf ohne eine Programmausführung. Es wird lediglich die Programmstruktur erklärt, und eventuelle Fehler werden gemeldet.

Beispiele

Bedingungen

<syntaxhighlight lang="qbasic">

10 IF zahl > 1000 THEN
20   PRINT "Ihre Zahl ist größer als 1000"
30 ELIF zahl < 1000 THEN
40   PRINT "Ihre Zahl ist kleiner als 1000"
50 ELSE
60   PRINT "Ihre Zahl ist 1000"
70 ENDIF

</syntaxhighlight>

Schleifen

<syntaxhighlight lang="qbasic">

10 FOR zahl:= 1 TO 100 STEP 0.1 DO
20   PRINT zahl
30 ENDFOR
10 WHILE zahl <= 1000 DO
20   PRINT zahl
30   zahl:+1
40 ENDWHILE
10 REPEAT
20   PRINT zahl
30   zahl:+1
40 UNTIL zahl = 1000
10 LOOP
20   zahl:+1
30   EXIT WHEN zahl = 1001
40   PRINT zahl
50 ENDLOOP

</syntaxhighlight>

Beispielprogramm 1

<syntaxhighlight lang="qbasic">

10 PAGE
20 FOR zahl:= 1 TO 10 DO
30   PRINT "Es macht Spaß, mit COMAL zu arbeiten."
40 ENDFOR
50 END " "

</syntaxhighlight>

Beispielprogramm 2

<syntaxhighlight lang="qbasic">

10  PRINT "Beispielprogramm in der Programmiersprache COMAL"
20  REPEAT
25    EXEC writeoptions
30    INPUT "Bitte Option wählen": Option
40    INPUT "1.Zahl: ": first
50    INPUT "2.Zahl: ": second
60    EXEC auswahl(Option, first, second)
70  UNTIL Option=5
80  PROC writeoptions
90    PRINT "1. Summe"
100   PRINT "2. Differenz"
110   PRINT "3. Produkt"
120   PRINT "4. Quotient"
130   PRINT "5. Ende"
140 ENDPROC writeoptions
150 PROC auswahl(A,B,C)
160   CASE A OF
170     WHEN 1
175        PRINT "SUMME=", B+C
180     WHEN 2
185        PRINT "Differenz=", B-C
190     WHEN 3
195        PRINT "Produkt=", B*C
200     WHEN 4
205        PRINT "Quotient=", B/C
210     WHEN 5
215        PRINT "Ende"
220     OTHERWISE
225        PRINT "Falsche Option"
230   ENDCASE
240 ENDPROC auswahl

</syntaxhighlight>

Beispielprogramm 3

<syntaxhighlight lang="qbasic">

10  FOR z:= 1 TO 10 DO
20    PRINT "COMAL macht Spaß!"
25  ENDFOR z
30  END ""

</syntaxhighlight>

Literatur

  • Roy Atherton: Structured programming with COMAL. Horwood, Chichester 1982, ISBN 0-85312-416-7.
  • {{#invoke:Vorlage:Literatur|f}}{{#if:
       | {{#if: Vorlage:Cite book/ParamBool
               | Vorlage:Toter Link/archivebot
               | Vorlage:Webarchiv/archiv-bot
         }}
  }}{{#invoke:TemplatePar|check
   |all    = title=
   |opt    = vauthors= author= author1= authorlink= author-link= author-link1= author1-link= author2= author3= author4= author5= author6= author7= author8= author9= editor= last= first= last1= first1= last2= first2= last3= first3= last4= first4= last5= first5= last6= first6= last7= first7= last8= first8= last9= first9= last10= first10= last11= first11= last12= first12= last13= first13= last14= first14= last15= first15= others= script-title= trans-title= date= year= volume= issue= number= series= page= pages= at= issn= arxiv= bibcode= doi= pmid= pmc= jstor= oclc= id= url= url-status= format= access-date= archive-date= archive-url= archivebot= offline= location= publisher= language= quote= work= journal= newspaper= magazine= periodical=  name-list-style= url-access= doi-access= display-authors= via= s2cid= mr= type= citeseerx=  accessdate= archivedate= archiveurl= coauthors= month= day= last16= first16= last17= first17= last18= first18= last19= first19= last20= first20= last21= first21= last22= first22= last23= first23= last24= first24= last25= first25= last26= first26= last27= first27= last28= first28= last29= first29= last30= first30= last31= first31=
   |cat      = Wikipedia:Vorlagenfehler/Vorlage:Cite journal
   |errNS    = 0
   |template = Vorlage:Cite journal
   |format   = 
   |preview  = 1
  }}Vorlage:Cite book/URL{{#if:  | Vorlage:Cite book/Meldung }}{{#if:        | Vorlage:Cite book/Meldung }}{{#if: Computers & Education
     || Vorlage:Cite book/Meldung
  }}{{#if: Vorlage:Cite book/ParamBool
        | Vorlage:Cite book/Meldung
  }}{{#if: Vorlage:Cite book/ParamBool
     | Vorlage:Cite book/Meldung
  }}{{#if: Vorlage:Cite book/ParamBool
     | Vorlage:Cite book/Meldung
  }}{{#if: Vorlage:Cite book/ParamBool
     | Vorlage:Cite book/Meldung
  }}{{#if: Vorlage:Cite book/ParamBool
       | Vorlage:Cite book/Meldung
  }}{{#if: Vorlage:Cite book/ParamBool
     | Vorlage:Cite book/Meldung
  }}Vorlage:Cite book/Meldung2{{#ifexpr: 0{{#ifeq:Bramer|^^||+1}}{{#ifeq:^^|^^||+1}}{{#ifeq:^^|^^||+1}}{{#ifeq:^^|^^||+1}} > 1
    | Vorlage:Cite book/Meldung
  }}
  • Borge R. Christensen, Heiko Wolgast: COMAL 0.14-Handbuch. Verlag Schmidt & Klaunig, Kiel 1984
  • Borge R. Christensen: Strukturierte Programmierung mit COMAL 80. Oldenbourg Verlag, München 1985, ISBN 3-486-26902-X
  • Andreas Fischer: COMAL. (Informatik in der Sekundarstufe I.) Klett, Stuttgart 1988, ISBN 3-12-718900-1
  • V. Fischer: COMAL in Beispielen, 1. Auflage, B. G. Teubner Verlag 1986, ISBN 978-3-519-02538-2
  • Hartmut Göhner, Bernd Hafenbrak: Arbeitsbuch COMAL. Programmbeispiele der Sekundarstufe I: Zeichnen, Rechnen, Text- u. Dateibearbeitung. 2., durchges. Aufl. Duemmler, Bonn 1988, ISBN 3-427-45302-2
  • {{#invoke:Vorlage:Literatur|f}}{{#if:
       | {{#if: Vorlage:Cite book/ParamBool
               | Vorlage:Toter Link/archivebot
               | Vorlage:Webarchiv/archiv-bot
         }}
  }}{{#invoke:TemplatePar|check
   |all    = title=
   |opt    = vauthors= author= author1= authorlink= author-link= author-link1= author1-link= author2= author3= author4= author5= author6= author7= author8= author9= editor= last= first= last1= first1= last2= first2= last3= first3= last4= first4= last5= first5= last6= first6= last7= first7= last8= first8= last9= first9= last10= first10= last11= first11= last12= first12= last13= first13= last14= first14= last15= first15= others= script-title= trans-title= date= year= volume= issue= number= series= page= pages= at= issn= arxiv= bibcode= doi= pmid= pmc= jstor= oclc= id= url= url-status= format= access-date= archive-date= archive-url= archivebot= offline= location= publisher= language= quote= work= journal= newspaper= magazine= periodical=  name-list-style= url-access= doi-access= display-authors= via= s2cid= mr= type= citeseerx=  accessdate= archivedate= archiveurl= coauthors= month= day= last16= first16= last17= first17= last18= first18= last19= first19= last20= first20= last21= first21= last22= first22= last23= first23= last24= first24= last25= first25= last26= first26= last27= first27= last28= first28= last29= first29= last30= first30= last31= first31=
   |cat      = Wikipedia:Vorlagenfehler/Vorlage:Cite journal
   |errNS    = 0
   |template = Vorlage:Cite journal
   |format   = 
   |preview  = 1
  }}Vorlage:Cite book/URL{{#if:  | Vorlage:Cite book/Meldung }}{{#if:        | Vorlage:Cite book/Meldung }}{{#if: System
     || Vorlage:Cite book/Meldung
  }}{{#if: Vorlage:Cite book/ParamBool
        | Vorlage:Cite book/Meldung
  }}{{#if: Vorlage:Cite book/ParamBool
     | Vorlage:Cite book/Meldung
  }}{{#if: Vorlage:Cite book/ParamBool
     | Vorlage:Cite book/Meldung
  }}{{#if: Vorlage:Cite book/ParamBool
     | Vorlage:Cite book/Meldung
  }}{{#if: Vorlage:Cite book/ParamBool
       | Vorlage:Cite book/Meldung
  }}{{#if: Vorlage:Cite book/ParamBool
     | Vorlage:Cite book/Meldung
  }}Vorlage:Cite book/Meldung2{{#ifexpr: 0{{#ifeq:Leuschner|^^||+1}}{{#ifeq:^^|^^||+1}}{{#ifeq:^^|^^||+1}}{{#ifeq:^^|^^||+1}} > 1
    | Vorlage:Cite book/Meldung
  }}
  • UniComal A/S Denmark: UniComal ver.3 Programming System for DOS OS/2 Reference. UC 09.93, 511 Seiten, September 1993
  • UniComal A/S Denmark: UniComal ver 3 Programming System for DOS OS/2 Developement Toolkit. UC 09.93, 394 Seiten, September 1993

Weblinks

Einzelnachweise

<references />