A programming language

Slides:



Advertisements
Ähnliche Präsentationen
Excel – Kurs Philip Clasen
Advertisements

der Universität Oldenburg
Imperative Programmierung
Einführung in die Informatik: Programmierung und Software-Entwicklung
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten KMP, BM.
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
What do you get marks for?
CPCP Institute of Clinical Pharmacology AGAH Annual Meeting, 29. Februar 2004, Berlin, Praktischer Umgang mit den Genehmigungsanträgen gemäß 12. AMG Novelle.
10. Grundlagen imperativer Programmiersprachen
E / IDE Enhanced / Integrated Device Elektronics
Der Einstieg in das Programmieren
Scratch Der Einstieg in das Programmieren. Scatch: Entwicklungsumgebung Prof. Dr. Haftendorn, Leuphana Universität Lüneburg,
Klicke Dich mit der linken Maustaste durch das Übungsprogramm! Vereinfachung von Termen Ein Übungsprogramm der IGS - Hamm/Sieg © IGS-Hamm/Sieg 2006 Dietmar.
Java: Dynamische Datentypen
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 2.1.
Grundkurs Theoretische Informatik, Folie 2.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 2 Gottfried Vossen Kurt-Ulrich Witt.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher bekannt: Einfache Variable Feld Vereinbarung Zuweisung Block while-Schleife Bedingte Anweisung (if) Typ.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
Betreuerin: Kathleen Jerchel
Differentieller Stromverstärker
Inhalte und Maßnahmen eingegeben haben,
DVG Ablaufsteuerung
Ralf KüstersDagstuhl 2008/11/30 2 Ralf KüstersDagstuhl 2008/11/30 3.
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
Bild 1.1 Copyright © Alfred Mertins | Signaltheorie, 2. Auflage Vieweg+Teubner PLUS Zusatzmaterialien Vieweg+Teubner Verlag | Wiesbaden.
20:00.
Einführung in das Programmieren mit JavaScript Mag. Andreas Starzer weloveIT – EDV Dienstleistungen.
SK / , , in Hochkössen und der Wildschönau flow Ski- und Snowboardschule Intersport Menzel.
Beschreibung der energetischen Zustände der Elektronen
Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
...ich seh´es kommen !.
Polynome und schnelle Fourier-Transformation
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Auslegung eines Vorschubantriebes
NEU! 1 2. Wo kommt diese Art von Rezeptor im Körper vor?
© Bibliothek und Archiv der Österreichischen Akademie der Wissenschaften Katalogisierung in RAK / MAB2 Beispiele 1. Teil Lösungen Verbund für Bildung und.
Analyse von Ablaufdiagrammen
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
SK / – in Hochkössen, St. Johann i.Tirol und Hochfügen flow Ski- und Snowboardschule Intersport Menzel.
Managemententscheidungsunterstützungssysteme (Ausgewählte Methoden und Fallstudien) ( Die Thesen zur Vorlesung 3) Thema der Vorlesung Lösung der linearen.
PARTENARIAT ÉDUCATIF GRUNDTVIG PARTENARIAT ÉDUCATIF GRUNDTVIG REPERES KULTURELLER ZUSAMMENHALT UND AUSDEHNUNG DER IDEEN AUF EUROPÄISCHEM.
Algorithmen und Datenstrukturen Übungsmodul 1
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Analyseprodukte numerischer Modelle
MODULA-2.
Pigmentierte Läsionen der Haut
Programmieren in C Grundlagen C 2
PHP: Operatoren und Kontrollstrukturen
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Vortrag von Rechtsanwältin Verena Nedden, Fachanwältin für Steuerrecht zur Veranstaltung Wege zum bedingungslosen Grundeinkommen der Piratenpartei Rhein-Hessen.
1 Mathematical Programming Nichtlineare Programmierung.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Der Erotik Kalender 2005.
Bildergalerie PRESEASON CAMP Juni 2014 Romanshorn Get ready for the Season!
Familie Beutner, Konrad-Voelckerstrasse, Edenkoben/Pfalz, Tel:
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
Kompetenzniveaus Lernlupe Mathematik
The Programming Language Pascal
 Präsentation transkript:

A programming language APL A programming language Maria Heym

Proseminar "Vergleich von Programmiersprachen" APL A double-decker bus. Its takes rows and columns of passengers to the same place all at the same time. But, it drives only in reverse gear, and is instrumented in Greek. [5] Sie schießen sich in den Fuß und verbringen den ganzen Tag damit raus zukriegen, wie sie das mit weniger Buchstaben schaffen können. [6] Proseminar "Vergleich von Programmiersprachen"

Proseminar "Vergleich von Programmiersprachen" Besonderheiten Zeichensatz Mächtigkeit Abarbeitungsreihenfolge Proseminar "Vergleich von Programmiersprachen"

Proseminar "Vergleich von Programmiersprachen" Gliederung Entstehungsgeschichte Anwendungsbereiche Typkonzepte Funktionsaufbau Zuweisung eines Wertes auf eine Variable Prozedurkonzepte Globale Programmstrukturen Ereignissteuerung Beispiel MergeSort Quellen Proseminar "Vergleich von Programmiersprachen"

