Diskussion:Programmiersprache

Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 1. September 2004 um 17:59 Uhr durch Marc van Woerkom (Diskussion | Beiträge) (Erst die Theorie, dann die Paradigmen, dann die Sprachen). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Letzter Kommentar: vor 20 Jahren von Pinguin.tk

Ich fänds schön, wenn zu jeder Programmiersprache ein Helloworld-Beispiel (im Artikel zur jeweiligen Sprache) gegeben wird. Abkupfern könnte man zum Beispiel von http://www.uni-karlsruhe.de/~uu9r/lang/html/lang.de.html --elian


vielleicht könnte man hier jeweils eine Standardaufgabe in jeder Sprache lösen.

  • Hello World
  • Shellsort eines Zeichenketten-Arrays
  • Quadratwurzelalgorithmus
  • Bewegung zweier Körper (Massen) auf dem Bildschirm
  • Finde das Minimum dreier Zahlen
  • Umrechnung von Einheiten in andere Einheiten (DM <-> Euro)
  • Erstellung eines Kassenzettels in einem Cafe

Das Programm sollte meiner Meinung nach möglichst die Grundelemente der Sprache enthalten. Nicht supertrickreich sein. Auch dem interessierten Laien (mit Kommentar) verständlich sein. Umfang vielleicht maximal eine Seite.

Weiterer Vorschlag: die Beispielprogramme auf den Sprachenseiten. Können trotzdem nochmal separat gelinkt bzw. gelistet werden.

Im Übrigen bin ich bereit (wenns klar ist, welches wir nehmen) ein solches Programm in Pascal und/oder Delphi zu schreiben. --StefanRybo

Vielleicht sollte man für gewisse Sprachen (wie SQL, lex, bison ...) einfache sprachtypische Probleme lösen, also eine einfache Datenbankabfrage oder einen einfachen Parser. --Vulture

Ich würde die Beispielprogramme auf die Sprachenseiten nehmen, Programmiersprache ist doch schon ziemlich umfangreich, und wenn die Beispiele hier landen, muss jede einzelne Sprache für das Beispiel hierhin linken.
Ausserdem würde ich mich auf zwei oder drei Beispiele beschränken (zB Hello World, Kassenzettel und Quadratwurzel - oder so, könnte evtl. auch in ein Template für Programmiersprachen einfliessen).
Perl, Python, Oberon und C++ könnte ich mindestens ein "Hello World" beisteuern. Zis
Eigentlich sollte doch ein Link auf http://99-bottles-of-beer.ls-la.net/ reichen :-)
-- Ce 20:09, 9. Okt 2002 (CEST)
ich bin auch der meinung das ein link auf ein entsprechende seite reicht.
-- SK-Genius 21:15, 6. Mai 2004 (CEST)Beantworten

Ich möchte ein paar Zweifel anmelden zum Thema Programmiersprache.

  • SQL ist eine Datenbanksprache, aber keine Programmiersprache.
  • Shells können zwar Skripten ausführen, sind aber eben Shells und keine Programmiersprachen.
  • In der Zeittafel taucht Linux auf, das ist genauso wenig eine Programmiersprache wie Windows.

Zustimmung oder allgemeines Kopfschütteln? Ben-Zin'

  • SQL ist eine Abfragesprache, keine (universelle) Programmiersprache.
  • sh kann if und goto bzw. Schleifen. Also Programmiersprache.

--Walter Koch 19:21, 6. Sep 2002 (UCT)


SQL ist eine Programmiersprache vierter Ordnung. [Denis]

Was bedeutet in diesem Zusammenhang vierte Ordnung? Bzw. welche Programmiersprachen gehören zur ersten, zweiten und dritten Ordnung? --HJH

1. Generation: Maschinensprachen, 2. Generation: Assemblersprachen, 3. Generation: Höhere Programmiersprachen, 4. + 5. Generation: Marketing-Hype - etwas zynisch, aber eigentlich nicht. 4. Gerenation meint normalerweise "Programmgeneratoren" wie lex (lexical analyser, Lexikalische Analyse) oder yacc (yet another compiler compiler, Parsergenerator). Aber die Einteilung ist eh nicht so wichtig (weil sehr hype-lastig ;) ) und ich bin mir deshalb wegen 4. und 5. Generation auch nicht mehr so sicher. Vor allem suggeriert das auch "besser", obwohl (stark) spezialisiert wohl treffender wäre. 1. - 3. Generation sind aber "all-purpose". Vulture 07:55, 8. Sep 2002 (UTC)

Mh. Ordnung != Generation IMHO. Allerding weiß ich auch nicht, was eine P. vierter Ordnung sein soll - googlen brachte auch nichts. Denis, klär uns auf! --Walter Koch 20:06, 9. Okt 2002 (CEST)

SQL ist eine Datenbank-Abfragesprache, aber keine Programmiersprache. Schon gar keine Sprache der vierten Generation.
Es gibt natürlich 4GL (Forth Generation Language) die mit SQL zusammenarbeitet, und eine echte prozedurale Programmiersprache darstellt.

