<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Trigraph</id>
	<title>Trigraph - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Trigraph"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Trigraph&amp;action=history"/>
	<updated>2026-05-25T19:09:05Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Trigraph&amp;diff=239605&amp;oldid=prev</id>
		<title>imported&gt;Zollernalb am 28. Januar 2025 um 13:47 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Trigraph&amp;diff=239605&amp;oldid=prev"/>
		<updated>2025-01-28T13:47:45Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Ein &amp;#039;&amp;#039;&amp;#039;Trigraph&amp;#039;&amp;#039;&amp;#039; ist ein [[Graph (Linguistik)|Graph]], der aus einer Folge von drei [[Glyphe]]n besteht und in [[Sprachwissenschaft]]en ein [[Phonem]] bzw. in [[Programmiersprache]]n ein anderweitig möglicherweise schwierig eingebbares oder darstellbares Zeichen repräsentiert.&lt;br /&gt;
&lt;br /&gt;
== Sprachwissenschaft ==&lt;br /&gt;
Als Trigraph bezeichnet man in der Sprachwissenschaft eine Kombination aus drei [[Buchstabe]]n, die phonetisch als Einheit behandelt werden und einen einzelnen Laut repräsentieren, wie beispielsweise im [[Deutsche Sprache|Deutschen]] der Trigraph „[[Sch (Trigraph)|sch]]“.&lt;br /&gt;
&lt;br /&gt;
== Programmiersprache C ==&lt;br /&gt;
Die [[C (Programmiersprache)|Programmiersprache&amp;amp;nbsp;C]] verwendet nahezu den kompletten ASCII-Zeichensatz.&amp;lt;ref&amp;gt;{{Literatur |Hrsg=British Standards Institute |Titel=The C Standard – Incorporating TC1 – BS ISO/IEC 9899:1999 |Verlag=John Wiley &amp;amp; Sons |Datum=2003 |ISBN=0-470-84573-2 |Kapitel=5.2.1.1}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Internetquelle |url=https://www.open-std.org/jtc1/sc22/wg14/www/C99RationaleV5.10.pdf |titel=Rationale für C99, Revision 5.10 |format=PDF; 898&amp;amp;nbsp;kB |zugriff=2010-10-17 |sprache=en |kommentar=Abschnitt 5.2.1.1}}&amp;lt;/ref&amp;gt; Das konnte bis in die 1980er Jahre zu folgenden Problemen führen:&lt;br /&gt;
* Manche Zeichen können bei vielen seinerzeit gebräuchlichen nicht-US-amerikanischen Tastaturbelegungen nicht oder nur umständlich über die Tastatur eingegeben werden.&lt;br /&gt;
* In manchen seinerzeit gebräuchlichen Zeichensätzen, zum Beispiel nationale Varianten nach [[ISO 646]], sind diese Zeichen nicht vorhanden, oder sie werden unterschiedlich kodiert (wie in den verschiedenen Varianten von [[Extended Binary Coded Decimal Interchange Code|EBCDIC]]), so dass Interoperabilitätsprobleme beim Dateiaustausch auftreten können.&lt;br /&gt;
&lt;br /&gt;
Darum wurden in C neun Drei-Zeichen-Sequenzen definiert, die als Trigraphen bezeichnet werden. Sie beginnen alle jeweils mit &amp;lt;code&amp;gt;&amp;#039;&amp;#039;&amp;#039;??&amp;#039;&amp;#039;&amp;#039;&amp;lt;/code&amp;gt;, gefolgt von einem weiteren Zeichen:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left:3em&amp;quot;&lt;br /&gt;
|- class=&amp;quot;hintergrundfarbe6&amp;quot;&lt;br /&gt;
! Trigraph !! ersetztes Zeichen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;??=&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;??/&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;\&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;??&amp;#039;&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;^&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;??(&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;??)&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;??!&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;??&amp;lt;&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;??&amp;gt;&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;??-&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die neun Trigraphen werden &amp;#039;&amp;#039;vor&amp;#039;&amp;#039; jedem anderen Verarbeitungsschritt und überall im Programmtext durch die entsprechenden einfachen Zeichen ersetzt – insbesondere auch in Zeichen- und [[Zeichenkette]]n-[[Konstante (Programmierung)|Konstante]]n:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
puts(&amp;quot;Bitte Kennnummer eingeben (im Format ??-???-??)&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Ausgabe ist dann:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bitte Kennnummer eingeben &amp;lt;nowiki&amp;gt;(im Format ~?~]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
wegen der Ersetzungen der Trigraphen &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;??-&amp;lt;/span&amp;gt; und &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;??&amp;lt;nowiki&amp;gt;)&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt; in der Zeichenkette.&lt;br /&gt;
&lt;br /&gt;
Seit Ende der 1980er Jahre besteht keine Notwendigkeit mehr zur Verwendung von Trigraphen in&amp;amp;nbsp;C, da auf Tastaturen heutzutage alle Sonderzeichen vorhanden sind und sich ASCII bzw. [[Unicode]] als Standard etabliert haben.&lt;br /&gt;
&lt;br /&gt;
In der für Ende 2024 zur Veröffentlichung vorgesehenen&amp;lt;ref&amp;gt;{{Internetquelle |url=https://www.iso.org/standard/82075.html |titel=ISO/IEC 9899 |hrsg=[[ISO]] |abruf=2024-10-10}}&amp;lt;/ref&amp;gt;{{Zukunft|2024|12}} Version C23 des Sprachstandards (ISO/IEC 9899:2024)&amp;lt;ref&amp;gt;{{Internetquelle |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf |titel=ISO/IEC 9899:2024 (en) — N3220 working draft — Information technology — Programming languages — C |hrsg=open-std.org | datum=2024 |abruf=2024-10-10}}&amp;lt;/ref&amp;gt; sind Trigraphen nicht mehr gelistet. Somit sind sie seither keine gültigen C-Sprachelemente mehr.&amp;lt;ref&amp;gt;{{Internetquelle |url=https://en.cppreference.com/w/c/language/operator_alternative |titel=C language – Alternative operators and tokens |werk=cppreference.com |abruf=2024-10-10}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Programmiersprache C++ ==&lt;br /&gt;
Die gleichen Trigraphen existierten auch in C++, galten dort aber seit [[C++#C++11|C++11]] als &amp;#039;&amp;#039;veraltet&amp;#039;&amp;#039; und sind mit [[C++#C++17|C++17]] entfernt worden.&amp;lt;ref&amp;gt;[https://en.cppreference.com/w/cpp/language/operator_alternative en.cppreference.com]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aufgrund der schlechten Lesbarkeit im Quellcode und der Problematik, dass sie auch in Kommentaren und Zeichenkettenkonstanten wirksam sind, wurden in C++ sogenannte [[Digraph (Informatik)|Digraphen]] und „alternative Schreibweisen“ (als eigene Schlüsselwörter) für manche Operatoren eingeführt, die ebenfalls die kritischen Zeichen vermeiden. Im Gegensatz zu den Trigraphen haben Digraphen und alternative Schreibweisen nur dort ihre spezielle Bedeutung, wo ein [[Token (Übersetzerbau)|Token]] erwartet wird.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Digraph (Linguistik)]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
{{Wiktionary}}&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:C (Programmiersprache)]]&lt;br /&gt;
[[Kategorie:Sprachwissenschaft]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Zollernalb</name></author>
	</entry>
</feed>