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: sortFunktion
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: quadratwurzelPolymorphismus
(ü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 ErrorMfG 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: quadratwurzelChrisM
-
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!