Steve Summit / Teil8
 
StartSeite | SteveSummit/ | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern

Top Prev Next

[40] There are all sorts of data types handled by various computer languages. There are single characters, integers, and "real" (floating point) numbers. There are text strings (i.e. strings of several characters), and there are arrays of integers, reals, or other types. There are types which reference (point at) values of other types. Finally, there may be user-defined data types, such as structures or records, which allow the programmer to build a more complicated data structure, describing a more complicated object, by accreting together several simpler types (or even other user-defined types).

Im Rahmen der verschiedenen Programmiersprachen gibt es alle möglichen Arten von Datentypen: für einzelne Zeichen, Ganzzahlen und Gleitkommazahlen (reelle Zahlen). Es gibt Strings (Zeichenketten, Text), Felder (Arrays, Vektoren, Matrizen) von Zahlen oder andere Datentypen. Zuletzt gibt es auch vom Programmierer definierte Datentypen wie z. B. Datensätze oder Strukturen, welche die Beschreibung komplizierterer Objekte mit Hilfe von Datenstrukturen erlauben, die aus einfacheren Typen zusammengesetzt werden.

[41] 6. There are statements which contain instructions describing what a program actually does. Statements may compute expressions, perform assignments, or call functions (see below).
6. Es gibt Befehle (Anweisungen) die den Ablauf eines Programmes Schritt für Schritt beschreiben. Befehle können Ausdrücke berechnen, Zuweisungen durchführen oder Funktionen aufrufen (siehe unten).

[42] 7. There are control flow constructs which determine what order statements are performed in. A certain statement might be performed only if a condition is true. A sequence of several statements might be repeated over and over, until some condition is met; this is called a loop.
7. Es gibt Befehle zur Ablaufkontrolle, welche die Ausführung anderer Befehle beeinflussen. Ein bestimmter Befehl könnte z. B. nur dann ausgeführt werden, wenn eine bestimmte Bedingung erfüllt (wahr) ist.

[43] 8. An entire set of statements, declarations, and control flow constructs can be lumped together into a function (also called routine, subroutine, or procedure) which another piece of code can then call as a unit.
8. Gruppen von Befehlen, Deklarationen und Ablaufkontroll-Befehlen können in Funktionen (Prozedur, Unterprogramm, Methode) zusammengefasst werden. Sie wirken wie neue Befehle, der man von anderen Stellen im Programm vielfach aufrufen (verwenden) kann.

[44] When you call a function, you transfer control to it and wait for it to do its job, after which it returns to you; it may also return a value as a result of what it has done. You may also pass values to the function on which it will operate or which otherwise direct its work.
Beim Aufruf einer Funktion wird ihr die Kontrolle so lange übertragen, bis sie ihre Arbeit erledigt hat und die Kontrolle zurückgegeben hat. Beim Aufruf können einer Funktion auch Parameter (Werte) mit übergeben werden, welche die Arbeitsweise der Funktion steuern. Bei der Rückgabe kann die Funktion Rückgabewerte (Resultate, return-Werte) liefern.

