<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Опубликован код первого компилятора для языка Си</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/88968.html</link>
    <description>Открыт доступ (https://github.com/mortdeus/legacy-cc) к исходным текстам первого компилятора для языка Си, написанного Дэнисом Ритчи в 1972 году для платформы PDP-11. Код был обнаружен (http://cm.bell-labs.com/cm/cs/who/dmr/primevalC.html) при разборе архивных магнитных лент в рамках инициированной задолго до смерти Дэниса Ритчи инициативы по поиску и восстановлению первых наработок, связанных с языком Си.  Код компилятора написан на первом диалекте языка Си, который сильно отличается от современного Си и уже не поддерживается ни одним из компиляторов.&lt;br&gt;&lt;br&gt;&lt;br&gt;Работа по выявлению архивного кода проведена энтузиастами нового направления истории - индустриальной палеонтологии, в рамках которого осуществляется анализ истоков развития тех или иных технологий. Первым успехом нового направления было восстановление (http://epublications.bond.edu.au/cgi/viewcontent.cgi?article=1176&amp;context=infotech_pubs)  в 2010 году кода первой редакции  Unix.&lt;br&gt;&lt;br&gt;&lt;br&gt;URL: http://www.theregister.co.uk/2013/03/06/github_ancient_c_repository/&lt;br&gt;</description>

<item>
    <title>Опубликован код первого компилятора для языка Си (pavlinux)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/88968.html#109</link>
    <pubDate>Mon, 11 Mar 2013 23:46:04 GMT</pubDate>
    <description>&amp;gt; Такую вещь как &quot;закон возрастания энтропии&quot; в школе Вы успешно проходили?&lt;br&gt;&lt;br&gt;Флоппик есть адиабатический термопроцесс? :) Бамбук, ты чё, себя курил!? &lt;br&gt;</description>
</item>

<item>
    <title>Опубликован код первого компилятора для языка Си (Michael Shigorin)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/88968.html#108</link>
    <pubDate>Sat, 09 Mar 2013 15:33:07 GMT</pubDate>
    <description>&amp;gt; P.S. Не нашел как форматировать код &lt;br&gt;&lt;br&gt;&#091;&#091;B&#093;&#091;/B&#093;code&#093;...&#091;&#091;B&#093;&#091;/B&#093;/code&#093;&lt;br&gt;</description>
</item>

<item>
    <title>Опубликован код первого компилятора для языка Си (евгений)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/88968.html#107</link>
    <pubDate>Sat, 09 Mar 2013 12:46:33 GMT</pubDate>
    <description>И копирует _из_ s _в_ symbuf (s - источник, symbuf - приемник)&lt;br&gt;</description>
</item>

