volkards FISI-Glossar



  • Ausdruck fehlt, IMHO.

    @Lars: Interpretersprache und Compilersprache sind nonsens-Begriffe.



  • thx für die hilfe.



  • jetzt sollte es soweit fertig sein das du es deinen schülern geben kannst.



  • Original erstellt von Bashar:
    **
    @Lars: Interpretersprache und Compilersprache sind nonsens-Begriffe.**

    Erläuter das doch bitte mal! IMHO kann man zwar sagen, dass diese Begriffe theoretisch gesehen "nonsens-Begriffe" sind, praktisch gesehen haben sie aber sehr wohl ihre Daseinsberechtigung. ...ich würde bei diesen Begriffen noch "hybride Sprache" hinzufügen (C#, Java,...).



  • nenne mir mal interpretersprachen außer perl.



  • Na da gibts zum Beispiel Haskell! 😃



  • PHP



  • Ein Interpreter bzw. Compiler ist eine spezielle Ausprägung einer Implementation einer Sprache, und keine Eigenschaft der Sprache an sich. Nur weil vielleicht alle existenten Implementierungen einer Sprache Interpreter bzw. Compiler sind, heißt das doch nicht, dass das für alle Zukunft so bleiben muß.

    Siehe PHP (Stichwort ZEND-Maschine)
    Oder Haskell (Glasgow Haskell Compiler ghc)

    Oder Lisp: Dadurch dass Lisp oft als Interpretersprache bezeichnet wird, bekommen die meisten nicht mit, dass die große Mehrheit der existierenden Implementierungen Compiler und Interpreter in einem sind, manche sogar reine Compiler.

    Java und Perl haben jeweils die Besonderheit, dass sie nur eine Implementation besitzen. Trotzdem sollte man IMHO davon nicht auf die Sprache schließen.



  • Original erstellt von Bashar:
    **
    Java und Perl haben jeweils die Besonderheit, dass sie nur eine Implementation besitzen.**

    Nur am Rande : Bei Java ist das zumindest falsch. Es gibt ernstzunehmende JVMs von Sun, IBM und BEA. Zudem gibt es Möglichkeiten, aus Java-Code ausführbare exe-Dateien zu erstellen. Zum Beispiel mit "Excelsior Jet". Auch mit dem GJC soll man exe-Dateien erstellen können, der ist aber wohl noch etwas zurück. Weiterhin gibt es diverse nicht-kommerzielle Ansätze, JVMs zu bauen. Zum Beispiel Kaffe.

    ...aber es wird glaube ich langsam etwas Off-Topic.

    Wie du schon gesagt hast, weiß man nicht, wie man eine Sprache in Zukunft nutzt. Man weiß aber, wie man sie hauptsächlich momentan nutzt. Deshalb meine ich, dass diese Begriffe durchaus eine Daseinsberechtigung haben.

    Ganz ehrlich : Wen interessiert es, ob es nen Compiler für Java-Code gibt, mit dem man nativen Code erzeugen kann. Niemanden. Java wird als hybride Sprache genutzt und man sollte sie deshalb auch so bezeichnen.



  • Gerade weil das Thema nicht ganz einfach abzuhandeln ist, kann man es nicht mit den übersimplifizierenden Begriffen Interpreter-/Compiler-Sprache abbügeln. Sie haben einfach keine Daseinsberechtigung, da sie eher zur Verwirrung -- und zur Bildung von gefährlichem Halbwissen -- beitragen als substantielle Informationen geben.



  • Das hier ist mir so beim Überfliegen 😃 aufgefallen:
    [Nachtrag] ein paar Fehler wurden schon von anderen entdeckt, aber ich lasse das jetzt mal so [/Nachtrag]

    Nach "Glossar" fehlt eigentlich eine Leerzeile.

    Algorithmus
    Ein Verfahren, das endlich und deterministisch ist, und dessen Einzelschritte eindeutig sind. [...]

    - kein Komma vor dem Wort "und"

    [...] außer, wenn uneindeutige Sachen Sachen wie [...]

    - das Wort "Sachen" steht zweimal hintereinander

    [...] Musiknoten (außer wenn Sachen wie [...]

    - hinter "außer" fehlt ein Komma

    Erklärungen von Prozedur und Funktion:
    Prozedur: Sie gibt keinen Wert zurück, denn sonst wäre sie eine Funktion.
    Funktion: Sie gibt keinen Wert zurück, wenn nicht, wäre sie nur eine Prozedur.

    - Beide geben KEINEN Wert zurück -> Kopierfehler

    Abbruchbedingung
    Eine Bedingung, die wenn sie wahr wird, die Schleife abbricht.

    - vor "wenn" fehlt ein Komma.

    Abbruchbedingung
    [...] (Auch bei rekursiven Funktionen/Prozeduren verwendet, dort die Bedingung, die
    sagt, daß die Funktion/Prozedur nicht nicht weiter selbst aufrufen soll.)

    - das Wort "nicht" kommt zweimal hintereinander vor
    - da fehlt ein "sich"
    - Wie wäre es etwas ausführlicher mit "Sie wird auch bei rekursiven Funktionen/Prozeduren verwendet und ist dort die Bedingung, die sagt, daß die Funktion/Prozedur sich nicht weiter selbst aufrufen soll."

    Laufbedingung
    Eine Bedingung, die wenn sie falsch wird, die Schleife abbricht.

    - vor dem Wort "wenn" fehlt ein Komma (gleicher Fall wie bei "Abbruchbedingung").

    IDE
    (Integrated Development Environment) Integrierte Entwicklungsumgebung Ein Programmpaket [...]

    - "IDE" entspricht "Integrated Development Environment", daher würde ich eher "Integrierte Entwicklungsumgebung" in Klammern setzen
    - hinter dem Wort "Entwicklungsumgebung" fehlt ein Punkt

    [...]die der Entwickler gerne mag, und die einigermaßen sinnvoll zusammenarbeiten.[...]

    Hinter dem Wort "mag" kein Komma setzen. Wenn es etwas sarkastisch klingen soll ("einigermaßen sinnvoll", hrrhrrhrrr), ist die Wortwahl treffend. Soll es seriös und ernsthaft klingen, würde ich eher schreiben "die den Entwickler in seiner Arbeit unterstützen und die sinnvoll zusammenarbeiten".

    Datensatz
    [...]in einer oo Sprache.

    - Objektorientiert würde ich ausschreiben.

    Server
    [...]Dienste zur verfügung stellt. (oft auch [...]

    - "Verfügung" wird gross geschrieben
    - der Punkt hinter dem Wort "stellt" kann weg, weil der Satz weiter geht. Dann würde aber der Punkt am Satzende hinter die Klammer gehören.

    Client

    - Punkte und Klammern wie bei "Server"

    Objektorientierung
    Sichtweise des Programmierung [...]

    - entweder "Sichtweise der Programmierung" oder "Sichtweise des Programmierers"

    [...] Die Sichtweise kommt Menschen [..]

    - Ich würde "Die Sichtweise" auf "Diese Sichtweise" erweitern.

    [...] Beispiel für en wenig syntaktischen Zucker [...]

    - Schreibfehler bei "ein"

    Nachricht
    [...] Man kann in der OOP sich vorstellen, [...]

    - Ich würde die Satzstellung "Man kann sich in der OOP vorstellen" bevorzugen...

    [...] daß man wenn man auf einem Objekt eine Methode aufruft [...]

    - vor dem Wort "wenn" fehlt ein Komma

    [...] wie es sich zu schließen hat, und ist deswegen dem Hauptziel der OOP, der Datenkapselung zuträglich.

    - das Komma vor dem Wort "und" ist zu viel. Dafür fehlt ein Komma hinter dem Wort "Datenkapselung".

    Methode
    [...] (und bei bedarf noch Objekte).

    - Bedarf wird gross geschrieben

    Klasse
    [...] Instanzen dieser Klasse auszusehen haben, und welche Nachrichten [...]

    - das Komma vor "und" ist zu viel

    Abstraktion
    [...] um das Wesentliche herauszuarbeiten, oder etwas allgemeingültiger [...]

    - das Komma vor "oder" ist zu viel

    Attribut
    [...] Ein einzelnes Datenwert im Datensatz.

    - heisst das fachlich wirklich so oder soll es "Ein einzelner Datenwert" heissen

    Syntax
    [...] kälter als draußen" st syntaktisch [...]

    - Schreibfehler im Wort "ist"

    Call by Reference
    [...] Mit Call by Value kann man die aufgerufende Funktion die Daten der aufrufenden Funktion verändern.

    - "die aufgerufende Funktion" zwischen "kann man" und "die Daten" ist zu viel

    Rekursion
    Die Eigenschaft, sich selbst aufzurufen. oder Der Selbstaufruf als solcher.

    - der Punkt hinter "aufzurufen" ist zu viel
    - "der" wird hinter "oder" klein geschrieben

    Iteration
    Die Eigenschaft, nicht rekursiv zu sein. oder Ein Schleifendurchlauf.

    - der Punkt hinter "sein" ist zu viel
    - "ein" wird hinter "oder" klein geschrieben

    Nochwas:

    Nach einem Stichwort geht es manchmal in der nächsten Zeile gross und manchmal klein weiter (nicht einheitlich).
    Das Ganze alphabetisch geordne wäre auch nicht schlecht.

    [ Dieser Beitrag wurde am 19.12.2002 um 15:24 Uhr von isabeau editiert. ]



  • Schönen Dank an isabeau im **voraus, **wahrscheinlich hat er den ganzen Tag nichts besseres zu tun **aber das macht er :).

    MfG SideWinder******



  • Naja, was soll man so kurz vor dem Urlaub sonst machen ? 😃



  • falls man etwas ne interpretersprache nennt, dann wohl eine sprache, die lauter dinge drin hat, die ein compiler nicht gebacken kriegt. bei perl fiele mir ein, daß man prozeduren in variablen stecken kann, erzeugen, löschen usw alles zur laufzeit. selbst ein compiler muß, sobald eines der mittel verwendet wird, nen vollen interpreter im laufzeitsystem beilegen. trotzdem kann fast aller perl-code trocken durchcompiliert werden, denn wer nutzt schon die abgefahrenen dinger für sein gästebuch oder forum? und mit jit ist eh keine grezne mehr. und selbst java und perl haben nen compiler davorsitzen, der wenigstens erstmal nen interpretierbaren zwischencode bastelt. und mit der bald hoffentlich zur verfügung stehenden java-hardware ist java dann maschinensprache. eh?
    also drück ich mich bei nem glossar für nubes um diese beiden begriffe.
    (Am liebsten hätte ich mich auch um Objektorientierung gedrückt, denn mir ist selber nicht ausreichend klar, was es ist.)
    c ist für mich ne reine compilersprache. aus jedem ihrer sprachmittel leuchtet einem ein grünes schild entgegen, auf dem in leuchbuchstaben "compiliere mich bitte" steht. und doch gibt es c-interpreter.



  • Original erstellt von isabeau:

    [...]die der Entwickler gerne mag, und die einigermaßen sinnvoll zusammenarbeiten.[...]

    Hinter dem Wort "mag" kein Komma setzen.

    gerade erstellt von volkard:
    versteh ich net.



  • Ich kann mich natürlich auch irren, aber soviel ich weiss, trennt man nur zwei Hauptsätze mit Komma, die mit "und" verbunden sind.
    "die einigermaßen sinnvoll zusammenarbeiten"
    kommt mir nicht wie ein vollständiger Hauptsatz vor (eher wie ein Nebensatz).



  • Original erstellt von isabeau:

    [...]die der Entwickler gerne mag, und die einigermaßen sinnvoll zusammenarbeiten.[...]

    Hinter dem Wort "mag" kein Komma setzen. Wenn es etwas sarkastisch klingen soll ("einigermaßen sinnvoll", hrrhrrhrrr), ist die Wortwahl treffend. Soll es seriös und ernsthaft klingen, würde ich eher schreiben "die den Entwickler in seiner Arbeit unterstützen und die sinnvoll zusammenarbeiten".

    seriös? nie! ich fürchte mich davor, daß meine texte eines tages auch nur lehrbuch-texte sein werden.

    Datensatz
    [...]in einer oo Sprache.

    - Objektorientiert würde ich ausschreiben.

    ich lasse oo, um die nubes daran zu gewöhnen.

    Server
    [...]Dienste zur verfügung stellt. (oft auch [...]

    - "Verfügung" wird gross geschrieben
    - der Punkt hinter dem Wort "stellt" kann weg, weil der Satz weiter geht. Dann würde aber der Punkt am Satzende hinter die Klammer gehören.

    ich mach den punkt vor der klammer und dafür am ende der klammer nen punkt. um auszudrücken, daß der klammerteil echt nur nebensächlich ist und nicht teil des wichtigen satzes.

    Attribut
    [...] Ein einzelnes Datenwert im Datensatz.

    - heisst das fachlich wirklich so oder soll es "Ein einzelner Datenwert" heissen

    guter witz!

    Rekursion
    Die Eigenschaft, sich selbst aufzurufen. oder Der Selbstaufruf als solcher.

    - der Punkt hinter "aufzurufen" ist zu viel
    - "der" wird hinter "oder" klein geschrieben

    hier nehme ich abstand vom schriftdeutsch und das "oder" dort ist ein meta-oder, das komplette eigenständige satze verodert.

    Nochwas:

    Nach einem Stichwort geht es manchmal in der nächsten Zeile gross und manchmal klein weiter (nicht einheitlich).
    Das Ganze alphabetisch geordne wäre auch nicht schlecht.

    hab erstmal alle groß gemacht. klain ist passiert, weil ich zwischen suchwort und erklärung einen doppelpunkt dachte.

    danke.



  • zwischenstand:
    über ein paar inhaltliche einwürfe von euch brüte ich noch...

    Glossar
    Algorithmus
    Ein Verfahren, das endlich und deterministisch ist und dessen Einzelschritte eindeutig sind. Zum Beispiel Kochrezepte (außer, wenn uneindeutige Sachen wie "man nehme ein wenig Zucker" drin stehen), Musiknoten (außer, wenn Sachen wie "2. Strophe mit viel Gefühl spielen" drin stehen), Programme (außer, wenn sie endlos laufen sollen).

    Prozedur
    Eine Folge von Anweisungen, der ein Name zugewiesen wurde. Dadurch ist sie aufrufbar. Sie gibt keinen Wert zurück, denn sonst wäre sie eine Funktion. Beispiel: sort

    Funktion
    Eine Folge von Anweisungen, der ein Name zugewiesen wurde. Dadurch ist sie aufrufbar. Sie gibt keinen Wert zurück, wenn nicht, wäre sie nur eine Prozedur. Beispiel: quadratwurzel

    Polymorphismus
    (übersetzt: Vielgestaltigkeit) Die Eigenschaft eines Wortes, in verschieden Kontexten verschiedene Bedeutungen zu haben.

    Abbruchbedingung
    Eine Bedingung, die, wenn sie wahr wird, die Schleife abbricht. (Sie wird auch bei rekursiven Funktionen/Prozeduren verwendet und ist dort die Bedingung, die sagt, daß die Funktion/Prozedur sich nicht weiter selbst aufrufen soll.)

    Laufbedingung
    Eine Bedingung, die, wenn sie falsch wird, die Schleife abbrcht.

    Compiler
    Übersetzer. Er übersetzt ein Programm von einer Programmiersprache in eine andere (oft in Maschinensprache). (Oft auch vereinfachend verwendet für IDE.)

    IDE
    Integrated Development Environment. (Integrierte Entwicklungsumgebung) Ein Programmpaket, das aus Compiler, Linker, Debugger, Editor, Online-Hilfe und all den Sachen besteht, die der Entwickler gerne mag, und die einigermaßen sinnvoll zusammenarbeiten. Sozusagen ein Office-Paket für Programmierer. (Ich warte noch auf eine IDE mit integriertem MP3-Player, der auf den Wagners Walkyrenritt umschaltet, wenn man den Debugger startet.)

    Interpreter
    Ein Programm, das im Gegensatz zum Compiler ein anderes Programm nicht übersetzt, sondern direkt ausführt.

    Virtual Machine
    Gedachte Maschine. Man abstrahiert von einer konkreten Maschine und definiert sie nur als Black Box. Oder man baut ein Programm, das sich wie die gedachte Maschine verhält. Die JVM (Java virtual machine) ist ein gutes Beispiel dafür.

    Linker
    Ein Programm, das mehrere übersetzte Programmteile zu einem großen zusammenbindet.

    Datensatz
    Zusammengehörige Werte. Zum Beispiel eine Zeile in einer Datenbankteabelle. Aber auch ein Objekt in einer oo Sprache.

    Index
    Eine Suchhilfe. Eine Liste von Verweisen auf die Daten in der großen Datensammlung. Den Index kann man viel schneller durchsuchen, als alle Daten.

    Server
    Ein Programm, das für andere Programme Dienste zur Verfügung stellt. (Oft auch vereinfachend für einen Rechner, der den Zweck hat, auf ihm Server-Programme laufen zu lassen.)

    Client
    Ein Programm, das von einem anderen Programm Dienste verwendet. (Oft auch vereinfachend für einen Rechner, der den Zweck hat, Programme laufen zu lassen, die von Servern bedient werden.)

    Objektorientierung
    Sichtweise der Programmierung, in der man die Datensätze (Objekte) in den Mittelpunkt stellt. Also die Begriffe, nicht mehr die Verben. Die ganze Welt sei nur ein Haufen von Objekten, die miteinander kommunizieren. Sie schicken sich gegenseitig Nachrichten, und jedes Objekt ist selber dafür verantwortlich, wie es auf eine Nachricht reagiert. Diese Sichtweise kommt Menschen, die in Begriffen und Tätigkeiten denken, sehr entgegen. Beispiel für ein wenig syntaktischen Zucker in der OOP: Statt fopen(file,"c:\\autoexec.bat") kann man in netten Spachen schreiben file.open("c:\\autoexec.bat"). Das entspricht noch eher den normalen deutschen Hauptsätzen mit Subjekt (das Objkejt file), Prädikat (die Methode open), Objekt (der Dateiname "c:\\autoexec.bat") und sorgt so dafür, daß der leidgeprüfte Programmiere noch ein wenig weniger denken muß. (TODO: fucking imperativ mal überdenken)

    OOP
    Objektorientierte Programmierung.

    oo
    objektorientiert.

    Laufzeitfehler
    Ein Fehler, der erst nach dem Start des Programms in Erscheinung tritt. Merke: Laufzeitfehler sind gemeine Fehler!

    Compilzeitfehler
    Ein Fehler, der vom Compiler gefunden wird, zum Beispiel die meisten Tippfehler. (Auch Linkerfehler nennt man Compilezeitfehler, obwohl bei genauer Betrachting zum Zeitpunkt des Linkens das Compilieren schon fertig ist.) Merke: Compilezeitfehler sind harmlose Fehler!

    Syntax-Fehler
    Ein Tippfehler wie "far" statt "for", den der Compiler bereits bemerkt.

    Nachricht
    Ein Methodenaufruf. Man kann sich in der OOP sich vorstellen, daß man, wenn man auf einem Objekt eine Methode aufruft, dem Objekt damit eine Nachricht sendet. Zum Beispiel bei window.close(); denkt man statt "ich rufe hier eigentlich close(window) auf" manchmal lieber "ich schicke dem Fenster namens window die Nachricht, daß es sich schließen soll". Diese Sichweise betont, daß das Objekt selber am besten weiß, wie es sich zu schließen hat und ist deswegen dem Hauptziel der OOP, der Datenkapselung, zuträglich.

    Methode
    Eine Funktion (oder Prozedur), die einem Objekt zugeordnet ist. Sie bekommt beim Aufruf auf jeden Fall ein Subjekt übergeben (und bei Bedarf noch Objekte).

    Objekt
    Ein Datensatz. (In manchen Gegenden (in der Näche von UML und CASE-Tools) wird statt "Klasse" auch Objekt gesagt, daher ist das Wort "Objekt" zweideutig. Man tut gut daran, "Instanz" oder "Klasse" zu sagen, wenn unklar sein könnte, was man meint.)

    Instanz
    Ein Objekt.

    Klasse
    Eine Schablone, die bestimmt, wie die Instanzen dieser Klasse auszusehen haben und welche Nachrichten man ihnen schicken kann.

    Abstraktion
    Weglassen von Details, um das Wesentliche herauszuarbeiten oder etwas allgemeingültiger zu machen. (Auch böswilliges Entfernen von konkret Vorstellbarem, um arme Schüler und Studenten zu verwirren. Siehe beliebiges Fachbuch.)

    Beziehung
    Eine Beziehung ist, wenn zwei was miteinander haben.

    Attribut
    Eine Eigenschaft eines Objekts. Ein einzelne Datenwert im Datensatz.

    Syntax
    Satzbaulehre. Regelwerk, was bestimmt, ob ein Programm übersetzbar (bzw. interpretierbar) ist. Macht man im Programm einen Syntaxfehler (Tippfehler oder next ohne for oder so), ist es nicht mehr übersetzbar. Beispiel: "Nachts ist es kälter als draußen" ist syntaktisch vollkommen korrekt, aber semantischer Unfug.

    Semantik
    Bedeutungslehre. Regelwerk, was bestimmt, in was ein Programm übersetzt wird.

    Pragmatik
    Die Regeln, die bestimmen, was man damit meinte. "Zieht es hier nicht?" mag semantisch schlicht eine Frage sein, aber pragmatisch evtl. eine Aufforderung, das Fenster zu schließen. Computer haben normalerweise keine Ahnung von Pragmatik (und echte Informatiker auch nicht, so munkelt man).

    Call by Value
    Aufruf, bei der die Funktion (oder Prozedur) eine Kopie des Wertes bekommt. Mit Call by Value kann die aufgerufene Funktion die Daten der aufrufenden Funktion nicht verändern.

    Call by Reference
    Aufruf, bei der die Funktion (oder Prozedur) einen Verweis des Wertes bekommt. Mit Call by Value kann die aufgerufene Funktion die Daten der aufrufenden Funktion verändern.

    rekursiv
    Auf sich selbst beziehend. Eine Funktion ist rekursiv, wenn sie sich selbst aufruft.

    interativ
    Nicht rekursiv.

    Rekursion
    Die Eigenschaft, sich selbst aufzurufen. oder Der Selbstaufruf als solcher.

    Iteration
    Die Eigenschaft, nicht rekursiv zu sein. oder Ein Schleifendurchlauf.

    Semantischer Fehler
    IHK-Wort für logischer Fehler.

    logischer Fehler
    Fehler im Programmablauf, die nicht zu einem sofortigen Programm-Ende führen, sondern nur falsche Resultate erzeilen. Merke: Logische Fehler sind die allergemeinsten!

    runtime error
    Eigentlich nur Laufzeitfehler. Es gibt Laufzeitsysteme, die bei bestimmten Fehlern einen Programmabbruch erzeugen. Zum Beispiel bei einer Division durch 0 das Programm beenden mit dem Fehlertext: "runtime error: division by zero". Machmal unterscheidet man Laufzeitfehler in semantische Fehler und runtime errors.

    Black Box
    Ein System, das nur duch seine Ein- und Ausgaben definiert ist.



  • - Hinter "Glossar" fehlt eine Leerzeile 😃

    - Prozedur und Funktion geben lt. Text immernoch beide KEINEN Wert zurück -> Text von Funktion enthält noch inhaltliche Fehler.

    Laufbedingung
    Eine Bedingung, die, wenn sie falsch wird, die Schleife abbrcht.

    - bei abbricht fehlt ein "i"

    Nachricht
    Ein Methodenaufruf. Man kann sich in der OOP sich vorstellen, [...]

    - jetzt ist ein "sich" zu viel drin

    Attribut
    [...] Ein einzelne Datenwert im Datensatz.[...]

    - bei "Ein einzelne Datenwert" fehlt jetzt ein "r" (das vorhergehende "s" ist aber schon weg; es sei denn, diese Bezeichnung ist jetzt fachlich richtig)

    Sowas wird auch gerne in Texten vergessen und dann doch nicht bearbeitet und gelöscht:
    (TODO: fucking imperativ mal überdenken)
    (Sorgt aber für Lacher 🙂



  • Ich finde die Beispiele für "Algorithmus" nicht gut.
    Ein Programm ist kein Algortihmus:

    Meiner Meinung nach:

    Problem != Algorithmus != Programm

    Für jedes Problem gibt es viele Algorithmen, für jeden Algorithmus gibt es viele Programme. Allgemein besteht ein Programm aus mehreren Algorithmen.

    Da fällt mir als Beispiel noch der Word-Algorithmus ein... der läuft auch nicht ewig, nur bis es abstürzt.


Anmelden zum Antworten