[45] Placing code into functions not only avoids repetition if the same sequence of actions must be performed at several places within a program, but it also makes programs easy to understand, because you can see that some function is being called, and performing some (presumably) well-defined subtask, without always concerning yourself with the details of how that function does its job. (If you've ever done any knitting, you know that knitting instructions are often written with little sub-instructions or patterns which describe a sequence of stitches which is to be performed multiple times during the course of the main piece. These sub-instructions are very much like function calls in programming.)
Durch die Platzierung von Befehlen in Funktionen vermeidet man nicht nur Wiederholungen, wenn gleiche Aktionen mehrfach an verschiedenen Stellen im Programm erforderlich sind, sondern das Programm wird auch leichter verständlich. Man kann erkennen, dass eine Funktion - hoffentlich mit einer klaren Aufgabenstellung - aufgerufen wird und braucht sich nicht um die Details zu kümmern (Wer jemals gestrickt hat weiß, dass Strickanleitungen oft kleine Unter-Anleitungen oder Muster enthalten, die oftmals und an verschiedenen Orten eingesetzt werden. Diese Unter-Anleitungen ähneln sehr stark den Aufrufen von Funktionen beim Programmieren.)

[46] 9. A set of functions, global variables, and other elements makes up a program. An additional wrinkle is that the source code for a program may be distributed among one or more source files. (In the other direction, it is also common for a suite of related programs to work closely together to perform some larger task, but we'll not worry about that "large scale integration" for now.)
9. Ein Programm besteht aus einer Gruppe von Funktionen, globalen Variablen und anderen Elementen. Als zusätzliche Komplikation können die Befehle eines Programmes (der Source) über ein oder mehrere Textdateien (Sourcefiles) verteilt sein. Andererseits können mehrere Programme als Programmpaket zur Erledigung einer größeren Aufgabe zusammenarbeiten, aber wir lassen diese großräumigere Programmintegration vorläufig außer Acht.

[47] 10. In the process of specifying a program in a form suitable for a compiler, there are usually a few logistical details to keep track of. These details may involve the specification of compiler parameters or interdependencies between different functions and other parts of the program. Specifying these details often involves miscellaneous syntax which doesn't fall into any of the other categories listed here, and which we might lump together as "boilerplate."
10. Wenn man ein Programm in der für einen Compiler passenden Form erstellt, dann gibt es üblicherweise einige logistische Details, um die man sich kümmern muss. Das kann die Spezifikation von Compiler-Parametern betreffen oder die Abhängigkeiten zwischen Funktionen oder anderen Programmteilen. Diese Details müssen oft in einer unterschiedlichen (meist vorlagen- oder bausteinartigen) Syntax spezifiziert werden.

[48] Many of these elements exist in a hierarchy. A program typically consists of functions and global variables; a function is made up of statements; statements usually contain expressions; expressions operate on objects. (It is also possible to extend the hierarchy in the other direction; for instance, sometimes several interrelated but distinct programs are assembled into a suite, and used in concert to perform complex tasks. The various "office" packages--integrated word processor, spreadsheet, etc.--are an example.)
Viele der besprochenen Elemente sind in Hierarchien organisiert. Ein Programm besteht typischerweise aus Funktionen und globalen Variablen. Eine Funktion besteht aus Befehlen. Befehle enthalten Ausdrücke. Ausdrücke wirken auf Objekte. (Wir können die Hierarchie auch in die andere Richtung weiterführen; z. B. werden oft Programme mit unterschiedlicher aber sich ergänzendem Profil zu Programmpaketen zusammengefasst. Beispielsweise die verschiedenen "Office-Pakete" bestehend aus Textverarbeitung, Tabellenkalkulation, etc.).

[49] As we mentioned, many of the concepts in programming are somewhat arbitrary. This is particularly so for the terms expression, statement, and function. All of these could be defined as "an element of a program that actually does something." The differences are mainly in the level at which the "something" is done, and it's not necessary at this point to define those "levels." We'll come to understand them as we begin to write programs.
Wie schon erwähnt, haben viele Konzepte der Programmierung etwas Willkürliches an sich. Das gilt besonders für die Begriffe Funktion, Befehl und Ausdruck. Man könnte jeden dieser Begriffe als "Element eines Programmes, das etwas tut" definieren. Die Unterschiede bestehen hauptsächlich in der Abstraktionsebene, auf der dieses "etwas" geschieht, aber wir brauchen uns - zumindest im Moment - nicht um eine exaktere Definition dieser Ebenen zu bemühen, denn man entwickelt leichter ein Verständnis dafür, sobald man mit dem Schreiben von Programmen beginnt.

[50] An analogy may help: Just as a book is composed of chapters which are composed of sections which are composed of paragraphs which are composed of sentences which are composed of words (which are composed of letters), so is a program composed of functions which are composed of statements which are composed of expressions (which are in fact composed of smaller elements which we won't bother to define). Analogies are never perfect, though, and this one is weaker than most; it still doesn't tell us anything about what expressions, statements, and functions really are. If "expression" and "statement" and "function" seem like totally arbitrary words to you, use the analogy to understand that what they are is arbitrary words describing arbitrary levels in the hierarchical composition of a program, just as "sentence," "paragraph," and "chapter" are different levels of structure within a book.
Vielleicht hilft uns eine Analogie: So wie ein Buch aus Kapiteln, Abschnitten, Absätzen, Sätzen und Wörtern (und die wieder aus Buchstaben) besteht, so besteht ein Programm aus Funktionen, Funktionen aus Befehlen und diese wiederum aus Ausdrücken (sie enthalten wiederum kleinere Elemente, um die wir uns jetzt nicht kümmern). Jedoch hat jede Analogie ihre Grenzen und auch diese Analogie sagt uns nichts darüber, was die Begriffe Funktion, Befehl und Ausdruck wirklich bedeuten. Lediglich das Bild dieser buchähnlichen hierarchischen Ordnung vermag vielleicht ein bisschen zum Verständnis beitragen.

[51] The preceding discussion has been in very general terms, describing features common to most "conventional" computer languages. If you understand these elements at a relatively abstract level, then learning a new computer language becomes a relatively simple matter of finding out how that language implements each of the elements. (Of course, you can't understand these abstract elements in isolation; it helps to have concrete examples to map them to. If you've never programmed before, most of this section has probably seemed like words without meaning. Don't spend too much time trying to glean all the meaning, but do come back and reread this handout after you've started to learn the details of a particular programming language such as C.)
Unsere Ausführungen sind sehr allgemein gehalten und beschreiben Elemente, die wir in den meisten "konventionellen" Programmiersprachen vorfinden. Wenn man diese Elemente in ihrer abstrakten Form verstanden hat, dann wird das Erlernen einer neuen Sprachen zur relativ simplen Frage, wie diese Sprache diese Elemente implementiert. (Natürlich kann man die Elemente nicht in völlig abstrakter Form verstehen; man muss sie mit realen Beispielen in Beziehung setzen. Für jemanden, der noch nie programiert hat, war der größte Teil dieses Abschnittes vermutlich unverständlich. Man sollte nicht allzu viel Zeit darauf verschwenden, die gesamte Bedeutung zu erfassen, sondern statt dessen nach dem Erlernen einer Programmiersprache wie C wieder zu diesem Text zurückkehren und ihn nochmals lesen).

[52] Finally, there's no need to overdo the abstraction. For the simple programs we'll be writing, in a language like C, the series of calculations and other operations that actually takes place as our program runs is a simpleminded translation (into terms the computer can understand) of the expressions, statements, functions, and other elements of the program. Expressions are evaluated and their results assigned to variables. Statements are executed one after the other, except when the control flow is modified by if/then conditionals and loops. Functions are called to perform subtasks, and return values to their callers, which have been waiting for them.
Zum Abschluß: es gibt keinen Grund, die Abstraktion auf die Spitze zu treiben. Wir werden es mit einfachen Progammen (in Programmiersprachen wie C) zu tun haben, bei denen Abfolgen von Berechnungen und anderen Operationen ziemlich einfach in Ausdrücke, Befehle und Funktionen übersetzt werden, so dass sie der Computer verstehen bzw. ausführen kann. Funktionen werden aufgerufen, um Teilaufgaben zu erfülllen und geben Resultate an die darauf wartende, aufrufende Stelle zurück. Die Befehle werden nacheinander ausgeführt, es sei denn, der Ablauf wird durch Bedingungen oder Wiederholungen abgewandelt.

Korrekturen, Anregungen, Diskussion

Wörter hier im Text fett und kursiv zu schreiben halte ich für keine gute Idee. Es ist a) unüblich und erschwert b) sogar die Lesbarkeit (zumindest bei mir). Außerdem scheint das Original sogar ohne j e d e Hervorhebung "auszukommen"...

Was m.E. aber a) Sinn machen würde, b) üblich und c) m.E. gut lesbar ist, wäre die bestimmte "Schlüsselwörter", wenn sie das erste mal auftauchen kursiv zu schreiben. (Das ist eine häufig anzutreffende "Konvention" bei gedruckten Texten... ;-)

Ich hab das mal oben gleich so gemacht. --ff

Ich habe nichts gegen diese Änderung. Mein Gedanke bei dieser Hervorhebung war, dem Leser das Rekapitulieren der wesentlichen Begriffe zu erleichtern. -- hl

Ja, klar, die Intention hinter dieser "Formatierungsmaßnahme" war mir schon klar... ;-) - Ich denke die einfache Kursivsetzung ist ein guter Kompromiss zwischen dem, was Du erreichen willst (wolltest) und den oben angemerkten Kriterien. --ff


Top Prev Next
StartSeite | SteveSummit/ | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern
Text dieser Seite ändern (zuletzt geändert: 14. Mai 2002 12:35 (diff))
Suchbegriff: gesucht wird
im Titel
im Text