Steve Summit / Teil7
StartSeite | SteveSummit/ | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern
Top
Prev
Next
Elements of Real Programming Languages
- Elemente realer Programmiersprachen
[32] There are several elements which programming languages, and programs written in them, typically contain. These elements are found in all languages, not just C. If you understand these elements and what they're for, not only will you understand C better, but you'll also find learning other programming languages, and moving between different programming languages, much easier.
- Es gibt eine Anzahl von Elementen, die in Programmen bzw. in Programmiersprachen typischerweise vorkommen. Diese Elemente findet man in jeder Sprache, nicht nur in C. Wenn man mit diesen Elementen und ihre Anwendung vertraut ist, dann versteht man nicht nur C, sondern auch andere Programmiersprachen besser und das Erlernen weiterer Sprachen bzw. das Wechseln zwischen verschiedenen Sprachen wird viel einfacher.
[33] 1. There are variables or objects, in which you can store the pieces of data that a program is working on. Variables are the way we talk about memory locations (data), and are analogous to the "registers" in our pocket calculator example. Variables may be global (that is, accessible anywhere in a program) or local (that is, private to certain parts of a program).
- 1. Es gibt Variablen (oder Objekte), in welche man jene Daten speichern kann, mit denen ein Programm arbeitet. Variablen sind das Mittel der Wahl, mit dem Speicherplätze (Daten) zugänglich gemacht werden. Sie entsprechen den Registern in unserem Taschenrechner-Beispiel. Jede Variable kann entweder global (allen Teile eines Programmes) oder lokal (nur einzelnen Teilen eines Programmes) zugänglich sein.
2. There are expressions, which compute new values from old ones.
- 2. Es gibt Ausdrücke, die zur Berechnung neuer Werte aus vorhandenen Daten dienen.
[34] 3. There are assignments which store values (of expressions, or other variables) into variables. In many languages, assignment is indicated by an equals sign; thus, we might have
b = 3
or
c = d + e + 1
The first sets the variable b to 3; the second sets the variable c to the sum of the variables d plus e plus 1.
- 3. Es gibt Zuweisungen zur Speicherung von Werten (anderer Variablen oder berechneter Ausdrücke) in Variablen. In vielen Sprachen wird die Zuweisung durch ein Gleichheitszeichen symbolisiert, so könnten uns Zuweisungen wie
- b = 3
- oder
- c = d + e + 1
- begegnen. Die erste Zuweisung setzt die Variable b auf den Wert 3; Die zweite Zuweisung setzt die Variable c auf die berechnete Summe der Variablen d und e vermehrt und der Zahl 1.
[35] The use of an equals sign can be mildly confusing at first. In mathematics, an equals sign indicates equality: two things are stated to be inherently equal, for all time. In programming, there's a time element, and a notion of cause-and-effect: after the assignment, the thing on the left-hand side of the assignment statement is equal to what the stuff on the right-hand side was before. To remind yourself of this meaning, you might want to read the equals sign in an assignment as "gets" or "receives": a = 3 means "a gets 3" or "a receives 3."
- Die Verwendung des Gleichheitszeichens kann anfangs leicht verwirren sein. In der Mathematik bedeutet das Gleichheitszeichen die behauptete Identität zweier Ausdrücke unabhängig von der Zeit. Beim Programmieren gibt es den Faktor Zeit und einen Ursache-Wirkung-Zusammenhang: Nach der Zuweisung ist das Objekt links vom Gleichheitszeichen ident mit dem Wert des Ausdrucks auf der rechten Seite im Augenblick vor der Zuweisung. Um sich das zu verdeutlichen sollte man eine Zuweisung a = 3 nicht als "a gleich 3" sondern als "a wird 3 zugewiesen" oder "a erhält den Wert 3" lesen.
[36] (A few programming languages use a left arrow for assignment
a <-- 3
to make the "receives" relation obvious, but this notation is not too popular, if for no other reason than that few character sets have left arrows in them, and the left arrow key on the keyboard usually moves the cursor rather than typing a left arrow.)
- (Einige wenige Programmiersprachen verwenden andere Symbole für die Zuweisung
- a <-- 3
- um den Vorgang der Zuweisung zu verdeutlichen, aber diese Notationen sind nicht sehr populär, vielleicht nur aus dem Grund, weil es kaum Zeichensätze mit Linkspfeilen gibt bzw. weil die Taste mit dem Linkspfeil den Cursor verschiebt und keinen Linkspfeil am Bildschirm erscheinen lässt.)
[37] If assignment seems natural and unconfusing so far, consider the line
i = i + 1
What can this mean? In algebra, we'd subtract i from both sides and end up with
0 = 1
which doesn't make much sense. In programming, however, lines like
i = i + 1
are extremely common, and as long as we remember how assignment works, they're not too hard to understand: the variable i receives (its new value is), as always, what we get when we evaluate the expression on the right-hand side. The expression says to fetch i's (old) value, and add 1 to it, and this new value is what will get stored into i. So i = i + 1 adds 1 to i; we say that it increments i.
(We'll eventually see that, in C, assignments are just another kind of expression.)
- Wenn Zuweisungen zunächst natürlich und klar erscheinen, was kann dann
- i = i + 1
- bedeuten? In der Algebra subtrahieren wir i auf beiden Seiten und kommen mit
- 0 = 1
- zu einem klaren Widerspruch. Beim Programmieren sind jedoch Zuweisungen wie
- i = i + 1
- alltäglich und - wenn man sich die Arbeitsweise einer Zuweisung in Erinnerung ruft - auch nicht allzu schwer zu verstehen: Die Variable i auf der linken Seite bekommt einen neuen Wert, der sich - wie immer - aus der Berechnung des Ausdruckes auf der rechten Seite ergibt. Der Ausdruck holt den aktuellen (alten) Wert von i, addiert 1 dazu und dieser neue Wert kommt in die Variable i. So erhöht "i=i+1" den Wert von i um 1; Wir sagen: i wird "inkrementiert".
- (übrigens wird sich herausstellen, dass in C eine Zuweisung auch zugleich ein Ausdruck ist)
[38] 4. There are conditionals which can be used to determine whether some condition is true, such as whether one number is greater than another. (In some languages, including C, conditionals are actually expressions which compare two values and compute a "true" or "false" value.)
- 4. Es gibt Vergleiche, mit denen man überprüfen kann, ob eine Bedingung erfüllt ist: Etwa ob eine Zahl größer ist als eine andere. (In einigen Sprachen inklusive C sind Vergleiche nichts anderes als Ausdrücke, die zwei Werte vergleichen und als Resultat entweder wahr (true) oder falsch (false) errechnen.
[39] 5. Variables and expressions may have types, indicating the nature of the expected values. For instance, you might declare that one variable is expected to hold a number, and that another is expected to hold a piece of text. In many languages (including C), your declarations of the names of the variables you plan to use and what types you expect them to hold must be explicit.
- 5. Variablen und Ausdrücke besitzen einen Typ (Datentyp), der die Art der zu erwartenden oder zu speichernden Daten angibt. Man könnte beispielsweise deklarieren (festlegen), dass eine Variable eine Zahl speichern soll, während eine andere Variable zur Speicherung eines Textes bestimmt ist. In vielen Sprachen (inklusive C) muss man sogar Name und Typ einer Variablen ausdrücklich deklarieren, bevor man sie verwenden kann.
Korrekturen, Anregungen, Diskussion | |
Wie wäre es mit
In der Mathematik behauptet das Gleichheitszeichen die Identität [...]
statt
In der Mathematik bedeutet das Gleichheitszeichen die behauptete Identität [...]
?
Auch Ursache-Wirkung-Zusammenhang ist mir beim Lesen aufgefallen. Alternativ vielleicht kausaler Zusammenhang?
Top
Prev
Next
StartSeite | SteveSummit/ | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern
Text dieser Seite ändern (zuletzt geändert: 14. Mai 2002 0:53 (diff))