<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.sarg.dev/index.php?action=history&amp;feed=atom&amp;title=Self-synchronizing_code</id>
	<title>Self-synchronizing code - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.sarg.dev/index.php?action=history&amp;feed=atom&amp;title=Self-synchronizing_code"/>
	<link rel="alternate" type="text/html" href="https://wiki.sarg.dev/index.php?title=Self-synchronizing_code&amp;action=history"/>
	<updated>2026-04-19T19:25:51Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wiki.sarg.dev/index.php?title=Self-synchronizing_code&amp;diff=27756&amp;oldid=prev</id>
		<title>imported&gt;Kvng: avoid unnec redirect</title>
		<link rel="alternate" type="text/html" href="https://wiki.sarg.dev/index.php?title=Self-synchronizing_code&amp;diff=27756&amp;oldid=prev"/>
		<updated>2024-09-16T00:00:22Z</updated>

		<summary type="html">&lt;p&gt;avoid unnec redirect&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Use American English|date=March 2019}}&lt;br /&gt;
{{Short description|Type of code in coding theory}}&lt;br /&gt;
{{Use dmy dates|date=March 2019|cs1-dates=y}}&lt;br /&gt;
{{Use list-defined references|date=August 2023}}&lt;br /&gt;
{{Distinguish|Self-clocking signal|Self-similar process}}&lt;br /&gt;
&lt;br /&gt;
In [[coding theory]], especially in [[telecommunications]], a &amp;#039;&amp;#039;&amp;#039;self-synchronizing code&amp;#039;&amp;#039;&amp;#039; is a [[uniquely decodable code]] in which the [[symbol (data)|symbol]] stream formed by a portion of one [[Code word (communication)|code word]], or by the overlapped portion of any two adjacent code words, is not a valid code word.&amp;lt;ref name=&amp;quot;Glossary&amp;quot;/&amp;gt; Put another way, a set of strings (called &amp;quot;code words&amp;quot;) over an alphabet is called a self-synchronizing code if for each string obtained by concatenating two code words, the substring starting at the second symbol and ending at the second-last symbol does not contain any code word as substring. Every self-synchronizing code is a [[prefix code]], but not all prefix codes are self-synchronizing.&lt;br /&gt;
&lt;br /&gt;
Other terms for self-synchronizing code are &amp;#039;&amp;#039;&amp;#039;synchronized code&amp;#039;&amp;#039;&amp;#039;&amp;lt;ref name=&amp;quot;Brestel-Perrin-Reutenauer_2010&amp;quot;/&amp;gt; or, ambiguously, &amp;#039;&amp;#039;&amp;#039;comma-free code&amp;#039;&amp;#039;&amp;#039;.&amp;lt;ref name=&amp;quot;Brestel-Perrin_1985&amp;quot;/&amp;gt; A self-synchronizing code permits the proper [[frame synchronization|framing]] of transmitted code words provided that no uncorrected errors occur in the [[data stream|symbol stream]]; external [[synchronization]] is not required. Self-synchronizing codes also allow recovery from uncorrected errors in the stream; with most prefix codes, an uncorrected error in a single [[bit]] may propagate errors further in the stream and make the subsequent data [[data corruption|corrupted]].&lt;br /&gt;
&lt;br /&gt;
Importance of self-synchronizing codes is not limited to [[data transmission]]. Self-synchronization also facilitates some cases of [[data recovery]], for example of a [[character encoding|digitally encoded text]].&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
* [[UTF-8]] is self-synchronizing because the leading byte (&amp;lt;code&amp;gt;11xxxxxx&amp;lt;/code&amp;gt;) and subsequent bytes (&amp;lt;code&amp;gt;10xxxxxx&amp;lt;/code&amp;gt;) of a multi-byte code point have different bit patterns.&lt;br /&gt;
* [[High Level Data Link Control]] (HDLC)&lt;br /&gt;
* [[Advanced Data Communication Control Procedures]] (ADCCP)&lt;br /&gt;
* [[Fibonacci coding]]&lt;br /&gt;
&lt;br /&gt;
Counterexamples:&lt;br /&gt;
* The prefix code {00, 11} is not self-synchronizing; while 0, 1, 01 and 10 are not codes, 00 and 11 are.&lt;br /&gt;
* The prefix code {&amp;#039;&amp;#039;ab&amp;#039;&amp;#039;,&amp;#039;&amp;#039;ba&amp;#039;&amp;#039;} is not self-synchronizing because &amp;#039;&amp;#039;abab&amp;#039;&amp;#039; contains &amp;#039;&amp;#039;ba&amp;#039;&amp;#039;.&lt;br /&gt;
* The prefix code &amp;#039;&amp;#039;b&amp;#039;&amp;#039;&amp;lt;sup&amp;gt;∗&amp;lt;/sup&amp;gt;a (using the [[Kleene star]]) is not self-synchronizing (even though any new code word simply starts after &amp;#039;&amp;#039;a&amp;#039;&amp;#039;) because code word &amp;#039;&amp;#039;ba&amp;#039;&amp;#039; contains code word &amp;#039;&amp;#039;a&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Bit slip]]&lt;br /&gt;
* [[Comma code]]&lt;br /&gt;
* [[Consistent overhead byte stuffing]]&lt;br /&gt;
* [[Dynkin sequence]]&lt;br /&gt;
* [[Kraus principle]]&lt;br /&gt;
* [[Kruskal&amp;#039;s principle]]&lt;br /&gt;
* [[Overlapping instructions]]&lt;br /&gt;
* [[Pollard&amp;#039;s lambda method]]&lt;br /&gt;
* [[Self-clocking signal]]&lt;br /&gt;
* [[Self-synchronizing block code]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{Reflist|refs=&lt;br /&gt;
&amp;lt;ref name=&amp;quot;Glossary&amp;quot;&amp;gt;{{Cite web |url=https://glossary.atis.org/glossary/self-synchronizing-code/?char=S&amp;amp;page_number=22&amp;amp;sort=ASC |title=Self-synchronizing code – Glossary}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;Brestel-Perrin_1985&amp;quot;&amp;gt;{{cite book |author-last1=Berstel |author-first1=Jean |author-last2=Perrin |author-first2=Dominique |title=Theory of Codes |publisher=[[Academic Press]] |date=1985 |zbl=0587.68066 |series=Pure and Applied Mathematics |volume=117 |page=377}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;Brestel-Perrin-Reutenauer_2010&amp;quot;&amp;gt;{{cite book |author-last1=Berstel |author-first1=Jean |author-last2=Perrin |author-first2=Dominique |author-last3=Reutenauer |author-first3=Christophe |title=Codes and automata |series=Encyclopedia of Mathematics and its Applications |volume=129 |location=Cambridge, UK |publisher=[[Cambridge University Press]] |date=2010 |isbn=978-0-521-88831-8 |zbl=1187.94001 |page=137}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Further reading ==&lt;br /&gt;
* {{cite book |title=Federal Standard 1037C: Telecommunications: Glossary of Telecommunication Terms |title-link=Federal Standard 1037C |chapter=self-synchronizing code |date=1996-08-06 |publisher=[[General Services Administration]] |chapter-url=https://www.its.bldrdoc.gov/fs-1037/fs-1037c.htm |url-status=dead |archive-url=https://web.archive.org/web/20220122224547/https://www.its.bldrdoc.gov/fs-1037/fs-1037c.htm |archive-date=2022-01-22}}&lt;br /&gt;
* [[MIL-STD-188]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Self-Synchronizing Code}}&lt;br /&gt;
[[Category:Line codes]]&lt;br /&gt;
[[Category:Synchronization]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Kvng</name></author>
	</entry>
</feed>