volkards FISI-Glossar



  • Mit der Bitte um Fehlerkorrektur und notwendige Ergänzungen:

    Glossar
    Algorithmus
    Ein Verfahren, das endlich und deterministisch ist, und dessen Einzelschritte eindeutig sind. Zum Beispiel Kochrezepte (außer, wenn uneindeutige Sachen 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.
    (Auch bei rekursiven Funktionen/Prozeduren verwendet, dort die Bedingung, die
    sagt, daß die Funktion/Prozedur nicht nicht weiter selbst aufrufen soll.)

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

    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 des 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. Die Sichtweise kommt Menschen, die in Begriffen und Tätigkeiten denken, sehr entgegen. Beispiel für en 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ß.

    OOP
    Objektorientierte Programmierung.

    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 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 einzelnes 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" st 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 aufgerufende 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 man die aufgerufende 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.



  • Ergänzbare Begriffe:
    Idiom
    Pattern
    Laufzeit
    Compilezeit
    Interpretersprache
    Compilersprache
    Bedingte Anweisung
    achda kann soviel rein 😮



  • Hallo,
    ich find's cool und hilfreich. Neben Prozedur und Funktion könnte man vielleicht noch Relation einführen. Schließlich haben wir Prolog-Programmierer weder Prozeduren noch echte Funktion (außer ein paar BIPs die sich wie Funktionen verhalten).

    Der Begriff 'Seiteneffekt' wäre meiner Meinung nach auch noch ein Kandidat. Dafür habe ich bisher nämlich noch nirgends eine schöne kurze Definition gesehen.

    Abstraktion/Abstrahieren wird bei uns an der Uni übrigens wie folgt definiert: "Abstrahieren: Herauslösen einzelner interessierender Eigenschaften, Zusammenhänge oder Beziehungen und ihr gedankliches Herausheben aus der Menge der Eigenschaften"
    Da sage ich nur Hä 😃



  • versteh ich auch ned 😞



  • Ich find das ist ne prima Sache! Wie weit willste das ganze noch ausbauen, sprich was soll noch rein? Denn wenn du schon von OOP anfängst, kannste ja noch andere Varianten der Programmierung reinbringen, wie halt imperativ oder funktional. Aber wie schon geschrieben "achda kann soviel rein "!

    Achja...lies dir mal den Abschnitt zum Thema Funktion nochmal genau durch. Ich glaub, da ist irgendwie ein 'k' zuviel. 🙂

    Und was mir noch einfällt - irgendwie haste den lieben Parser vergessen...was wären wir nur ohne diese tolle Erfindung! 😃

    [ Dieser Beitrag wurde am 18.12.2002 um 00:46 Uhr von Drakos editiert. ]



  • Die Definition von Funktion ist falsch - copy&paste Error ausgehend von Prozedur.



  • sehr gut und lehrreich!

    nur ein kleiner Tippfehler:
    du hast interativ statt iterativ geschrieben 😉



  • Member-Funktion: denglicher c++-Slang für Methode



  • Ein Paar kleine Tippfehler

    Algorithmus - das Wort Sachen 2 mal
    Abbruchbedingung - nicht statt sich
    Interpreter - das ist eher ein BS(die Beschreibung). Der Interpreter imho übersetzt den Programmcode während des Programmlaufs. Kann mich auch irren.
    Call by Reference - copy&paste Error

    MfG Lem



  • Vielleicht ist auch das Beispiel zum Synthax-Fehler nicht besonders gut gewählt. Immerhin gibt es Sprachen wo far & for Keywords sind. U.U. lässt sich am Ende auch noch einmal beides gut compilieren, liest man danach diesen Text glaubt man eher an einen logischen Fehler...

    Also lieber "while wile" oder so...

    MfG SIdeWinder



  • 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

    ChrisM



  • Original erstellt von volkard:
    **Beispiel für en 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ß.
    **

    Befehle funktionieren im Deutschen anders, außerdem hat das Beispiel nicht so viel mit OOP zu tun. Syntax hat allgemein nicht viel mit OOP zu tun.

    Der letzte Satzteil gefällt mir aber gut. Plattern könnte man damit so definieren: Etwas tolles, dass dafür sorgt, dass der Programmierer garnicht mehr denken muss ;).



  • Funtion/Prozedur unterscheidung ist doch Objektpascal spezifisch.



  • @Lars: Nein, in Pascal wird zwar genauer zwischen einer Funktion und einer Prozedur unterschieden (indem sie andere Synthax haben). Aber in C ist eine "Alibi-Funktion" mit Rückgabetyp void streng genommen auch eine Prozedur.

    MfG SideWinder



  • 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


Anmelden zum Antworten