--Arbol01 18:07, 13. Mär 2004 (CET)

Hier übriegens ein einfaches Programm in 4GL:
MAIN
  DEFINE ergebnis INTEGER,
         wert1    INTEGER,
         wert2    INTEGER
  PROMPT "n : " FOR wert1
  PROMPT "k : " FOR wert2
  CALL binomial_koeffizient(wert1,wert2) RETURNING ergebnis
  DISPLAY ergebnis
END MAIN

FUNCTION binomial_koeffizient(n,k)
  DEFINE ergebnis1 INTEGER,
         ergebnis2 INTEGER,
         n         INTEGER,
         k         INTEGER
  IF ((k = 0) AND (n >= 0)) OR ((k = n) AND (k >= 0)) THEN
    LET ergebnis1 = 1
    RETURN ergebnis1
  END IF
  IF (n > k) AND (k > 0) THEN
    CALL binomial_koeffizient(n-1,k-1) RETURNING ergebnis1
    CALL binomial_koeffizient(n-1,k)   RETURNING ergebnis2
    LET ergebnis1 = ergebnis1 + ergebnis2
    RETURN ergebnis1
  END IF
END FUNCTION
Das Programm an sich zeigt allerdings nur die Eigenschaften einer prozeduralen Programmiersprache der 3.Generation. --Arbol01 12:02, 14. Mär 2004 (CET)
SQL ist nie und nimmer ne programmiersprache. kaum gibt es ne neue sprache für den "computer" und schon wird sie als programmiersprache bezeichnet. (ich würde zu gerne mal ein sql-programm sehn :D )
und das programm ist wirklich nur aus der 3. generation (nach eurer definition)
-- SK-Genius 21:15, 6. Mai 2004 (CEST)Beantworten

Die Programmiersprache C kennt an sich keine Ein-/Ausgabe!

Normalerweise sind die Elemente einer Programmiersprache:

  • Wert zuweisen/ändern an/von Variablen
  • elementare Mathemtik (die 4 Grundrechenarten)
  • Bedingte Verzweigung (if oder case)
  • Schleifen
  • Umgang mit nicht mathematischen Daten (z.B. Text)
  • Kommentare

Vielleicht sollte die Seite entsprechend geändert werden rolf

Das ist natürlich Blödsinn. Eine Programmiersprache ohne Ein-/Ausgabe ist nutzlos. Die Bibliothek stdio.h gehört natürlich zum ANSI-C Standard dazu.
Mit deiner Argumentation kannst Du behaupten, das auch Pascal, Modula, Ada, C++ und Python an sich keine Ein-/Ausgabe kennen. In all diesen Sprachen sollte/muß man vor Gebrauch einer Ein-/Ausgabe eine Bibliothek deklarieren. Ich glaube intelligente C/C++ Compiler werden es automatisch ergänzen, während Modula und ADA bei fehlender Deklaration eine Fehlermeldung ausgeben werden.

--Arbol01 18:15, 13. Mär 2004 (CET)

man kann die ein- und ausgabe auch als (zitat:)"Wert zuweisen/ändern an/von Variablen" sehen. ich hab damit kein problem ;) .
-- SK-Genius 21:15, 6. Mai 2004 (CEST)Beantworten
jein, I/O fällt oft unter "Seiteneffekte" eines Befehls -- aber ohne diese Seiteneffekte ist es ziemlich schwierig, ein sinnvolles Programm zu schreiben! --Pinguin.tk 23:18, 9. Jul 2004 (CEST)

Die Gleichsetzung "visuelle Programmierumgebung" und "IDE" ist so meiner Meinung nach nicht korrekt - als IDE kenne ich eher die Integration von Editor, Compiler/Linker und Debugger unter einer Oberfläche, eine visuelle Unterstützung zum Oberflächenentwurf ist zwar oft vorhanden, muß aber nicht sein. --hermi

Stimmt. Gleichsetzung ist inkorrekt, aber die meisten modernen IDEs unterstützen auch den GUI-Entwurf.
--zeno 18:03, 18. Mai 2003 (CEST)Beantworten

Bin ich der einzige, der die Aufteilung in Imperative Programmiersprachen, Deklarative Programmiersprachen, und Funktionale Programmiersprachen hier als Grundlage vermisst? -- Nichtich 21:02, 3. Jul 2003 (CEST)

eher die Aufteilung in imperative, deklarative und funktionale Programmierung, da viele Sprachen mehrere dieser Konzepte unterstuetzen. Aber das sollte auf jeden Fall rein. --zeno 12:36, 4. Jul 2003 (CEST)
na, Prolog gehört ganz klar zu den logischen Programmiersprachen --Pinguin.tk 00:06, 7. Mai 2004 (CEST)Beantworten

Die Aufteilung in "imperative Programmiersprachen", "deklarative" e.t.c. ist meiner Meinung nach die einzige Möglichkeit der hinreichenden Klassifizierung. Anders ließe sich z.B. eine Sprache wie Prolog nicht einsortieren. Sie erfüllt (in der reinen Sprachdefinition) einige von Rolfs Sprachelementen nicht: keine direkte Wertzuweisung ,keine elementare Mathematik,keine Schleifen e.t.c. als prädikatenorientierte Sprache hat sie einen anderen Ansatz (deshalb wird sie auch heute noch gerne in KI-ystemen eingesetzt)

