• Keine Ergebnisse gefunden

- Grundsätze der systematischen Manipulation und Verwendung von Zeichen, d.h. Zeichenlehre

N/A
N/A
Protected

Academic year: 2022

Aktie "- Grundsätze der systematischen Manipulation und Verwendung von Zeichen, d.h. Zeichenlehre"

Copied!
17
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

3. Syntax, Semantik und Pragmatik

Ziele dieser Einheit:

- Grundsätze der systematischen Manipulation und Verwendung von Zeichen, d.h. Zeichenlehre

(Semiotik) kennen lernen.

- Die Begriffe Algorithmus und Zeichenlehre für

Zwecke der systematischen Programmierung in

Verbindung bringen.

(2)

Semantische Fehler

Syntaktische Fehler Stigmatische

Fehler Pragmatische

Fehler

Semantik

Pragmatik

Syntaktik (Syntax)

Stigmatik Bedeutung

Bezeichnetes

Benutzer/

Erzeuger

Metazeichen

(Konstrukt)

Zeichen

3.1 Semiotik (Zeichenlehre)

(3)

Bedeutung

SEMANTIK(Semantische Regeln)

Für die Darstellung der Syntax benutzen wir

SYNTAX-Diagramme.

SYNTAX

Zusammensetzung der Zeichen

(Syntaktische Regeln)

(4)

Beispiel:

Das Sprachkonstrukt „mürck“ aus der

tückischen

Program- miersprache „ürck/1“ (weit verbreitet in den Hinter-Pfälzischen Kirch-am- Boolean-Höhen) sei durch die folgenden Syntax-Diagramme formal definiert.

3.2 Einführung in Syntaxdiagramme

tück g

l m

k sch

mürck ü

ü tück

(5)

ü, ügü, ügügü, ügügügü,...

ümü, ..., ümügü, ..., ükügü, ...

ülü, ülümü, ...

üschü, üschüschü, ...,üschügü, ...

Generierte Wörter:

(6)

Backus-Naur-Form (BNF)

• Eine weitere Metasprache zur formalen Syntaxbeschreibung, genannt nach J.W. Backus (USA) und P. Naur (DK).

• Erstmals benutzt zur Beschreibung von ALGOL 60 (1960).

Symbol Bedeutung

::= Definition Metavariable satz Metavariable

(Nicht-Terminal)

“ a “ Terminal

Symbol Bedeutung

X ⎮ Y Optional ( X oder Y ) XY Konkatenation ( Y

folgt X )

mürck in BNF: mürck ::= “ü“ ⎮ mürck tück “ü“

tück ::= “g“ ⎮ “l“ ⎮ “m“ ⎮ “k“ ⎮ “sch“

(7)

„Extended“ BNF – EBNF

Symbol Bedeutung Symbol Bedeutung

::= Definition Metavariable (X ⎮ Y) Optional (X oder Y)

satz Metavariable (Nicht- Terminal)

XY Konkatenation (Y folgt X)

“ a “ Terminal [X] 0- oder 1-malige

Ersetzung

. Ende der Ersetzungsregel {X} 0- oder mehr- malige Ersetzung

mürck in EBNF:

mürck ::= “ü“ {tück “ü“}.

tück ::= (“g“ ⎮ “l“ ⎮ “m“ ⎮ “k“ ⎮ “sch“).

Anmerkung: für BNF/EBNF existieren in der Literatur versch. Notationen.

(8)

Yesterday´s pragmatics

is

today´s semantics

is

tomorrow´s syntax

Pragmatics

Konzepte von Programmiersprachen („... common sense ...“)

Semantics

Bedeutung von Programmkonstrukten („... syntactical sugar makes it easy ...“)

Syntax

Format der Programmkonstrukte („... the easy part of the semantics ...“)

(9)

0 1. .. 9 Ziffer

A|a BIb.

..

ZIz -

Buchstabe/Sonderzeichen

