Einführung in die ersten Grundbegriffe der C++-Programmierung. (C++-Spezifikation, die C++-Sprachspezifikation, ISO/IEC 14882:2003(E)), Lektion, Seite 722227
https://www.purl.org/stefan_ram/pub/c++_grundbegriffe (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
C++-Kurs

Erste Grundbegriffe der C++ -Programmierung

Programmiersprachen

Eine Programmiersprache  legt fest, was ein Programm ist (Syntax ) und was es bedeutet (Semantik ).

C++

C++  ist eine Programmiersprache.

Ein C++-Programm  ist ein Text, der gemäß den Regeln der Programmiersprache C++  ein Programm ist. Weil ein C++ -Programm ein Text ist, können C++ -Programme mit allen Programmen bearbeitet werden, welche die Bearbeitung eines Textes erlauben, und als Textdateien gespeichert und be- und verarbeitet werden.

Ausführung von Programmen

Ein Programm auszuführen, bedeutet, das zu tun, was das Programm gemäß den Regeln seiner Programmiersprache verlangt.

Programmieren  ist das Schreiben von Textdateien, die dann einen Computer steuern können.

Implementationen

Eine C++-Implementation  ist etwas, das C++ -Programme gemäß den Regeln der Programmiersprache C++  ausführen kann. Falls es verständlich ist, daß von einer C++ -Implementation gesprochen wird, so kann auch einfach nur die Bezeichnung Implementation  verwendet werden.

Ein C++ -Programm wird von einer C++ -Implementation vor der Ausführung auf Fehler geprüft und für die Ausführung vorbereitet. Dafür zuständig ist ein Programm, welches Compiler  oder Übersetzer  genannt wird.

Die Spezifikation der Sprache C++ 

Die ISO -Norm “ISO/IEC 14882:2017 ” (Abstimmungsergebnis Juli 2017, Veröffentlichung Dezember 2017) ist die maßgebliche Spezifikation (also „Festlegung“, „Bestimmung“) der Programmiersprache C++.

Die Spezifikation  einer Programmiersprache beschreibt die Syntax  und die Semantik  jener Programmiersprache.

Diese Norm kann bei der ISO  und anderen Anbietern erworben werden.

Im Web finden sich Entwürfe auf »isocpp.org«.

Die Bedeutung von Begriffen in Zusammenhang mit der Programmiersprache C++  wird durch die ISO/IEC 14882:2017  festgelegt,

Die C++-Norm ISO/IEC 14882:2017  bezieht sich ausdrücklich auch auf die ISO/IEC 2382  zu Begriffen der Informationstechnologie als „normative Quelle“.

Zitat aus C++14  (gekürzt und überarbeitet)
1.2 Normative references

Die Hauptteile einer ISO-Norm werden Klauseln  genannt. (Das im englischen Original verwendete Wort “clause ” könnte aber auch mit „Bestimmung“, „Absatz“ oder „Paragraph“ übersetzt werden.)

Hier nennen wir alle Unterteilungen, einschließlich der Klauseln, „Abschnitte “. Der oben zitierte Abschnitt ist also der (Unter-)Abschnitt 2 des Abschnitts 1.

Entwürfe

Datum Name revises Ziel oder ähnlich zu

date name revises comments (target, similarity)

2020 (fut.) 14882,6 14882,5 C++20

2020-01-14 n4849 n4842 C++20

2019-11-27 n4842 n4835 C++20

2019-10-08 n4835 n4830 C++20

2019-08-15 n4830 n4820 C++20

2019-06-17 n4820 n4810 C++20

2019-03-15 n4810 n4800 C++20

2019-01-21 n4800 n4791 C++20

2018-12-07 n4791 n4778 C++20, draft now with Ranges

2018-10-08 n4778 n4762 C++20

2018-07-07 n4762 n4750 C++20

2018-05-07 n4750 n4741 C++20

2018-04-02 n4741 n4727 C++20

2018-02-12 n4727 n4713 C++20

2017-11-27 n4713 n4700 C++20

2017-12 14882,5 14882,4 C++17= approved 2017-09-06

2017-10-16 n4700 n4687 C++20

2017-07-30 n4687 n4659 C++20

2017-03-21 n4660 - C++17*

2017-03-21 n4659 n4640 C++17*

2017-02-06 n4640 n4618 C++17

2016-11-28 n4618 n4606 C++17

2016-07-12 n4606 n4594 C++17

2016-07-12 n4604 - C++17

2016-05-30 n4594 n4582 C++17

2016-03-19 n4582 n4567 C++17

2015-11-09 n4567 n4527 C++17

2015-05-22 n4527 n4431 C++17

2015-04-10 n4421 n4296 C++17

2014-12-15 14882,4 C++14= (saw it only in 2015-01!)

2014-11-19 n4296 n4140 C++17

2014-10-07 N4140 N3936 C++14*?

2014-09-02 n4141 - C++14*

2014-03-02 N3936? N3797 C++14

2013-10-13 N3797 N3691 C++14

2013-05-16 N3691 N3485 C++14

2013-05-15 N3690 - C++14

2013 TCPL4 ISBN 0-321-56384-0

2012-11-02 n3485 n3376 C++14

2012-02-28 n3376 n3337 C++14

2012-01-16 n3337 n3291 C++11 github

2011-09 14882,3 C++11=, approved 2011-08-12

2011-04 n3291 N3092? C++11*

2011-04-11 n3290 C++11*

2010-03-26 n3092 C++1x

