C und patch

Adrian Holzwarth adrian at holzwarth.net
Don Nov 21 02:26:46 CET 2002


(leisegrummel ;))

> > Beschwerst du dich auch als Deutschsprechender, dass Französisch so
> > eine ungewohnte Grammatik hat?
> 
> Dann erklär mir mal, welchen Sinn es hat, dass im Deutschen Haupt-
> sätze nach dem Schema 'SVO' aufgebaut werden, [...]

Werden sie?

Hasso beisst Heiko mit den Zähnen. 

Ein Deutscher weiß sofort, was gemeint ist, erkennt beim Hingucken aber
auch, daß dieser dämlich kurze Satz locker vier verschiedene Lesarten
hat.

[....]

> > Eine Sprache sollte möglichst leicht zu benutzen, nicht möglichst
> > leicht zu erlernen sein.
> 
> Wenn ich das auf gesprochene Sprachen übertrage, komme ich zu dem
> Schluss, dass die Aussage falsch ist. 

Du, du, du, dann lass' es halt. :) Eine natürliche Sprache mit all ihrer
Mächtigkeit (Chomsky 1?), mit der damit einhergehenden syntaktischen
Komplexität,  Ambiguitäten (PP-Attachment (s.o.), Anaphernresolution...), 
prosodische Markierungen... bislang hat man noch nichtmal ansatzweise
mehr als nur ein Fragment der deutschen Sprache eindeutig maschinell 
parsen können.

Erstaunlich, nicht wahr? Wo wir "native speakers" sogar mit Texten
umgehen können, die der Grammatik nicht entsprechen (unsere viel
geliebten Betriebsanleitungen, die aus dem koreanischen übersetzt wurden
beispielsweise). Die Leistungsfähigkeit eines menschlichen Hirns ist 
so unverschämt großartig, da werden die lieben Computerlinguisten noch 
ein paar Jahre dran knabbern müssen.

Und eine Programmiersprache? In aller Regel an Position 2 oder gar 3 der
Chomsky-Hierarchie. Was fuer ein Gedanke: Eine Programmiersprache, die nicht
eindeutig ist. Der C-Compiler sucht sich aus, wie er den Code übersetzen
möchte oder produziert mal gleich 20 Kompilate, weil er nicht weiß, was
der Programmierer meinte. Na autsch. Es mag einige fragwürdige
Konstrukte geben (z.B. die einstelligen Präfixoperatoren in C?), aber
prinzipiell ist sowas hochgradig unerwünscht. Allein schon, weil der
Rechner im Gegensatz zu Dir und mir erstens genau keinen Fehler machen 
darf und zweitens ohnehin nicht die immense Verarbeitungskapazität wie wir
hat. Ambiguitäten bei Programmiersprachen kamen mir eigentlich nur
unter, wenn ich versuchte, fehlerhaften Quellcode "trotzdem" zu parsen.
Robustheit verlangt ihren Preis: Eindeutigkeit. Schließlich kann die
Maschine nicht mit Sicherheit sagen, welchen Fehler der Programmierer 
nun gemacht hat.

Rüttle bitte nicht an den Grundfesten meines Glaubens. ;)

Adrian

-- 
Computers are not intelligent.  They only think they are.