(Unterstrich) Buchstabe

Buchstabe Ziffer Bezeichner

3.3 Bezeichner („identifier“)

BNF: Bezeichner ::= Buchstabe⎮Bezeichner (Buchstabe⎮Ziffer) Buchstabe ::= (“A“⎮“a“)⎮(“B“⎮“b“)⎮…⎮“_“)

Ziffer ::= “0“⎮…⎮“9“

EBNF: Bezeichner ::= Buchstabe {Buchstabe⎮Ziffer}.

Buchstabe ::= ((“A“⎮“a“)⎮(“B“⎮“b“)⎮ … ⎮“_“).

Ziffer ::= (“0“⎮…⎮“9“).

(10)

Bemerkung: In C wird zwischen Klein- und Großbuchstaben unterschieden.

Folgende Konventionen sind geläufig:

- Variablennamen, Funktionsnamen: klein - Konstantennamen: groß

otto23 JULIA 2x

hans-jürgen hANS jÜRGEN Hans_Jürgen Hans$

Beispiele für Bezeichner – welche sind nicht korrekt?

PI

(11)

3.4 Sprachen als Kommunikationsmittel zwischen verschiedenen Dialogpartnern

Mensch Mensch

Problemorientiert (Umgangssprache)

Maschine Maschine

Maschinenorientiert Problemorientiert

Maschinenorientiertoder

Mensch Maschine

(12)

#include <stdio.h>

int main() {

printf("Hallo Welt\n");

return 0;

}

Dies erfordert: Eindeutigkeit der Sprachelemente.

Beispiele für Mehrdeutigkeit (Umgangssprache):

Wachtraum / Time flies like an arrow