Entstehungsgeschichte (I) Als mathematische Notationsform von Kenneth E. Iverson 1962 in „A programming language“ vorgestellt Zunächst zur formalen Beschreibung von IBM Systems/360 1966: erster Interpreter von APL Proseminar "Vergleich von Programmiersprachen"

Entstehungsgeschichte (II) Bis 1985: IBM führender Anbieter des Interpreters Seit 1992: Weiterentwicklung durch kleinere Softwarefirmen Aufnahme in die .Net-Familie Proseminar "Vergleich von Programmiersprachen"

Proseminar "Vergleich von Programmiersprachen" Anwendungsgebiete Statistiken zur Datenanalyse Banken, Versicherungen „wenn´s mal schnell gehen soll“ Von Mathematikern, Ingenieuren & „Nicht-Programmierern“ verwendet Proseminar "Vergleich von Programmiersprachen"

Proseminar "Vergleich von Programmiersprachen" Typkonzepte (I) Nur 2 Datentypen explizit unterscheidbar Zeichenketten Zahlen Interne Unterscheidung zwischen Festpunkt-, Gleitpunktzahlen und Boolean Proseminar "Vergleich von Programmiersprachen"

Proseminar "Vergleich von Programmiersprachen" Typkonzepte (II) Aus Skalaren: (homogene) dynamische Feldern Vektoren Matrizen Höherdimensionale Felder Proseminar "Vergleich von Programmiersprachen"

Proseminar "Vergleich von Programmiersprachen" Funktionsaufbau Funktionskopf: <Fkt.dekl.> <lokale Parameter> Funktionsende durch Proseminar "Vergleich von Programmiersprachen"

Beispiel „Hello World“ [2] Proseminar "Vergleich von Programmiersprachen"

Zuweisung eines Wertes auf eine Variable (I) Skalare skalarZuweisung [1] x← 100 [2] y←`5` [3] x 100 y 5 Proseminar "Vergleich von Programmiersprachen"

Zuweisung eines Wertes auf eine Variable (II) Vektoren vektorZuweisung [1] a←ι5 [2] b←1 2 3 4 5 [3] c←`123` [4] d←,100 [5] e←,`b` [6] f←,A [7] Proseminar "Vergleich von Programmiersprachen"

Zuweisung eines Wertes auf eine Variable (III) Matrizen folgen allgemein der Struktur A←<Strukturvektor>ρ<Datenvektor> matrizenZuweisung [1]V←1 0 2 1 0 3 1 1 5 2 1 5 [2]A←2 2 3ρ V [3] Proseminar "Vergleich von Programmiersprachen"

Zuweisung eines Wertes auf eine Variable (IV) matrizenZuweisung [1]V←1 0 2 1 0 3 1 1 5 2 1 5 [2]A←2 2 3ρ V V 1 0 2 1 0 3 1 1 5 2 1 5 Proseminar "Vergleich von Programmiersprachen"

Zuweisung eine Wertes auf eine Variable (V) matrizenZuweisung2 [1]B←3 4ρ1 2 3 B 1 2 3 1 2 3 1 2 3 1 2 3 Proseminar "Vergleich von Programmiersprachen"

Proseminar "Vergleich von Programmiersprachen" Prozedurkonzepte Keine Deklarationsteile Nur externe Prozeduren Prozeduren vom Funktionstyp Prozeduren vom Anweisungstyp Grundsätzlich call-by-value Proseminar "Vergleich von Programmiersprachen"

Proseminar "Vergleich von Programmiersprachen" Funktionstyp Dyadisch: x funktion y Monadisch: funktion z Niladisch: funktion Proseminar "Vergleich von Programmiersprachen"

Proseminar "Vergleich von Programmiersprachen" Anweisungstyp Dyadisch: r ← x funktion y Monadisch: r ← funktion y Niladisch: r ← funktion Proseminar "Vergleich von Programmiersprachen"

Proseminar "Vergleich von Programmiersprachen" Beispiele Anfwerte [1]D←B+C←B+B←A←1 [2] Aufrund X [1]X+1|-X L ReEck H [1]2xL+H Proseminar "Vergleich von Programmiersprachen"

Proseminar "Vergleich von Programmiersprachen" Beispiele (II) R←Summe [1]R←(?6)+?6 [2] U←Kreisumf R [1]U←2x°R R←A Hyp B [1]R←((A*2)+B*2)*.5 Proseminar "Vergleich von Programmiersprachen"

Elementare Operatoren (I) Symbol Monadisch Dyadisch + Identität +5 Summe 7+5 - Negation -5 Differenz 7-5 ! Fakultät 3! Binomialkoeffizient 3!2 Proseminar "Vergleich von Programmiersprachen"

Elementare Operatoren (II) ι Vektor ι5 Kl. Index von X in Y 1 2 6 4 ι 7 ρ Gibt SV zurück ρA Erstellt Matrix SV ρ DV | Betrag |-5 X modulo y 12|5 ° Multiplikation mit π °X Kreisfunktion N°X Proseminar "Vergleich von Programmiersprachen"

