„PROSA (Programmiersprache)“ – Versionsunterschied
[ungesichtete Version] | [ungesichtete Version] |
Artikel begonnen (sec16) |
K Kategorie:Wikipedia:Seite mit Syntaxhervorhebungsfehlern Pflichtparameter lang siehe Hilfe:Syntaxhighlight#Parameter lang="pas"? |
||
Zeile 7: | Zeile 7: | ||
|Beeinflusst_von = [[Algol 60|ALGOL]], [[Pascal (Programmiersprache)|Pascal]] |
|Beeinflusst_von = [[Algol 60|ALGOL]], [[Pascal (Programmiersprache)|Pascal]] |
||
}} |
}} |
||
'''PROSA''' ('''PRO'''grammiersprache '''SA'''arbrücken) ist eine Mitte der 1980er Jahre von Jacques Loeckx, [[Kurt Mehlhorn]] und [[Reinhard Wilhelm]] an der Universität des Saarlandes in Saarbrücken entwickelte [[imperative Programmiersprache]], deren Anwendung vor allem im Bereich der Lehre und der Analyse von Programmen liegt.<ref name=" |
'''PROSA''' ('''PRO'''grammiersprache '''SA'''arbrücken) ist eine Mitte der 1980er Jahre von Jacques Loeckx, [[Kurt Mehlhorn]] und [[Reinhard Wilhelm]] an der Universität des Saarlandes in Saarbrücken entwickelte [[Imperative Programmierung|imperative Programmiersprache]], deren Anwendung vor allem im Bereich der Lehre und der Analyse von Programmen liegt.<ref name="Grundlagen">{{Literatur|Autor=Jacques Loeckx, Kurt Mehlhorn, Reinhard Wilhelm|Titel=Grundlagen der Programmiersprachen|Verlag=Springer-Verlag|Datum=2013|ISBN=978-3-322-94706-2|Online=https://books.google.com/books?id=5zHvBgAAQBAJ|Abruf=2016-05-30}}</ref> |
||
== Allgemeines == |
== Allgemeines == |
||
PROSA ist eine abgeleitete Form der Programmiersprache [[Pascal (Programmiersprache)|Pascal]] und somit auch von [[Algol 60|ALGOL]]. Aufgrund der einfachen Struktur und Lesbarkeit der Programme ist PROSA gut als Lehrsprache |
PROSA ist eine abgeleitete Form der Programmiersprache [[Pascal (Programmiersprache)|Pascal]] und somit auch von [[Algol 60|ALGOL]]. Aufgrund der einfachen Struktur und Lesbarkeit der Programme ist PROSA gut als Lehrsprache<ref name="ePROSA">{{Internetquelle|url=http://www.theory.informatik.uni-kassel.de/veranstaltungen/Konz-h-ProWS2002-03/vorlesung/prosa.pdf|titel=Die Programmiersprache ePROSA: Syntax, Kontextbedingungen und Semantik|autor=Friedrich Otto|hrsg=|werk=|datum=|zugriff=2016-05-30|format=PDF}}</ref> für Einsteiger geeignet. Der Aufbau der Sprache und viele ihrer Konzepte sind in weiten Teilen sehr ähnlich zu Pascal, jedoch wurden aus Vereinfachungsgründen neue, in Pascal unbekannte Aspekte wie zum Beispiel dynamische oder verschachtelte Arrays eingebaut.<ref name="Grundlagen" /> |
||
== Syntax == |
== Syntax == |
||
=== Hallo Welt === |
=== Hallo Welt === |
||
Ein [[Hallo-Welt-Programm]] in PROSA könnte so aussehen:<syntaxhighlight> |
Ein [[Hallo-Welt-Programm]] in PROSA könnte so aussehen: |
||
<syntaxhighlight lang="pas"> |
|||
program Hallo_Welt; |
program Hallo_Welt; |
||
begin |
begin |
||
Zeile 23: | Zeile 24: | ||
=== Variablen === |
=== Variablen === |
||
Aufgrund der starken und statischen Typisierung muss jede Variable bereits bei ihrer Definition genau einen von fünf [[Datentyp|Datentypen]] besitzen.<ref name=" |
Aufgrund der starken und statischen Typisierung muss jede Variable bereits bei ihrer Definition genau einen von fünf [[Datentyp|Datentypen]] besitzen.<ref name="Grundlagen" /> |
||
{| class="wikitable" |
{| class="wikitable" |
||
!Datentyp |
!Datentyp |
||
Zeile 47: | Zeile 48: | ||
==== Bedingte Anweisungen ==== |
==== Bedingte Anweisungen ==== |
||
Für verzweigte Programmstrukturen werden if-then-else-Anweisungen verwendet.<syntaxhighlight> |
Für verzweigte Programmstrukturen werden if-then-else-Anweisungen verwendet. |
||
<syntaxhighlight lang="pas"> |
|||
if x >= 0.0 then print "Zahl ist positiv" |
if x >= 0.0 then print "Zahl ist positiv" |
||
else print "Zahl ist negativ" |
else print "Zahl ist negativ" |
||
Zeile 54: | Zeile 56: | ||
==== Schleifen ==== |
==== Schleifen ==== |
||
PROSA besitzt im Gegensatz zu anderen Programmiersprachen wie ALGOL 60 oder Pascal nur while-Schleifen und keine do- oder for-Schleifen. Der Grund hierfür ist, dass die letzten beiden Schleifentypen als Spezialfälle der while-Schleife betrachtet werden können und durch diese in vielen Fällen substituierbar sind.<ref name=" |
PROSA besitzt im Gegensatz zu anderen Programmiersprachen wie ALGOL 60 oder Pascal nur while-Schleifen und keine do- oder for-Schleifen. Der Grund hierfür ist, dass die letzten beiden Schleifentypen als Spezialfälle der while-Schleife betrachtet werden können und durch diese in vielen Fällen substituierbar sind.<ref name="Grundlagen" /><ref>{{Internetquelle|url=http://profs.sci.univr.it/~merro/files/WhileExtra_l.pdf|titel=The While programming language|autor=|hrsg=|werk=|datum=|zugriff=2016-05-30|format=PDF}}</ref> |
||
<syntaxhighlight lang="pas"> |
|||
program Schleifen; |
program Schleifen; |
||
var x, y: integer; |
var x, y: integer; |
||
Zeile 63: | Zeile 66: | ||
== Verwendung == |
== Verwendung == |
||
Hauptsächlich findet PROSA ihren Einsatz größtenteils an deutschsprachigen Universitäten<ref name=" |
Hauptsächlich findet PROSA ihren Einsatz größtenteils an deutschsprachigen Universitäten,<ref name="ePROSA" /> da sie aufgrund ihrer einfachen Struktur, sich nicht nur für Einsteiger eignet, sondern vor allem auch zur theoretischen Analyse von Programmeigenschaften wie Laufzeit und Termination.<ref name="Grundlagen" /> Die einfache Grammatik der Sprache kann auch beim Testen von Compilern<ref>{{Literatur|Autor=Michael Eulenstein|Titel=Generierung portabler Compiler: Das portable System POCO|Verlag=Springer-Verlag|Datum=2013|ISBN=978-3-642-73431-1|Online=https://books.google.com/books?id=pnTTBgAAQBAJ|Abruf=2016-05-30}}</ref> oder als Grundlage für eigene, simple Programmiersprachen<ref>{{Internetquelle|url=https://scholar.googleusercontent.com/scholar?q=cache:pvDf19OCr0kJ:scholar.google.com|titel=Kurze Darstellung von Ordnungen|autor=Stefan Neis|werk=|zugriff=2016-05-30}}</ref> verwendet werden. |
||
== Einzelnachweise == |
== Einzelnachweise == |
Version vom 31. Mai 2016, 08:23 Uhr
PROSA | |
---|---|
Basisdaten | |
Paradigmen: | imperativ, strukturiert |
Erscheinungsjahr: | 1981 |
Entwickler: | Jacques Loeckx, Kurt Mehlhorn, Reinhard Wilhelm |
Typisierung: | stark, statisch |
Beeinflusst von: | ALGOL, Pascal |
PROSA (PROgrammiersprache SAarbrücken) ist eine Mitte der 1980er Jahre von Jacques Loeckx, Kurt Mehlhorn und Reinhard Wilhelm an der Universität des Saarlandes in Saarbrücken entwickelte imperative Programmiersprache, deren Anwendung vor allem im Bereich der Lehre und der Analyse von Programmen liegt.[1]
Allgemeines
PROSA ist eine abgeleitete Form der Programmiersprache Pascal und somit auch von ALGOL. Aufgrund der einfachen Struktur und Lesbarkeit der Programme ist PROSA gut als Lehrsprache[2] für Einsteiger geeignet. Der Aufbau der Sprache und viele ihrer Konzepte sind in weiten Teilen sehr ähnlich zu Pascal, jedoch wurden aus Vereinfachungsgründen neue, in Pascal unbekannte Aspekte wie zum Beispiel dynamische oder verschachtelte Arrays eingebaut.[1]
Syntax
Hallo Welt
Ein Hallo-Welt-Programm in PROSA könnte so aussehen:
program Hallo_Welt;
begin
print "Hallo Welt";
end.
Variablen
Aufgrund der starken und statischen Typisierung muss jede Variable bereits bei ihrer Definition genau einen von fünf Datentypen besitzen.[1]
Datentyp | Werte |
---|---|
int | Ganze Zahlen (0 , 37 , 5 )
|
real | Reelle Zahlen (0.0 , 1.5 , 37.25 )
|
char | Zeichen ('a' , 'b' , '+' )
|
string | Worte ("A" , "PROSA" , " " )
|
bool | Wahrheitswerte (true , false )
|
Kontrollstrukturen
Bedingte Anweisungen
Für verzweigte Programmstrukturen werden if-then-else-Anweisungen verwendet.
if x >= 0.0 then print "Zahl ist positiv"
else print "Zahl ist negativ"
fi
Schleifen
PROSA besitzt im Gegensatz zu anderen Programmiersprachen wie ALGOL 60 oder Pascal nur while-Schleifen und keine do- oder for-Schleifen. Der Grund hierfür ist, dass die letzten beiden Schleifentypen als Spezialfälle der while-Schleife betrachtet werden können und durch diese in vielen Fällen substituierbar sind.[1][3]
program Schleifen;
var x, y: integer;
begin x := 0; y := 10;
while x < y do x := x + 1 od
end.
Verwendung
Hauptsächlich findet PROSA ihren Einsatz größtenteils an deutschsprachigen Universitäten,[2] da sie aufgrund ihrer einfachen Struktur, sich nicht nur für Einsteiger eignet, sondern vor allem auch zur theoretischen Analyse von Programmeigenschaften wie Laufzeit und Termination.[1] Die einfache Grammatik der Sprache kann auch beim Testen von Compilern[4] oder als Grundlage für eigene, simple Programmiersprachen[5] verwendet werden.
Einzelnachweise
- ↑ a b c d e Jacques Loeckx, Kurt Mehlhorn, Reinhard Wilhelm: Grundlagen der Programmiersprachen. Springer-Verlag, 2013, ISBN 978-3-322-94706-2 (google.com [abgerufen am 30. Mai 2016]).
- ↑ a b Friedrich Otto: Die Programmiersprache ePROSA: Syntax, Kontextbedingungen und Semantik. (PDF) Abgerufen am 30. Mai 2016.
- ↑ The While programming language. (PDF) Abgerufen am 30. Mai 2016.
- ↑ Michael Eulenstein: Generierung portabler Compiler: Das portable System POCO. Springer-Verlag, 2013, ISBN 978-3-642-73431-1 (google.com [abgerufen am 30. Mai 2016]).
- ↑ Stefan Neis: Kurze Darstellung von Ordnungen. Abgerufen am 30. Mai 2016.