prolog ist eh was besonderes. aber variablen wertzuvweisungen und elementare mathematik besitzt die sprache. ohne diese elemente währe sie auch nur ne veraltete variante von "SQL"
-- SK-Genius 21:15, 6. Mai 2004 (CEST)Beantworten

Diesen Absatz verstehe ich nicht:

Alternativen
Programmiersprachen sind nicht die einzige Möglichkeit komplexe Abläufe für den Computer aufzubereiten. Andere Konzeptionen sind etwa Datenbanken und Tabellenkalkulation, oder im hardwarenahen Bereich speicherprogrammierbare Steuerungen.

MH 14:52, 5. Nov 2003 (CET)

speicherprogrammierbare steuerungen laufen mit programmen im assemblerstyl.
-- SK-Genius 21:15, 6. Mai 2004 (CEST)Beantworten

Wo passen die Programmiersprachen Befunge, Malbolge und ZT hin?

für Befunge gibt es sogar ein funktionierendes "Game of Life" nach Conway, und ein kastriertes Schachprogramm.

Philipp Winterberg's ZT geht weit über die Brainfucks, Cows's und OOK's hinaus.

--Arbol01 15:38, 13. Mär 2004 (CET)


Ich bin schon dafür, Programmiersprachen anhand von Beispielen und Anweisungen miteinander zu vergleichen. Deswegen bin ich dabei unter Benutzer:arbol01/Vergleich_(Programmiersprachen) zu Bestimmten Problemen für die unterschiedlichen Programmiersprachen Quellcodes zu erstellen. Als Beispiel für Vergleiche von Anweisungsgruppen habe ich folgenden Artikel erstellt: String_Operationen. Ich bitte um Meinungen und Anregungen. --Arbol01 21:54, 15. Mär 2004 (CET)

Finde ich so eigentlich nicht besonders interessant, da diese Sprachen alle fast das gleiche Konzept verwenden und sich nur im Syntax unterscheiden. Wesentlich interessanter fände ich einen Vergleich unterschiedlicher Stringrepräsentationen, also z. B.
  • Veränderbare Zeichenketten (C, ML)
  • Unveränderbare Zeichenketten (Python)
  • Listen von Zeichen (Haskell)
  • Copy-on-write (Java)
mit Untersuchung der Effizienz der Operationen, und Beispielen, die die Unterschiede klar machen. -- Mellum 10:07, 16. Mär 2004 (CET)
Ich muß zugeben, daß ich damit angefangen habe, übrigens einiges bevor ich von Wikipedia gehört habe, um die Gemeinsamkeiten zwischen den verschiedenen Programmiersprachen herauszustellen. Die Differenzen liegen im Detail. Ich werde mich nicht mit jeder Programmiersprache befassen können, zumal ich nicht für jede Programmiersprache einen Compiler oder Interpreterzur verfügung habe (alle Listings, die ich reistelle, habe ich selst geschrieben, und sie sind alle gelaufen).
Python steht bei mir noch auf der Liste, Forth auch. Zu Haskell fehlt mir noch ein Interpreter oder Compiler. Für Ruby auch. Ach ja, die Shellskript-Sprachen fehlen auch noch. --Arbol01 18:54, 16. Mär 2004 (CET)

PHP 1997?

Hallo,

wie kommt ihr auf 1997 als Datum für PHP? PHP/FI ist schliesslich schon PHP und nicht erst PHP3.

MfG


Esoterische Sprachen = anspruchsvolle Scherze???

Kann man die Esoterischen Sprachen durch die Bank weg als anspruchsvolle Scherze bezeichnen? Ich bin mir da nicht so sicher. So sind Brainfuck, Ook, Moo und andere Programmiersprachen Turingkomplett und nicht selten gut durchdacht. Und Befunge und ZT gehen sogar in die zweidimensilonate Ebene, und lassen Schleifen zu. Als Programmiersprachen zum Programmieren hochkomplexer Programme sind sie sicher nicht geeignet, aber als Anschauungssprachen zum programmieren einfacher Programme und dem Verstehen von Turing-Automaten sind sie sicher ganz nützlich.

Klar ist natürlich, das nicht alle dieser esoterischen brauchbar sind. Sollte man nicht zwischen den halbwegs brauchbaren Exoten, und den wirklichen Scherzen unterscheiden? --Arbol01 00:17, 9. Jul 2004 (CEST)


Erst die Theorie, dann die Paradigmen, dann die Sprachen

Der Artikel legt viel zuviel Gewicht auf die imperativen Sprachen.

Ausserdem würde ich mit der Theorie anfangen, die ja die einfachsten Aspekte einer Programmiersprache modelliert. Ich werde deswegen gleichmal   mit auf die Liste setzen.

--Marc van Woerkom 17:59, 1. Sep 2004 (CEST)