<item>
    <title>Опубликован код первого компилятора для языка Си (евгений)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/88968.html#106</link>
    <pubDate>Sat, 09 Mar 2013 12:41:20 GMT</pubDate>
    <description>&amp;gt; мне чтото эта строчка мозг взорвала: &lt;br&gt;&amp;gt; i = namsiz; &lt;br&gt;&amp;gt; sp = symbuf; &lt;br&gt;&amp;gt; while(i--) &lt;br&gt;&amp;gt;    if ((*sp++ = *s++)==&apos;&#092;0&apos;) --s; &lt;br&gt;&amp;gt; я так понимаю что тут копируется строка а остальные байты забиваются нулями? &lt;br&gt;&lt;br&gt;Правильно понимаешь, только &quot;нулями&quot; - это не совсем точно. А вот коментарии &quot;просто копирует&quot; неправильные.&lt;br&gt;&lt;br&gt;Цикл while выполняется namesiz раз (скорее всего namsiz это размер области на которую указывает symbuf).&lt;br&gt;sp принимает значения от symbuf до symbuf + namesiz * (размер *sp)&lt;br&gt;s принимает значения от своего начального до адреса первого &apos;&#092;0&apos;,&lt;br&gt;а потом каждый раз увеличивается на размер *s и тут же уменьшается,&lt;br&gt;потому как условие в if выполняется.&lt;br&gt;&lt;br&gt;Ну, и чтоб не быть голословным:&lt;br&gt;&lt;br&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br&gt;&lt;br&gt;void&lt;br&gt;print_array(unsigned int n, char *a)&lt;br&gt;&#123;&lt;br&gt; unsigned int i = 0;&lt;br&gt;&lt;br&gt; printf(&quot;&#037;p:&quot;, a);&lt;br&gt; while(i &amp;lt; n) printf(&quot; 0x&#037;X&quot;, a&#091;i++&#093;);&lt;br&gt; printf(&quot;&#092;n&quot;);&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;int&lt;br&gt;main()&lt;br&gt;&#123;&lt;br&gt; int namsiz,&lt;br&gt;     i;&lt;br&gt;&lt;br&gt; char dst&#091;&#093; = &#123;&apos;A&apos;, &apos;A&apos;, &apos;A&apos;, &apos;A&apos;, &apos;A&apos;, &apos;A&apos;, &apos;&#092;0&apos;&#125;,&lt;br&gt;      src&#091;&#093; = &#123;&apos;B&apos;, &apos;B&apos;, &apos;B&apos;, &apos;&#092;0&apos;, &apos;B&apos;, &apos;B&apos;, &apos;B&apos;&#125;</description>
</item>

<item>
    <title>Опубликован код первого компилятора для языка Си (ZloySergant)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/88968.html#105</link>
    <pubDate>Sat, 09 Mar 2013 09:37:46 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Паша, читай вниметельней. argv, argv&#091;argc&#093; - указатели (pointer).&lt;br&gt;&amp;gt; Я про  ремарку *&#091;10&#093; &lt;br&gt;&amp;gt; А честно говоря, присутствие в стандарте выражений типа &quot;...and so on&quot;, &lt;br&gt;&amp;gt; &quot;...or in some other implementation-de&amp;#64257;ned manner&quot; и порождают подобные темы :) &lt;br&gt;&lt;br&gt;А что про ремарку? То что там написано, что &quot;int argc&quot;  может быть написано как &quot;sometype counter&quot;, при этом sometype должен соответствовать int&apos;у - так ведь правду пишут: хрен его знает, как в какой реализации типы обзовут.&lt;br&gt;UPD: Ну или, на крайний случай, как программизд развлекаться будет.&lt;br&gt;</description>
</item>

<item>
    <title>Опубликован код первого компилятора для языка Си (pavlinux)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/88968.html#104</link>
    <pubDate>Fri, 08 Mar 2013 23:09:47 GMT</pubDate>
    <description>&amp;gt; Паша, читай вниметельней. argv, argv&#091;argc&#093; - указатели (pointer). &lt;br&gt;&lt;br&gt;Пля, мой косяк,... Я почему-то прочитал как &quot;argv is a pointer to pointer&quot;. :-/&lt;br&gt;&lt;br&gt;&amp;gt; НЕ путай указатель и ячейку памяти, на которую он указывает.&lt;br&gt;&lt;br&gt;Я про  ремарку *&#091;10&#093;&lt;br&gt;&lt;br&gt;А честно говоря, присутствие в стандарте выражений типа &quot;...and so on&quot;, &lt;br&gt;&quot;...or in some other implementation-de&amp;#64257;ned manner&quot; и порождают подобные темы :)   &lt;br&gt;</description>
</item>

<item>
    <title>Опубликован код первого компилятора для языка Си (ZloySergant)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/88968.html#103</link>
    <pubDate>Fri, 08 Mar 2013 21:11:03 GMT</pubDate>
    <description>&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;что не так?&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Да не обращай внимания. Ну не понимает человек что такое массив в &lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Си. Либо троллит.&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Ну-кась, расскажи-ка, как argv&#091;&#093; могет быть целым?&lt;br&gt;&amp;gt;&amp;gt; Цит. &quot;argv is a pointer to an array of pointers&quot;.&lt;br&gt;&amp;gt; &amp;#8212; argv&#091;argc&#093; shall be a null pointer.&lt;br&gt;&amp;gt; &amp;#8212; The parameters argc and argv and the strings pointed to by &lt;br&gt;&amp;gt; the argv array shall &lt;br&gt;&lt;br&gt;Паша, читай вниметельней. argv, argv&#091;argc&#093; - указатели (pointer). Конструкт типа char * - _указатель_ на ячейку памяти, содержащую данные типа &quot;char&quot; (а в данном случае, так вообще - указатель на цепочку, точнее, первый элемент, указателей на ячейки, содержащие char). Сам по себе argv (как и любой указатель) - не менее чем int.&lt;br&gt;&lt;br&gt;НЕ путай указатель и ячейку памяти, на которую он указывает.&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Опубликован код первого компилятора для языка Си (pavlinux)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/88968.html#102</link>
    <pubDate>Fri, 08 Mar 2013 18:49:30 GMT</pubDate>
    <description>&amp;gt;&amp;gt;&amp;gt;&amp;gt;что не так?&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Да не обращай внимания. Ну не понимает человек что такое массив в &lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Си. Либо троллит.&lt;br&gt;&amp;gt;&amp;gt; Ну-кась, расскажи-ка, как argv&#091;&#093; могет быть целым?&lt;br&gt;&amp;gt; Цит. &quot;argv is a pointer to an array of pointers&quot;.&lt;br&gt;&lt;br&gt;Ага, щаз...&lt;br&gt;&#091;code&#093;&lt;br&gt;ISO/IEC 9899:201x&lt;br&gt;&lt;br&gt;5.1.2.2.1 Program startup&lt;br&gt;&lt;br&gt;1 The function called at program startup is named main. The implementation declares no&lt;br&gt;prototype for this function. It shall be de&amp;#64257;ned with a return type of int and with no&lt;br&gt;parameters:&lt;br&gt;int main(void) &#123; /* ... */ &#125;&lt;br&gt;or with two parameters (referred to here as argc and argv, though any names may be&lt;br&gt;used, as they are local to the function in which they are declared):&lt;br&gt;int main(int argc, char *argv&#091;&#093;) &#123; /* ... */ &#125;&lt;br&gt;or equivalent &#091;*10&#093; or in some other implementation-de&amp;#64257;ned manner.&lt;br&gt;&lt;br&gt;2 If they are declared, the parameters to the main function shall obey the following&lt;br&gt;constraints:&lt;br&gt;&amp;#8212; The value of argc shall be nonnegative.&lt;br&gt;&amp;#8212; argv&#091;argc&#093; shall be a null pointer.&lt;br&gt;&amp;#8212; If the value of argc is gr</description>
</item>

<item>
    <title>Опубликован код первого компилятора для языка Си (Васька)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/88968.html#101</link>
    <pubDate>Fri, 08 Mar 2013 07:52:24 GMT</pubDate>
    <description>&amp;gt; У меня подозрение, что второй цикл будет бесконечным.&lt;br&gt;&lt;br&gt;Проверь, или подумай об исключениях(если таковые тогда были). И никто не дает гарантии что именно этот код компилировали и использовали.&lt;br&gt;Но после просмотра кода стало понятно - куда тянется мастерство крутых програмеров, сделать код запутанным, даже запутанней чем создатели Си.&lt;br&gt;</description>
</item>

</channel>
</rss>