58 20 40 00 Lade /* Lade 5A 20 40 04 Addiere /* Addiere 50 20 40 08 Speichere /* Speichere

- Maschinenorientierte Sprache:

(Objekt-Code)

- Problemorientierte Sprache:

(Quell-Code)

3.5 Programmiersprachen

Ziel der Kommunikation: Übermittlung von Algorithmen (hier relevant).

Vermeidung der Mehrdeutigkeit:

(13)

Verzweigung

Ende

Ausgabe printf("");

Beginn {

Eingabe scanf ("%s", Zutaten);

Elemente der Programmier- sprachen (z.B. C)

3.6 Grundkonstrukte von C

GRUNDOPERATIONEN DER ALGORITHMEN

Daten-(Zutaten-/Zwischenergebnis) Beschreibung Iteration

Sequenz a = b + 1 ;

c = (2 * a) / 3 ; ...

...

if (kochzeit > 30) esse();

else warte();

while (kochzeit < 30) warte();

}

typedef ...

struct ...

(14)

Sprachkonstrukte in verschiedenen höheren Sprachen

Sprache Konstrukt

FORTRAN BASIC COBOL Pascal C

Eingabe

READ INPUT

READ/

DATA

READ ACCEPT

READ READLN

getchar() gets() scanf() sscanf() fscanf()

Verarbei- tung

=

IF/ELSE DO

LET IF/ELSE

COMPUTE IF/ELSE PERFORM

:=

IF/ELSE FOR WHILE REPEAT

= if for while do

Ausgabe

WRITE

PRINT

PRINT PRINT/

USING

WRITE DISPLAY

WRITE WRITELN

putchar() puts() printf() sprintf() fprintf()

(15)

3.6 Kurzgeschichte von C

- C hat ihre Ursprünge in den „typenlosen“ Sprachen

ƒ

BCPL („Basic Combined Programming Language“): 1967-69 von M.

Richards (Cambridge Univ.) als hardwareorientierte Sprache konzipiert.

ƒ

B: 1970 als minimale Teilmenge von BCPL (D. M. Ritchie) von K.

Thompson, Bell Labs für den Einsatz im ersten in Unix

TM

-System geschaffen.

- 1972-73: inoffizielles C (B.W. Kernighan/D.M. Ritchie, Bell Labs).

- 1982- 89: ANSI-Standardisierungsprozess führte zu „ANSI-C“ (Norm-Nr:

ANSI X3.159 und ISO/IEC 9899).

- ANSI C ist hochgradig portabel.

(16)

ALGOL ALGOL68

Eiffel

Ada CHILL Pascal

196019701980

BCPL C B

LISP

KEE-Units FRL

LOOPS

CLOS Flavours

KRL

Legende:

: Weiterentwicklung (Add-On) : Derivat/starker Einfluß

1990

Smalltalk80

~~

Smalltalk72 Simula67

: Objektorientiert Objective C

C++

2000

Objekt-CHILL

Java

PROLOG

PROLOOP

2.8 Historische Entwicklung der Programmiersprachen

(17)

3.7 Wesentliche Eigenschaften von C

- Als „die Sprache“ von/für UnixTM bekannt; auch für mehrere andere Plattformen erhältlich. Der knappe Sprachumfang unterstützt ihre Portabilität ganz besonders.

- Allgemein einsetzbar, obwohl ursprünglich für Systemprogrammierung konzipiert.

- Wesentliche Elemente moderner imperativer Programmiersprachen vorhanden.

- C hat lediglich 32 Schlüsselwörter, andere, vergleichbare Sprachen dagegen einige hundert.

- Diese besonders spartanische Syntax ist gewöhnungsbedürftig. Die Verwandtschaft mit ALGOL, Pascal schwer feststellbar.

- Durch Erweiterung reichhaltiger Funktionsbibliotheken entstanden.

- Aber: Geeignete Funktionsbibliotheken und Laufzeitumgebungen schaffen Abhilfe.

- Der eigentliche Sprachumfang von C

ƒ enthält keine E/A-Anweisungen,

ƒ keine Unterstützung der Speicherverwaltung/Zeichenkettenverarbeitung,

ƒ keine Multiprogrammierung etc.

- Aber: Geeignete Funktionsbibliotheken und Laufzeitumgebungen schaffen Abhilfe.

Referenzen

ÄHNLICHE DOKUMENTE

Abhilfe schaffen hierbei dom¨anenspezifische Sprachen (DSL) mit einem eingeschr¨anktem Sprachumfang, die speziell einem Bedarf angepasst sind (dom¨anenspezifisch und abstrakt).

Sie freuen sich auf den Unterricht in kleinen Klassen (max. 25-28 Schüler) und wollen gemeinsam mit 25 Kolleginnen und Kollegen Waldorfpädagogik lebendig werden lassen? Eltern,

Solche Maß- nahmen, die gleichzeitig auf größere Gleichheit und größere Effizienz ausgerichtet sind, umfassen zum Bei- spiel Programme in den Bereichen frühkindliche Ent-

Empfehlungen einer interdis- ziplinären Expertenkommis- sion, Georg Thieme Verlag, Stuttgart, New York, 1997, XIII, 87 Seiten, 12 Einzeldar- stellungen, kartoniert, 48 DM

Patienten mit Demenz sind so verschieden wie das Syndrom selbst – je nach Schweregrad der Erkrankung und Ge- samtsituation stellen sie unterschiedliche Ansprüche an die Versorgung,

Für die Applikation von Ohren- tropfen werden die Kinder am besten auf die Seite mit dem be- troffenen Ohr nach oben gelegt. Bei Kindern unter drei Jahren wird das Ohrläppchen

• Eisenanstreicher zeigen keine Auffälligkeiten beim regelmäßigen Biomonitoring. • Weiteren Überprüfungen anlässlich einer Revision der GA zeigen

23 Sinne zu beeinflussen, je nachdem diese zwischen die eine oder die andere Leitung und Erde geschaltet wird (Abb. Der letztere Umstand laBt die Frage, ob der zweipolige