2008-10-08 n2800 C++1x

2007-10-22 n2461 C++0x

2006-11-06 n2135 C++0x

2005-10-19 n1905 C++0x

2005-04-27 N1804=05-0064 C++0x

2004-11-05 N1733=04-0173 C++0x

2004-05-19? N1655=04-0095 C++0x

2004-04-11 N1638=04-0078 C++0x

2004-02-06? N1577=04-0017 C++0x

2004 2004 Performance TR (ISO/IEC PDTR 18015)

2004 2004 Library extension TR1 (ISO/IEC PDTR 19768)

2003-10-15 14882,2 C++98, 2nd Ed

2000 TCPLS ISBN 0-201-70073-5

1998-09-01 14882,1 C++98, 1st Ed, ANSI approval 1998-07-27

1997 TCPL3 ISBN 0-201-88954-4

1991 TCPL2 ISBN 0-201-53992-6

1991 Cfront 3.0

1990 ARM ISBN 0-201-51459-1

1990 ANSI committee

1989 Cfront 2.0

1987 Cfront 1.2

1987 GNU C++ (first)

1985/6? TCPL1 ISBN 0-201-12078-X

1986 Cfront 1.1

1985 Cfront 1.0

1984 Ref man C with classes

1982 Ref man C with classes

1979 impl1 C with classes

Quellen für aktuelle Entwürfe

isocpp.org/blog/category/standardization

github.com/cplusplus/draft

github.com/cplusplus/draft/raw/master/papers/n4762.pdf

raw.githubusercontent.com/cplusplus/draft/master/papers/n4762.pdf

www.open-std.org/jtc1/sc22/wg??/docs/papers/2018/

wg??.link/standard

wg??.link

Quellen für Stilregeln
The core guidelines

Die Beziehung zur Sprache C 

Die C++-Norm bezieht sich ausdrücklich auch auf die ISO/IEC 9899  zur Programmiersprache C.

Zitat aus C++  (gekürzt und überarbeitet, Stand 2014)
1.2 Normative references
— ISO/IEC 9899:1999, Programming languages — C
— ISO/IEC 2382, Information technology — Vocabulary
The library described in Clause 7 of ISO/IEC 9899:1999 is hereinafter called the C standard library.

Ein Entwurf der C -Norm von 1999 heißt »n1256«, spätere Entwürfe sind »n1570« und »N2176«.

Die Programmiersprache C++  entstand als eine Erweiterung der Programmiersprache C. Deswegen ist es auch heute noch möglich, viele C -Programme auch als C++ -Programme anzusehen. Zusätzlich zu den Sprachelementen der Programmiersprache C  umfaßt C++  unter anderem auch noch

(Die eben genannten Begriffe können an dieser Stelle aber noch nicht erklärt werden.)

Bibliotheken

Eine Sammlung von Programmen (oder von Programmteilen) wird auch Programmbibliothek (kurz: Bibliothek) genannt.

Die Standardbibliothek einer Programmiersprache ist eine Bibliothek, deren Vorhandensein bei Verwendung dieser Programmiersprache immer vorausgesetzt werden kann, sie gehört praktisch zur Programmiersprache.

Eine Zusatzbibliothek ist eine Bibliothek, die unter Umständen zusätzlich bereitgestellt werden kann, aber deren Erhältlichkeit oder Verwendbarkeit nicht immer sichergestellt ist.

Die Ausführungsumgebung

Die Ausführungsumgebung (kurz: Umgebung) eines C++ -Programms ist die C++ -Implementation, unter der es läuft (einschließlich ihres Betriebssystems, anderer installierter Software, der Einstellungen und aller Zustände und Umstände zum Zeitpunkt der Ausführung).

Schritte beim Herstellen eines Programms mit C++ 

C++-Quelltext ist das von einem Programmierer in der Sprache C++  geschriebene Programm.

Der Prozessor in einer C++ -Implementation kann Programme ausführen. Er kann aber nur sogenannte ausführbare Programme  ausführen, keine Quellcode. Daher muß vor der Ausführung aus dem Quellcode ein ausführbares Programm hergestellt werden.

Ein ausführbares C++ -Programm wird in der Regel in mindestens zwei  Schritten hergestellt.

Zunächst einmal wird der Quelltext vom Compiler geprüft und in eine besondere Darstellung, den sogenannten Objektcode, übersetzt. Solch ein Quelltext, der vom Compiler als eine Einheit übersetzt wird, wird auch als eine Übersetzungseinheit  bezeichnet.

Danach wird ein anderes Programm, der Binder, verwendet, um den Objektcode mit den darin verwendeten Teilen von Bibliotheken zu verbinden und aus dieser Verbindung ein ausführbares Programm zu erzeugen, welches dann gestartet werden kann.

Die C++ -Implementation besteht aus allem, was nötig ist, um ein in C++  geschriebenes Programm zu starten. Sie umfaßt daher den Compiler, den Binder, das Betriebssystem und den Prozessor. Schon wenn Einstellung dieser Dinge verändert werden, die sich auf die Ausführung des Programms auswirken könnten (beispielsweise Compileroptionen), so wird dadurch eine andere  C++ -Implementation festgelegt, dies geschieht aber erst recht beim Wechsel des Compilers, Binders, Betriebssystem oder Prozessors.

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram722227 stefan_ram:722227 C++-Spezifikation, die C++-Sprachspezifikation, ISO/IEC 14882:2003(E) Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722227, slrprddef722227, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/c++_grundbegriffe