[{"@context":"http:\/\/schema.org\/","@type":"BlogPosting","@id":"https:\/\/wiki.edu.vn\/wiki13\/2020\/12\/23\/cal-programmiersprache-wikipedia\/#BlogPosting","mainEntityOfPage":"https:\/\/wiki.edu.vn\/wiki13\/2020\/12\/23\/cal-programmiersprache-wikipedia\/","headline":"CAL (Programmiersprache) – Wikipedia","name":"CAL (Programmiersprache) – Wikipedia","description":"CAL, kurz f\u00fcr Konversationsalgebraische Sprachewar eine Programmiersprache und ein System, die 1967 von Butler Lampson in Berkeley f\u00fcr den SDS","datePublished":"2020-12-23","dateModified":"2020-12-23","author":{"@type":"Person","@id":"https:\/\/wiki.edu.vn\/wiki13\/author\/lordneo\/#Person","name":"lordneo","url":"https:\/\/wiki.edu.vn\/wiki13\/author\/lordneo\/","image":{"@type":"ImageObject","@id":"https:\/\/secure.gravatar.com\/avatar\/44a4cee54c4c053e967fe3e7d054edd4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/44a4cee54c4c053e967fe3e7d054edd4?s=96&d=mm&r=g","height":96,"width":96}},"publisher":{"@type":"Organization","name":"Enzyklop\u00e4die","logo":{"@type":"ImageObject","@id":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","url":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","width":600,"height":60}},"image":{"@type":"ImageObject","@id":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","url":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","width":100,"height":100},"url":"https:\/\/wiki.edu.vn\/wiki13\/2020\/12\/23\/cal-programmiersprache-wikipedia\/","wordCount":2284,"articleBody":"CAL, kurz f\u00fcr Konversationsalgebraische Sprachewar eine Programmiersprache und ein System, die 1967 von Butler Lampson in Berkeley f\u00fcr den SDS 940-Gro\u00dfrechner entworfen und entwickelt wurden. CAL ist eine Version der wegweisenden JOSS-Sprache mit einer Reihe von Bereinigungen und neuen Funktionen, um die Vorteile der SDS-Plattform zu nutzen. Das Berkeley SDS wurde f\u00fcr die Entwicklung der kommerziellen Time-Sharing-Plattform Tymshare verwendet, und 1969 wurde seinen Kunden eine verbesserte Version von CAL als Programmierumgebung angeboten. Obwohl CAL “fast keinen Nutzen” sah, wirkte es sich durch Beeinflussung nachhaltig aus das Design von Tymshare SUPER BASIC, das eine Reihe seiner Funktionen kopierte. Einige dieser Funktionen wurden wiederum in BASIC-PLUS auf dem PDP-11 angezeigt, dem direkten Vorfahren von Microsoft BASIC.[1]Table of ContentsBeschreibung[edit]Grundlegendes Konzept[edit]Spr\u00fcnge und Unterprogramme[edit]Bedingte Verzweigung und Zuordnung[edit]Schleifen[edit]Benutzerdefinierte Funktionen[edit]Andere \u00c4nderungen[edit]Direktmodus[edit]Verbesserungen in CAL 1969[edit]Verweise[edit]Zitate[edit]Literaturverzeichnis[edit]Beschreibung[edit]Grundlegendes Konzept[edit]JOSS wurde entwickelt, um von Nicht-Programmierern der US Air Force und der Rand Corporation verwendet zu werden. Um dies zu unterst\u00fctzen, entwarf Rand benutzerdefinierte Computerterminals, die einfacher einzurichten und zu verwenden waren. Diese Terminals, die auf der IBM Selectric-Schreibmaschine basieren, enthielten auch einen benutzerdefinierten Zeichensatz, der g\u00e4ngige mathematische Symbole wie z \u2265 und \u2260. CAL war zu einem gro\u00dfen Teil eine Version von JOSS, die diese Art von Anpassungen durch h\u00e4ufigere L\u00f6sungen wie z >= und # so konnten sie auf gemeinsamen Terminals laufen. Die anderen auff\u00e4lligen Unterschiede bestanden darin, dass CAL im Gegensatz zur Satzschrift in JOSS nur in Gro\u00dfbuchstaben geschrieben war und kein Punkt am Ende der Zeile erforderlich war. Die Befehle waren ansonsten fast identisch und die Gesamtstruktur und Syntax gleich.Wie bei JOSS verf\u00fcgte CAL \u00fcber eine interaktive Benutzeroberfl\u00e4che, \u00fcber die der Benutzer Anweisungen im “direkten Modus” eingeben oder Programme im “indirekten Modus” ausf\u00fchren konnte. In BASIC wird Ersteres h\u00e4ufiger als “Sofortmodus” bezeichnet. Sowohl CAL als auch JOSS verwendeten eine zweiteilige Zeilennummer, die als Teil und Schritt bezeichnet wird und beispielsweise durch einen Punkt getrennt ist. 1.100 f\u00fcr Teil 1 Schritt 100. Teile wurden im Allgemeinen verwendet, um verwandte Anweisungen in Unterroutinen zu gruppieren. In CAL kann die Teilenummer zwischen 0 und 999999 und der Schritt zwischen 0 und 99999 liegen.Es gab zwei Hauptversionen von CAL, die 1967 und 1969 ver\u00f6ffentlicht wurden. Die folgende Beschreibung basiert haupts\u00e4chlich auf der fr\u00fcheren Version, sofern nicht anders angegeben.Spr\u00fcnge und Unterprogramme[edit]Wie in JOSS unterst\u00fctzte CAL das TO Befehl zum Verzweigen zu einem bereitgestellten Teil oder Schritt, wie in TO PART 3 oder TO STEP 4.5, und DO f\u00fcr Unterprogrammaufrufe wie in DO PART 9 den gesamten Teil ausf\u00fchren, oder DO STEP 5.1 um diesen einzelnen Schritt auszuf\u00fchren und dann zur\u00fcckzukehren. Die sp\u00e4tere Syntax war n\u00fctzlich, wenn es viele kleine Unterprogramme gab, da sie in einer einzelnen Zeile ohne zugeh\u00f6rige implementiert werden konnten RETURN oder \u00e4hnliches Konzept. Bedingte Verzweigung und Zuordnung[edit]Eines der bemerkenswertesten syntaktischen Merkmale von JOSS war das Konzept der “Anweisungsmodifikatoren”, die den Betrieb anderer Anweisungen kontrollierten. JOSS verwendete dies f\u00fcr die bedingte Verzweigung.In den meisten Sprachen w\u00fcrde man etwas schreiben, das den Effekt hat: “Wenn dieser Ausdruck wahr ist, dann mach das …”. In JOSS wurde diese Reihenfolge umgekehrt, und solche Aussagen hatten beispielsweise die Form “Tu dies, wenn dies wahr ist”. Type \"HELLO\" if X=5.. CAL f\u00fcgte diesem Grundkonzept durch Hinzuf\u00fcgen des neuen Modifikators etwas syntaktischen Zucker hinzu UNLESS, was je nach Kontext zu offensichtlicherem Code f\u00fchrte; TYPE \"IT IS NOT EQUAL TO FIVE\" UNLESS X=5.Wenn Sie also einer Variablen A den Wert 5 zuweisen, wenn der Wert von B gr\u00f6\u00dfer als 10 und andernfalls 0 ist, lautet der Code:Set A=5 if B>10.Set A=0 if B10 THEN 5 ELSE 0Eine \u00e4hnliche Modifikation war die WHERE Anweisung, die zum Festlegen von Variablen als Teil eines if oder for verwendet wird. Das Konzept \u00e4hnelte der if \/ then \/ else-Struktur, konnte jedoch eine beliebige Anzahl von Elementen enthalten. Zum Beispiel,=A*B WHERE A=B UNTIL A>20, WHERE A=1 UNTIL A>100.Schleifen[edit]Das Schleifen in JOSS wurde auch von einem Modifikator gesteuert, dem For. Dies verwendete eine etwas obskure Syntax; Type i for i=1(2)10. f\u00fchrt eine Schleife von 1 bis 10 schrittweise um 2 aus, sodass 1,3,5,7,9 gedruckt wird. Man k\u00f6nnte auch explizite Werte liefern, Type i for i=1,5,6,7,10.oder mischen Sie die beiden, Type i for i=1,5(1)7,10.CAL verbesserte die Syntax von JOSS durch die Einf\u00fchrung von BY und TO Schl\u00fcsselw\u00f6rter, also w\u00e4re der entsprechende Code in CAL TYPE I FOR I=1 BY 2 TO 10. In JOSS war die Klammer um den Schrittwert das Trennzeichen f\u00fcr die beiden Grenzwerte, sodass sie nicht optional gemacht werden konnte. Durch Abtrennen TO Die Grenzen wurden explizit und die BY wurde optional gemacht, als angenommen 1; TYPE I FOR I=1 TO 10. Wie bei JOSS k\u00f6nnen explizite Werte und Bereiche verwendet werden. TYPE I FOR I=1,5 TO7, 10. CAL hat die for-Schleife durch Hinzuf\u00fcgen von bedingten Exits unter Verwendung von weiter modifiziert WHILE und UNTIL. Zum Beispiel, TYPE A FOR A=1 BY 1 WHILE A"},{"@context":"http:\/\/schema.org\/","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https:\/\/wiki.edu.vn\/wiki13\/#breadcrumbitem","name":"Enzyklop\u00e4die"}},{"@type":"ListItem","position":2,"item":{"@id":"https:\/\/wiki.edu.vn\/wiki13\/2020\/12\/23\/cal-programmiersprache-wikipedia\/#breadcrumbitem","name":"CAL (Programmiersprache) – Wikipedia"}}]}]