Elementare Operatoren (III) N°X (-N)°X √(1-X²) 1 sin X arc sin X 2 cos X arc cos X 3 tan X arc tan X 4 √(X²-1) √(X²+1) 5 sinh X arc sinh X 6 cosh X arc cosh X 7 tanh X arc tanh X Proseminar "Vergleich von Programmiersprachen"

Globale Programmstrukturen (I) Blöcke existieren nicht Alternativ: Funktionen, goto´s Namensbereiche: Variablen der Umgebung in aufgerufenen Funktionen bekannt Lokale Variable setzt globale Variable außer Kraft Proseminar "Vergleich von Programmiersprachen"

Globale Programmstrukturen (II) aufrufend [1]S←1 [2]aufgerufen [3] aufgerufen [2]S←S+1 Proseminar "Vergleich von Programmiersprachen"

Globale Programmstrukturen (III) aufrufend S 2 Proseminar "Vergleich von Programmiersprachen"

Globale Programmstrukturen (IV) aufrufend [1]S←1 [2]aufgerufen [3] aufgerufen;S [2]S←S+1 Proseminar "Vergleich von Programmiersprachen"

Globale Programmstrukturen (V) aufrufend S 1 Proseminar "Vergleich von Programmiersprachen"

Proseminar "Vergleich von Programmiersprachen" Ereignissteuerung Keine explizite Ereignissteuerung Sprünge möglich Sprünge zu Marken Sprünge auf Zeilennummern Proseminar "Vergleich von Programmiersprachen"

Proseminar "Vergleich von Programmiersprachen" Beispiel Sprünge sprung [1] →ι0 [2] →3 4 5 [3] → next [4]next: → 0 [5] →7 [6] Proseminar "Vergleich von Programmiersprachen"

Beispiel MergeSort (I) while- Schleife; Aufruf → LOOP → WHILE c DOTO end … end: → POOL Proseminar "Vergleich von Programmiersprachen"

Beispiel MergeSort (II) While-Schleife; Realisierung l←LOOP [1] LOOPSTACK←(1+(ı27)[1+ι1]), LOOPSTACK,l←ι0 [2] clabel←c DOTO label [1]clabel←c, label Proseminar "Vergleich von Programmiersprachen"

Beispiel MergeSort (III) dest←WHILE clabel [1]→clabel[ι1]/0,dest←(~clabel[ι1])/ clabel[1+ι1]+1 [2]LOOPSTACK←1↓LOOPSTACK [3] back←POOL [1]back←1↑LOOPSTACK [2] Proseminar "Vergleich von Programmiersprachen"

Beispiel MergeSort (IV) If-Verzweigung; Aufruf IF c DOTO label1 … label1: →label2 DOTO ELSE label2: → FI Proseminar "Vergleich von Programmiersprachen"

Beispiel MergeSort (V) label←IF clabel [1]label←(~clabel[ι1])/1+clabel[1+ι1] [2] ELSE←0 FI←ι0 Proseminar "Vergleich von Programmiersprachen"

Beispiel MergeSort (VI) slist←mergeSort ulist; llength; llist;rlist [1]llength←ρ ulist [2]slist←ulist [3]IF (llength>1) DOTO end [4]llist←(└llength:2)↑ulist [5]rlist←(-┌llength:2)↑ulist [6]llist←mergeSort llist [7]rlist←mergeSort rlist [8]slist←llist merge rlist [9]end: →FI [10] Proseminar "Vergleich von Programmiersprachen"

Beispiel MergeSort (VII) mlist←llist merge rlist [1]m←l←r←0 [2]→LOOP [3]→WHILE((l<ρllist)Λ(r< ρrlist)) DOTO end1 [4]IF(llist[l]<rlist[r]) DOTO lgr [5]mlist[m]←llist[l] [6]m←m+1 [7]l←l+1 [8]lgr:→end2 DOTO ELSE Proseminar "Vergleich von Programmiersprachen"

Beispiel MergeSort (VIII) [9]mlist[m]←rlist[r] [10]m←m+1 [11]r←r+1 [12]end2:→FI [13]end1:→POOL [14]LOOP [15]WHILE(l<ρllist)DOTO end [16]mlist[m]←llist[l] [17]m←m+1 [18]l←l+1 [19]end:→POOL Proseminar "Vergleich von Programmiersprachen"

Beispiel MergeSort (IX) [20]LOOP [21]WHILE (r<ρrlist) DOTO end [22]mlist[m]←rlist[r] [23]m←m+1 [24]r←r+1 [25]end:→POOL [26] Proseminar "Vergleich von Programmiersprachen"

Proseminar "Vergleich von Programmiersprachen" Quellen [1] Dialogsprachen; I.Kupka/ N. Wilsing; B.G. Teubner Stuttgart [2] Einführung in APL; Ernst Dotzauer; B.I. Hochschultaschenbücher [3] Programmieren in APL; Wolfgang K. Giloi; de Gruyter Lehrbuch [4] APL2-Ein erster Einblick, Brown/Pakin/Polivka; Springer-Verlag [5] www.elsop.com/wrc/humor/sel_lang.htm [6] www.jongl.de/gags_d.html Proseminar "Vergleich von Programmiersprachen"