Einführung in Quelldateien im Rahmen der Lehre der formalen Sprachen. [] (Quelldatei, Quelltext, Quellentext), Lektion, Seite 720785
https://www.purl.org/stefan_ram/pub/formal_formatierung_de (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
C++-Kurs
Java-Kurs

Freie Formatierung von Quelltext

Motivation Kenntnisse über die Formatierung sind beim Schreiben von Programmen nötig, um zu wissen, wann ein Leerraum nötig oder unzulässig ist oder eine neue Zeile begonnen werden kann und wie Programme durch Einrückung übersichtlicher gestaltet werden können. Ohne diese Kenntnisse können praktisch keine Programme geschrieben werden. Am Anfang dieser Lektion werden auch einige Sonderzeichen vorgestellt, deren Kenntnis für die Programmierung ebenfalls nötig ist.

Freie Formatierung

Wenn Zeilenenden keine besondere Bedeutung im Vergleich mit Leerzeichen haben, so spricht man von „freier Formatierung“, da ein Verfasser dann die Freiheiten der Wahl zwischen Zeilenenden und Leerzeichen hat. Diese freie Formatierung ist bei vielen Programmiersprachen üblich und wird im folgenden behandelt.

Texte einer Programmiersprache liegen oft als Datei  vor. Solch eine Datei wird auch als „Quelldatei“  bezeichnet, weil sie die Datenquelle  für weitere Verarbeitungsschritte darstellt. Der in dieser Datei enthaltene Text wird dann aus dem gleichen Grund auch „Quelltext“  genannt. Dateien einer Programmiersprache sind meist Textdateien. Es gibt in Textdateien keine „versteckten“ Informationen. Der gesamte Inhalt ist als Folgen von Zeilen mit sichtbaren Schriftzeichen lesbar und kann mit einem Texteditor  verändert werden.

Schriftzeichen

Die Namen einiger Schriftzeichen (oft in Anlehnung an DIN 66003 oder andere DIN-Normen).

o Kleines O

O Großes O

0 Null (Ziffer)

l Kleines L

1 Eins (Ziffer)

' Apostroph

_ Grundstrich

" Anführungszeichen

/ Schrägstrich

\ inverser Schrägstrich

( runde Klammer auf

) runde Klammer zu

[ eckige Klammer auf

{ geschweifte Klammer auf

< kleiner als (öffnende spitze Klammer)

# Nummernzeichen

* Stern

@ kommerzielles À

/    Texteingabe
Geben Sie den folgenden Text in ein Editorfenster ein: »([{<oO01l'/"\#@*« (16 Zeichen).

Wörter

In den meisten Programmiersprachen ist ein Wort eine Zeichenfolge, die mit einem Buchstaben beginnt, dem weitere Buchstaben oder Ziffern direkt folgen können. Oft darf auch der Grundstrich »_« in einem Wort enthalten sein. Seltener sind manchmal auch noch andere Zeichen erlaubt.

Wörter
Haus
Haus2
Haus_2
Wort (Syntaxdiagramm) ::=

.-------------.
----.--->--| Buchstabe |------.->-.->---------------------.---->
\ '-------------'  / / \
; . ; ;
| .-------------. | \ .-------------. /
'->--| Grundstrich |----' .----| Buchstabe |--<-.
'-------------' | '-------------' |
| |
| .-------------. |
.----| Ziffer |--<-.
| '-------------' |
| |
| .-------------. |
'----| Grundstrich |--<-'
'-------------'

Ein Text ist ein Wort, wenn es einen Weg vom Eingang zum Ausgang des Syntaxdiagramms gibt, welcher der Pfeilrichtung folgt und dabei über Bezeichnungen kommt, welche diesen Text beschreiben. Beispielsweise ist »X7« ein Wort, weil es aus einem Buchstaben und einer Ziffer besteht und es im Syntaxdiagramm einen Weg vom Eingang zum Ausgang gibt, der über „Buchstabe“ und „Ziffer“ (aber über keine anderen Beschreibungen) kommt.

Ein Buchstabe ist eines der Zeichen »A«, »B«, »C«, »D«, »E«, »F«, »G«, »H«, »I«, »J«, »K«, »L«, »M«, »N«, »O«, »P«, »Q«, »R«, »S«, »T«, »U«, »V«, »W«, »X«, »Y«, »Z«, »a«, »b«, »c«, »d«, »e«, »f«, »g«, »h«, »i«, »j«, »k«, »l«, »m«, »n«, »o«, »p«, »q«, »r«, »s«, »t«, »u«, »v«, »w«, »x«, »y« oder »z«. Eine Ziffer ist eines der Zeichen »0«, »1«, »2«, »3«, »4«, »5«, »6«, »7«, »8« oder »9«. Der Grundstrich ist das Zeichen »_«.

/    Wörter
Sind die folgenden sieben Texte jeweils Wörter? »_«, »A«, »a2«, »2A«, »istdieseinwort«, »A_B« und »A\B«.

Wörter in diesem Sinne können aus mehreren Wörtern im Sinne der deutschen  oder englischen  Sprache bestehen. Die Grenzen zwischen solchen inneren Wörtern werden manchmal durch Grundstriche oder Großschreibung gekennzeichnet.

Kamelstil (camel case ) »secondsSinceYesterday«

Pascal-Stil (Pascal case ) »SecondsSinceYesterday«

(Manchmal wird die Bezeichnung “camel case ” auch als Oberbegriff verwendet, der auch Schreibweisen mit einem Großbuchstaben am Anfang enthält. Aber die hier gegebenen Bezeichnungen sind vermutlich die am weitesten verbreiteten.)

C-Stil »seconds_since_yesterday« oder »secondssinceyesterday«

Makro-Stil »SECONDS_SINCE_YESTERDAY« oder »SECONDSSINCEYESTERDAY«

Manchmal werden verschiedene Stile in einem Programm gemischt, um damit jeweils bestimmte Arten von Wörtern zu kennzeichnen.

Leerraum und Zeilenumbruch

In vielen Sprachen mit „freier Formatierung“ ist es erlaubt, an vielen Stellen in einem Text, an denen ein Leerzeichen  stehen kann, auch eine neue Zeile  zu beginnen. So kann der Text »Haus Hof« dann auch oft auf zwei Zeilen aufgeteilt werden, ohne daß dies die Bedeutung eines Quelltextes ändert. Diese Regel wird ja auch bei normalem deutschen Text, z.B. in einem Brief, Buch oder einer Zeitung, verwendet: An einem Wortzwischenraum kann eine neue Zeile begonnen werden, ohne daß dies an der Bedeutung des Textes etwas ändert (anders ist es bei Gedichten).

Schreibung in einer Zeile
Haus Hof
Aufteilung auf zwei Zeilen
Haus
Hof

Weil man ein  Leerzeichen normalerweise nicht immer sicher von zwei aufeinanderfolgenden Leerzeichen  unterscheiden kann, wird zwischen einem Leerzeichen und einer Folge von mehreren Leerzeichen oft nicht unterschieden, so daß man also immer auch zwei  Leerzeichen an eine Stelle setzen kann, an der ein  Leerzeichen steht, ohne daß dies normalerweise an der darzustellenden Information etwas ändert. (Hiervon gibt es Ausnahmen.)

Ein oder zwei Leerzeichen?
Haus Hof

Haus  Hof

Ein oder mehrere Leerzeichen oder Zeilentrennungen oder Kombinationen davon sind also gleichwertig und werden als „Leerraum“  bezeichnet.

Leerraum (Syntaxdiagramm) ::=

.--------------------------------------<-.
/ \
; ;
\ .-------------. /
--------------->----.----->| Leerzeichen |------.->----'------------>
\ '-------------'  /
; .
| .-------------. |
'--->| Zeilenende |----'
'-------------'

Es gibt aber auch Kontexte, in denen in einem Text ein Zeilenende oder Leerzeichen wörtlich  zu verstehen ist, also für sich selbst steht und nicht nur eine Form von Leerraum darstellt. Für eine spezielle Programmiersprache ist jeweils genau festgelegt, wann solch ein Kontext gegeben ist.

Einrückung

Gemäß der genannten Regeln ändern Leerzeichen am Anfang einer Zeile  die Bedeutung eines Quelltexts nicht. Deswegen werden sie oft zur übersichtlichen „Einrückung“ von Zeilen eingesetzt, indem hierarchisch untergeordneten Zeilen mehr Leerraum vorangestellt wird.

Eine Zeile gilt „eingerückt“, wenn sie mit einem Leerzeichen beginnt. Die Anzahl der Leerzeichen am Anfang einer Zeile, geben das Maß (die „Tiefe“) der Einrückung an.

Einrücken einer Zeile
Links ausgerichtete Zeile
um zwei Positionen eingerückte Zeile
um vier Positionen eingerückte Zeile

Einrückung und Klammern

Häufig wird beim Öffnen eines Klammerpaares, welches sich über mehrere Zeilen erstreckt, bis zum Ende des Klammerpaars eingerückt.

Einrückung in Klammern

0123456789
| |
v v Alpha beta gamma
Delta epsilon { Zeta eta theta iota
Kappa lambda my ny xi
Omikron Pi rho sigma tau } { Ypsilon phi chi psi
Omega alpha beta
Gamma delta epsilon } Zeta eta theta iota
Kappa lambda my ny xi

Die drei in den beiden geschweiften Klammern enthaltenen Zeilen beginnen bei Position 2, die anderen ganz links bei Position 0.

So kann der Anfang und das Ende des eingeklammerten Bereichs auf einen Blick erfaßt werden.

Die Details der Einrückung können von dem obigen Beispiel abweichen, beispielsweise indem manchmal um vier Positionen eingerückt wird oder die geschweiften Klammern manchmal genau untereinander angeordnet werden.

Auch ein deutschen oder englischen Texten, werden untergeordnete Textstellen ja oft eingerückt:

Einrückung in deutschen Texten

Alpha beta gamma
Delta epsilon o Zeta eta theta iota
Kappa lambda my ny xi
Omikron Pi rho sigma tau o Ypsilon phi chi psi
Omega alpha beta
Gamma delta epsilon Zeta eta theta iota
Kappa lambda my ny xi

Lexikalische Einheiten

Wir sehen es als selbstverständlich an, daß in ein Wort kein Leerzeichen eingefügt werden darf.

Ein Wort mit Binnenleerzeichen ?
Tis ch

Auch in den meisten Programmiersprachen gilt diese Regel.

Auch in eine Zahl darf normalerweise kein Leerzeichen eingefügt werden.

In manchen Programmiersprachen setzt man bestimmte sogenannte „grammatische Symbole“  aus mehreren Zeichen zusammen, die dann als eine Einheit, wie beispielsweise das grammatische Symbol »/*«, eine besondere Rolle spielen. Solch eine Zeichenfolge, die eigentlich „ein“  Symbol darstellen soll, aber mit mehreren Zeichen geschrieben wird, nennt man eine „lexikalische Einheit“  (engl.: “token ”). Ein lexikalische Einheit entspricht in etwa einem Wort einer natürlichen Sprache. So, wie in Wörter kein Leerzeichen eingefügt werden darf, darf man auch in solche lexikalischen Einheiten kein Leerzeichen einfügen.

Eine lexikalische Einheit ist

Trennung lexikalischer Einheiten

Da in vielen Sprachen Wörter auch Ziffern enthalten können, muß ein Wort beispielsweise von einer nachfolgenden Ziffer oder von einem nachfolgenden Buchstaben mit Leerraum getrennt werden, weil die Ziffer bzw. der Buchstabe sonst noch zu dem Wort gezählt werden würde.

Beendigung des Wortes »Haus«
Haus 2
Haus Hof
Haus Hof

Wenn zwei Teile eines Textes aneinandertreffen, die nach den Regeln der Programmiersprache sowieso auseinandergehalten werden können, wie beispielsweise ein Wort und ein Semikolon, dann kann  Leerraum dazwischen eingefügt werden, er muß aber nicht eingefügt werden. Da ein Semikolon (in vielen Programmiersprachen) nicht Bestandteil eines Wortes sein kann, ist es nicht nötig, noch ein Leerzeichen zur Abtrennung einzufügen, wenn ein Semikolon einem Wort folgt.

Beendigung des Wortes »Haus« (1)
Haus;
Haus ;

Wörter, Zahlen und bestimmte andere Symbole einer formalen Sprache sind lexikalische Einheiten. Zwischen zwei lexikalischen Einheiten muß  Leerraum eingefügt werden, wenn  dies nötig ist, um ein Wort oder eine Zahl zu beenden (z.B. von einem direkt folgenden Wort oder einer direkt folgenden Zahl zu trennen) oder die beabsichtigte Aufteilung in lexikalische Einheiten klarzustellen. Ansonsten „kann“  zwischen lexikalischen Einheiten Leerraum eingefügt werden.

In dem folgenden Beispiel ist der Leerraum beispielsweise nicht zwingend notwendig, da alle lexikalischen Einheiten auch ohne Leerraum getrennt werden können.

optionaler Leeraum zwischen lexikalischen Einheiten
(num+12)/*
( num + 12 ) /*
/    Lexikalische Einheiten abzählen
Wie viele lexikalische Einheiten finden sich in dem Text »(num+12)/*«?

In dem folgenden Beispiel ist der Leerraum nach dem Wort »return« notwendig, weil sonst das Wort »return22« entstehen würde und die Zahl »22« nicht mehr als Zahl gelten würde, die dem Wort »return« folgt.

obligatorischer Leeraum zwischen lexikalischen Einheiten
return 22
/    Lexikalische Einheiten abzählen (1)
Wie viele lexikalische Einheiten finden sich in dem Text »return22«?

Schlüsselwörter und Namen

Ein Wort in einem Programm ist in der Regel entweder ein Schlüsselwort oder ein Name.

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. L'autore di questo testo è Stefan Ram. Tutti i diritti riservati. Questo sito è pubblicato da Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram720785 stefan_ram:720785 Quelldatei, Quelltext, Quellentext kostenlos, kostenlose, kostenloses, kosten los, kosten lose, kosten loses, gratis, free, frei, freie, freies, privat, private, privates, homepage, home-page, home page, website, web site, webpage, web-page, web page, webpages, web-pages, web pages, webseite, Web-Seite, Webseite, Webseiten, Web-Artikel, Web Artikel, online, on-line, on line, download downloaden, down load, or, deutsch, deutsche, deutsches, deutscher, Deutschland, deutschsprachig, deutschsprachige, deutschsprachiges, german, germany, and, uebersicht, Uerbersicht, uebersichten, Uebersichten, Übersicht, übersicht, Übersichten, übersichten, Uebersicht, uebersicht, Uebersichten, uebersichten, Info, Infos zu, Information über, ueber, Informationen über, Auskunft, Auskünfte, Auskuenfte, Dienst, PbclevtugFgrsnaEnz, Angebot, Angebote, Anbieter, server, für, fuer, in, an, keyword, keywords, key word, keywords, internet, internets, net, network, net work, networks, net works, web, www, world wide web, Theorie, Praxis, Anwendung, DV, IT, glossar, fachwörterbuch it-glossar, computer lexikon, Computerlexikon, Computer-Lexikon, Lexikon, computer lexicon, Computerlexicon, Computer-Lexicon, Lexicon, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 was ist ein, was ist das, was sind, definiere, definition, define, Inhalt, html, xhtml, free im netz, PDF Text, digital, digitale, binär, binäre, elektronisch, elektronische, fachbegriff, fachbegriffe, konzept, Begriff, allgemein, allgemeine, allgemeines, Technik, Datentechnik, Digitaltechnik, Binätechnik, online lesen; , Einführung, Einfuehrung, Einführungen, Einfuehrungen, eLearning-Modul, e-Learning-Modul, eLearning-Module, e-Learning-Module, Kurs Berlin, Kurse Berlin, Kursus, Vortrag, Vorträge, Vortraege, Lehrgang, Lehrgänge, Lehrgaenge, kostenloses Lehrmaterial, kostenlose Lehrmaterialien, Vorlesung, Vorlesungen, Unterrichtseinheit, Unterrichtseinheiten, kostenloses Unterrichtsmaterial im Internet, kostenlose Unterrichtsmaterialien im Internet, Ausbildung, Ausbildungen, für die Ausbildung, Fortbildung, Fortbildungen, Weiterbildung, Weiterbildungen, Schulung Berlin, Schulungen Berlin, Internetschulung, Webschulung, Kursunterlage, Kursunterlagen, trainer Berlin, Didaktik, Informatikunterricht, Primer, Skript FH, Skripte FH, Skriptum FH, Skripts FH, Script FH, Scripte FH, Scriptum FH, Scripts FH, howto, how-to, how to, Lehrbuch, Buch, Bücher, Buecher, Bericht, Crash Kurs Berlin, Crash-Kurs Berlin, Crashkurs Berlin, Report, Sachtext, Sachtexte, Übung, Übungen, Uebung, Uebungen, course, PbclevtugFgrsnaEnz, lecture note, lecture notes, Tutorial, Tutor, Tutorium, Teacher, Lehrer Berlin, Trainer Berlin, Beratung Berlin, Anleitung zum, Anleitungen zum, Einführung, Einfuehrung, Einführungen, Einfuehrungen, Handbuch für, Handbücher, Handbuecher, Support, Diplomarbeit, Facharbeit, Hausarbeit, Hausarbeiten, Werk, Werke, Text, Übungsblatt, Uebungsblatt, Lösung, Loesung, Lösungen, Loesungen, Auflösung, Aufloesung, Auflösungen, Aufloesungen, Facharbeit, Facharbeiten, Forum, Training, manual, Folie, Folien, Lehrmittel, beratung, Definition von, Allgemeine Erklärung, Allgemeine Erklaerung, Allgemeine Erklärungen, Allgemeine Erklaerung, Allgemeine Erklaerungen, Einfache Erklärung einfach, Einfache Erklaerung einfach, Einfache Erklärungen, Einfache Erklaerung, Einfache Erklaerungen, zum Thema, FAQ, FAQs, Konzept, Lernkurs, Lern-Kurs, Lernkurse, Lern-Kurse, eine kurze Erklärung, Begriff, Begriffe, Erklärung zu Begriffen, begriffbestimmung, begriffbestimmung, Begriffsbestimmung, Begriffserklärung, Begriffserklaerung, Wort, Worterklärung, Worterklaerung, Definition, Beispiel, Beispiele, Bedeutung, Bedeutungen, was bedeutet, Begriffsdefinition, für Anfänger, fuer Anfaenger, für Einsteiger, für Beginner, zum selber Lernen, handout, hand out, web based training, WBT, Net Based Training, NBT, computer based training, CBT, virtual learning environment, virtual university, für die Schule, Seminar, Seminare, Vorgehensweise, Pädagogik, Paedagogik, Akademie, Onlineacademie, Onlineakademie, Wissen, Unterrichtsvorbereitung für das Fach, Unterricht, für Lehrer, für Lehrerinnen, Referat, Referate, Hausaufgabe, Hausaufgaben, Tip, Tipp. Tipps und Tricks, Tips und Tricks, Methode, Methoden, Methodik, Funktion, Funktionsweise, Aufbau, Prinzip, Grundlage, Grundlagen, Internetschulung, Unterlage, Unterlagen, Struktur, Frage, Fragen, Antwort, Antworten, Schulunterricht, zum erlernen, was ist das?, wie?, lerne, Onlineausbildung, Onlinelehrgang, Onlinekurs, Onlinebuch, Webbuch, Academy, Fachhochschule, FH, TFH, Hochschule, Universität, Universitaet, Uni, Schule, Berufsschule, Gymnasium, Erste Schritte mit, Dozent, Dozenten, Zusammenfassung, Übersicht, Term, Fachwort, Fachbegriff, Fachbegriffe, Grundbegriff, Grundbegriffe, Lektion, Lektionen, Bedienungsanleitung, Bedienungsanleitungen, Spezialist, Spezialisten, Coaching, Coach, Fachbuch, technologie, Unterschied zwischen, Unterschiede zwischen, lehren, unterrichten, für das Studium, für Studenten, für Studentinnen, für Studierende, für Schüler, für Schülerinnen, Wie kann ich, Wie kann man, Hilfe, selber, erstellen, Erstellung, Beginner, Online-Seminar, Online-Kurs, Online-Schulung, ich, gebrauchsanweisung, gebrauchsanleitung, Bedienungsanweisung, Einweisung, Kurzinfo, Internet-Kurs, Internet-Kurse, Online-Training, Intensiv, Intensivkurs, Vortragsreihe, Präsentation, Grundzüge, Mitschrift, Mitschriften, Verständnis, verstehen, anwenden, Hintergrundwissen, Hintergrund, Hintergründe, content, Funktionsprinzip, Schritt für Schritt; E-Learning; elearning; online learning; Fernlehre, Fernlehrgang, Fernlehrgänge, Referent, Referenten, Fernkurs, Fernkurse, Fernstudium, Fernschule, Fernuniversität, Fernlehrer, Denken, Qualifizierungsmaßnahme, Qualifizierung, Qualifizierungen, Volkshochschulkurs, Volkshochschulkurse, Internet-Learning-Plattform, Online-Learning-Plattform, E-Learning-Plattform, Internetlearning-Plattform, Onlinelearning-Plattform, Elearning-Plattform, jetzt, Kochbuch, einfach erklärt, Kenntnis, Kenntniss, Kenntnisse, deutsche Hilfe, lernen und verstehen; blended learning; courseware, Profi, Profis, professionell, professionelle, professionelles, profesionell, profesionelle, profesionelles, professionel, gekonnt, für Könner, Grundkurs, Leistungskurs, Aufbaukurs, Lehrtext, Lehrtexte, Fachtext, Fachtexte, Ausarbeitung, distance learning, Online Seminar, distance education, Online Tutorium, Online Tutorien, technology-based learning, Computer based learning, CBL, Internet Based learning, IBL, Web based learning, WBL, online-learning, OL, online-training, OT, CAI, Computer Assisted Instruction, CUU, Computerunterstützter Unterricht, Computer-unterstützter Unterricht, Know how, Grundkenntnis, Grundkenntnisse, Kompetenz, Schulungsunterlagen, Insiderwissen, Rat, Lehrerinnen und Lehrer, ABC, Überblick, Arbeitsblatt, Sekundarstufe, Oberstufe, Material, Materialien, Unterrichtsentwurf, Unterrichtsentwürfe, Lerntip, Lerntips, Lerntipp, Lerntipps, ebook, schnell lernen, Lerner, Lernender, Lernende Erwachsenenbildung, Frage und Antwort, Selbststudium, Selbstudium, Umschulung, , source, source code, source file, Formatierung, Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd720785, slrprddef720785, 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/formal_formatierung_de