URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 88968
[ Назад ]

Исходное сообщение
"Опубликован код первого компилятора для языка Си"

Отправлено opennews , 06-Мрт-13 14:17 
Открыт доступ (https://github.com/mortdeus/legacy-cc) к исходным текстам первого компилятора для языка Си, написанного Дэнисом Ритчи в 1972 году для платформы PDP-11. Код был обнаружен (http://cm.bell-labs.com/cm/cs/who/dmr/primevalC.html) при разборе архивных магнитных лент в рамках инициированной задолго до смерти Дэниса Ритчи инициативы по поиску и восстановлению первых наработок, связанных с языком Си.  Код компилятора написан на первом диалекте языка Си, который сильно отличается от современного Си и уже не поддерживается ни одним из компиляторов.


Работа по выявлению архивного кода проведена энтузиастами нового направления истории - индустриальной палеонтологии, в рамках которого осуществляется анализ истоков развития тех или иных технологий. Первым успехом нового направления было восстановление (http://epublications.bond.edu.au/cgi/viewcontent.cgi?article...)  в 2010 году кода первой редакции  Unix.


URL: http://www.theregister.co.uk/2013/03/06/github_ancient_c_rep.../
Новость: http://www.opennet.me/opennews/art.shtml?num=36312


Содержание

Сообщения в этом обсуждении
"Опубликован код первого компилятора для языка Си"
Отправлено Аноним , 06-Мрт-13 14:17 
Ждем исходников первой виндуз!

"Опубликован код первого компилятора для языка Си"
Отправлено Anonimaus , 06-Мрт-13 14:21 
reactos не?

"Опубликован код первого компилятора для языка Си"
Отправлено Аноним , 06-Мрт-13 14:52 
Reactos — клон NT, о невежественный. Windows 1.0 же — досовское приложение.

"Опубликован код первого компилятора для языка Си"
Отправлено Anonimaus , 07-Мрт-13 09:28 
какая разница??? что одно, что другое уже НЕ нужно.

"Опубликован код первого компилятора для языка Си"
Отправлено Capone , 06-Мрт-13 14:54 
Не уверен не подрезай, т.е. не говори. Первая винда вынырнула в октябре(или ноябре не помню точно) 1985 года, хотя по планам должна была выйти еще летом того же года. До реактОС оставалось еще дофига времени.

"Опубликован код первого компилятора для языка Си"
Отправлено Vaso Petrovich , 06-Мрт-13 16:44 
И к чему это сказано?

"Опубликован код первого компилятора для языка Си"
Отправлено FractalizeR , 06-Мрт-13 23:56 
Это вы о чем?

"Опубликован код первого компилятора для языка Си"
Отправлено Max , 06-Мрт-13 14:29 
Ради смеха что ли?

"Опубликован код первого компилятора для языка Си"
Отправлено Какаянахренразница , 06-Мрт-13 18:36 
Наоборот, люди хотят ужастиков.

"Опубликован код первого компилятора для языка Си"
Отправлено dq0s4y71 , 06-Мрт-13 15:35 
Это DOS Shell что ли? Так он валяется где-то на торрентах вместе с исходниками MS-DOS.

"Опубликован код первого компилятора для языка Си"
Отправлено verus , 06-Мрт-13 16:16 
В том-то и дело, что на торрентах.

"Опубликован код первого компилятора для языка Си"
Отправлено dq0s4y71 , 06-Мрт-13 16:22 
Да они только "на посмотреть", больше ни для чего и не нужны.

"Опубликован код первого компилятора для языка Си"
Отправлено verus , 06-Мрт-13 20:48 
В том-то и дело, что официально смотреть-то  нельзя (уж простите за тавтологию).

"Опубликован код первого компилятора для языка Си"
Отправлено Аноним , 06-Мрт-13 15:08 
Just for fun можно попробовать даже скомпилировать его в Unix v7 через SIMH. Это, пожалуй, будет покруче "пропатчить KDE2 на FreeBSD". :)

"Опубликован код первого компилятора для языка Си"
Отправлено Аноним , 06-Мрт-13 15:12 
мне чтото эта строчка мозг взорвала:
i = namsiz;
sp = symbuf;
while(i--)
   if ((*sp++ = *s++)=='\0') --s;

я так понимаю что тут копируется строка а остальные байты забиваются нулями?


"Опубликован код первого компилятора для языка Си"
Отправлено Аноним , 06-Мрт-13 15:20 
просто копируется до 0

"Опубликован код первого компилятора для языка Си"
Отправлено Аноним , 06-Мрт-13 15:26 
Скопировать namsiz элементов symbuf в s, пропуская нуль-символы.

"Опубликован код первого компилятора для языка Си"
Отправлено Аноним , 06-Мрт-13 15:29 
> Скопировать namsiz элементов symbuf в s, пропуская нуль-символы.

Хотя, нет, я ошибся. Ваше предположение верно.


"Опубликован код первого компилятора для языка Си"
Отправлено noize , 06-Мрт-13 17:05 
вы почитайте K&R, там подобного добра навалом

"Опубликован код первого компилятора для языка Си"
Отправлено Аноним , 06-Мрт-13 19:36 
Самая стандартнейшая из Сишных идиом жеп

"Опубликован код первого компилятора для языка Си"
Отправлено Andrey Mitrofanov , 06-Мрт-13 21:21 
> Самая стандартнейшая из Сишных идиом же

Так :/ "стандартнее":

while(i--)if(*sp++ = *s)s++;


"Опубликован код первого компилятора для языка Си"
Отправлено Тузя , 07-Мрт-13 07:56 
Имхо нет.
1) 0 и '\0', строго говоря, это не одно и то же;
2) Зачем вы делаете s++, уж тогда лучше ++s;
3) Имо, оригинальный пример проще читался, так как сдвиг указателей происходил в обеих строках одновременно и _после_ операции сравнения.

"Опубликован код первого компилятора для языка Си"
Отправлено анон , 07-Мрт-13 14:15 
1. с чего это не одно и тоже?
2. чем лучше? значение инкремента прям тут же не используется.

"Опубликован код первого компилятора для языка Си"
Отправлено Andrey Mitrofanov , 07-Мрт-13 15:52 
> 1. с чего это не одно и тоже?

В отсутствие знакового расширения [в рассматриваемом случае программ-археологии] в старшем (?)байте может оказаться [ненулевой] мусор.

> 2. чем лучше? значение инкремента прям тут же не используется.

Предпочтение же, чего не понятно, утёнок и проч.


"Опубликован код первого компилятора для языка Си"
Отправлено x0r , 07-Мрт-13 12:25 
убивать их за такое - ничерта не понятно и неоптимально

size = nameSize;
outStr = symbolBuffer;
while(size-- && *inStr++ != '\0')
     *outStr++ = *inStr++;
while(size--)
   *outStr++ = '\0';


"Опубликован код первого компилятора для языка Си"
Отправлено анон , 07-Мрт-13 14:16 
вот уж точно неоптимально

"Опубликован код первого компилятора для языка Си"
Отправлено анон , 07-Мрт-13 15:44 
новое поколение знает как программировать лучше создателей языка. Как известный факт: на конкурсе походок а-ля Чарли Чаплин выйграл не Чаплин, а кто-то другой..

"Опубликован код первого компилятора для языка Си"
Отправлено Andrey Mitrofanov , 07-Мрт-13 15:54 
> новое поколение знает как программировать лучше создателей языка.

Нет-нет, послушайте! Человек же в курсе самых трендОвых оптимизаций для PDP-11.</:>


"Опубликован код первого компилятора для языка Си"
Отправлено Аноним , 07-Мрт-13 17:49 
У меня подозрение, что второй цикл будет бесконечным.

"Опубликован код первого компилятора для языка Си"
Отправлено Andrey Mitrofanov , 07-Мрт-13 18:48 
> У меня подозрение, что второй цикл будет бесконечным.

s/будет/может быть/
Глазастый, молодец! А не "не оптимальненько".


"Опубликован код первого компилятора для языка Си"
Отправлено Васька , 08-Мрт-13 11:52 
> У меня подозрение, что второй цикл будет бесконечным.

Проверь, или подумай об исключениях(если таковые тогда были). И никто не дает гарантии что именно этот код компилировали и использовали.
Но после просмотра кода стало понятно - куда тянется мастерство крутых програмеров, сделать код запутанным, даже запутанней чем создатели Си.


"Опубликован код первого компилятора для языка Си"
Отправлено евгений , 09-Мрт-13 16:41 
> мне чтото эта строчка мозг взорвала:
> i = namsiz;
> sp = symbuf;
> while(i--)
>    if ((*sp++ = *s++)=='\0') --s;
> я так понимаю что тут копируется строка а остальные байты забиваются нулями?

Правильно понимаешь, только "нулями" - это не совсем точно. А вот коментарии "просто копирует" неправильные.

Цикл while выполняется namesiz раз (скорее всего namsiz это размер области на которую указывает symbuf).
sp принимает значения от symbuf до symbuf + namesiz * (размер *sp)
s принимает значения от своего начального до адреса первого '\0',
а потом каждый раз увеличивается на размер *s и тут же уменьшается,
потому как условие в if выполняется.

Ну, и чтоб не быть голословным:

#include <stdio.h>

void
print_array(unsigned int n, char *a)
{
unsigned int i = 0;

printf("%p:", a);
while(i < n) printf(" 0x%X", a[i++]);
printf("\n");
}

int
main()
{
int namsiz,
     i;

char dst[] = {'A', 'A', 'A', 'A', 'A', 'A', '\0'},
      src[] = {'B', 'B', 'B', '\0', 'B', 'B', 'B'};

char *symbuf = dst,
      *sp,
      *s = src;

namsiz = sizeof(dst);

i = namsiz;
sp = symbuf;

printf("dst: ");
print_array(namsiz, dst);
printf("src: ");
print_array(namsiz, src);

while(i--)
   if ((*sp++ = *s++)=='\0') --s;

printf("dst: ");
print_array(namsiz, dst);
printf("src: ");
print_array(namsiz, src);

return 0;
}

P.S. Не нашел как форматировать код


"Опубликован код первого компилятора для языка Си"
Отправлено евгений , 09-Мрт-13 16:46 
И копирует _из_ s _в_ symbuf (s - источник, symbuf - приемник)

"Опубликован код первого компилятора для языка Си"
Отправлено Michael Shigorin , 09-Мрт-13 19:33 
> P.S. Не нашел как форматировать код

[code]...[/code]


"Опубликован код первого компилятора для языка Си"
Отправлено Аноним , 06-Мрт-13 15:42 
main(argc, argv)
int argv[];

Объясните дебилу, пожалуйста, как argv может быть int?


"Опубликован код первого компилятора для языка Си"
Отправлено Аноним , 06-Мрт-13 15:47 
Указатель это число, ага



"Опубликован код первого компилятора для языка Си"
Отправлено iZEN , 06-Мрт-13 15:50 
> Указатель это число, ага

http://rewalls.com/pic/201111/1920x1080/reWalls.com-54928.jpg


"Опубликован код первого компилятора для языка Си"
Отправлено Аноним , 06-Мрт-13 17:13 
что не так?

"Опубликован код первого компилятора для языка Си"
Отправлено ZloySergant , 06-Мрт-13 17:29 
>что не так?

Да не обращай внимания. Ну не понимает человек что такое массив в Си. Либо троллит.


"Опубликован код первого компилятора для языка Си"
Отправлено pavlinux , 06-Мрт-13 22:37 
>>что не так?
> Да не обращай внимания. Ну не понимает человек что такое массив в
> Си. Либо троллит.

Ну-кась, расскажи-ка, как argv[] могет быть целым?


"Опубликован код первого компилятора для языка Си"
Отправлено Andrey Mitrofanov , 06-Мрт-13 22:42 
>>>что не так?
>> Да не обращай внимания. Ну не понимает человек что такое массив в
>> Си. Либо троллит.
> Ну-кась, расскажи-ка, как argv[] могет быть целым?

int того же размера, что и char *. И отсутствие целых _других размеров_. Может, и unsigned int _тоже не было. Иди даже _полное отсутствие 'char *', а то и самоё char.

printf("avgv0=%s\n",argv[0]);

+++Впрочем, printf и '\n' тоже не.


"Опубликован код первого компилятора для языка Си"
Отправлено pavlinux , 07-Мрт-13 03:23 
>>>>что не так?
>>> Да не обращай внимания. Ну не понимает человек что такое массив в
>>> Си. Либо троллит.
>> Ну-кась, расскажи-ка, как argv[] могет быть целым?
> int того же размера, что и char *. И отсутствие целых _других размеров_.
> Может, и unsigned int _тоже не было. Иди даже _полное отсутствие 'char *',
> а то и самоё char.  printf("avgv0=%s\n",argv[0]);  +++Впрочем, printf и '\n' тоже не.

1. char и int - одна х..я. Поэтому пофигу, что int array[], что char array[];
2. sizeof(char *) != sizeof(int)

Ессесенно, программер будет ССЗБ, если всунет в массив целых, число 123456789 и
будет юзать его как char;

  


"Опубликован код первого компилятора для языка Си"
Отправлено цирроз , 07-Мрт-13 11:39 
>1. char и int - одна х..я.

я понял, что ты хотел написать, но те, кто совсем не в курсе - совсем уж не поймут ;) если попытаемся записать на место char данные int получаем переполнение - нечаянно переписываем рядом стоящие переменные в памяти. ясно что манипулировать областями данных можно до посинения


"Опубликован код первого компилятора для языка Си"
Отправлено iZEN , 07-Мрт-13 14:06 
>>>>>что не так?
>>>> Да не обращай внимания. Ну не понимает человек что такое массив в
>>>> Си. Либо троллит.
>>> Ну-кась, расскажи-ка, как argv[] могет быть целым?
>> int того же размера, что и char *. И отсутствие целых _других размеров_.
>> Может, и unsigned int _тоже не было. Иди даже _полное отсутствие 'char *',
>> а то и самоё char.  printf("avgv0=%s\n",argv[0]);  +++Впрочем, printf и '\n' тоже не.
> 1. char и int - одна х..я. Поэтому пофигу, что int array[],
> что char array[];
> 2. sizeof(char *) != sizeof(int)

Ну точно как в бейсике — смешение типов данных. Если нет разницы в размерах, то считаем всё одним невнятным типом, такие данные можно присваивать друг другу, не опасаясь ругани компилятора. Можно байт читать как число, а можно как ASCII-символ. :))



"Опубликован код первого компилятора для языка Си"
Отправлено Andrey Mitrofanov , 07-Мрт-13 15:59 
>пофигу, что int array[], что char array[];

Началось-то с 'int' против [модернового] 'char *'.

int main(int argc, char *argv[])

> 2. sizeof(char *) != sizeof(int)

На PDP-11 -- иначе.


"Опубликован код первого компилятора для языка Си"
Отправлено ZloySergant , 07-Мрт-13 18:42 
>>>что не так?
>> Да не обращай внимания. Ну не понимает человек что такое массив в
>> Си. Либо троллит.
> Ну-кась, расскажи-ка, как argv[] могет быть целым?

Цит. "argv is a pointer to an array of pointers".


"Опубликован код первого компилятора для языка Си"
Отправлено pavlinux , 08-Мрт-13 22:49 
>>>>что не так?
>>> Да не обращай внимания. Ну не понимает человек что такое массив в
>>> Си. Либо троллит.
>> Ну-кась, расскажи-ка, как argv[] могет быть целым?
> Цит. "argv is a pointer to an array of pointers".

Ага, щаз...


ISO/IEC 9899:201x

5.1.2.2.1 Program startup

1 The function called at program startup is named main. The implementation declares no
prototype for this function. It shall be defined with a return type of int and with no
parameters:
int main(void) { /* ... */ }
or with two parameters (referred to here as argc and argv, though any names may be
used, as they are local to the function in which they are declared):
int main(int argc, char *argv[]) { /* ... */ }
or equivalent [*10] or in some other implementation-defined manner.

2 If they are declared, the parameters to the main function shall obey the following
constraints:
— The value of argc shall be nonnegative.
— argv[argc] shall be a null pointer.
— If the value of argc is greater than zero, the array members argv[0] through
argv[argc-1] inclusive shall contain pointers to strings, which are given
implementation-defined values by the host environment prior to program startup. The
intent is to supply to the program information determined prior to program startup
from elsewhere in the hosted environment. If the host environment is not capable of
supplying strings with letters in both uppercase and lowercase, the implementation
shall ensure that the strings are received in lowercase.
— If the value of argc is greater than zero, the string pointed to by argv[0]
represents the program name; argv[0][0] shall be the null character if the
program name is not available from the host environment. If the value of argc is
greater than one, the strings pointed to by argv[1] through argv[argc-1]
represent the program parameters.
— The parameters argc and argv and the strings pointed to by the argv array shall
be modifiable by the program, and retain their last-stored values between program
startup and program termination.

* [10] Thus, int can be replaced by a typedef name defined as int, or the type of argv
can be written as char ** argv, and so on.


http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf

"Опубликован код первого компилятора для языка Си"
Отправлено ZloySergant , 09-Мрт-13 01:11 
>>>>>что не так?
>>>> Да не обращай внимания. Ну не понимает человек что такое массив в
>>>> Си. Либо троллит.
>>> Ну-кась, расскажи-ка, как argv[] могет быть целым?
>> Цит. "argv is a pointer to an array of pointers".
> — argv[argc] shall be a null pointer.
> — The parameters argc and argv and the strings pointed to by
> the argv array shall

Паша, читай вниметельней. argv, argv[argc] - указатели (pointer). Конструкт типа char * - _указатель_ на ячейку памяти, содержащую данные типа "char" (а в данном случае, так вообще - указатель на цепочку, точнее, первый элемент, указателей на ячейки, содержащие char). Сам по себе argv (как и любой указатель) - не менее чем int.

НЕ путай указатель и ячейку памяти, на которую он указывает.


"Опубликован код первого компилятора для языка Си"
Отправлено pavlinux , 09-Мрт-13 03:09 
> Паша, читай вниметельней. argv, argv[argc] - указатели (pointer).

Пля, мой косяк,... Я почему-то прочитал как "argv is a pointer to pointer". :-/

> НЕ путай указатель и ячейку памяти, на которую он указывает.

Я про  ремарку *[10]

А честно говоря, присутствие в стандарте выражений типа "...and so on",
"...or in some other implementation-defined manner" и порождают подобные темы :)  


"Опубликован код первого компилятора для языка Си"
Отправлено ZloySergant , 09-Мрт-13 13:37 
>> Паша, читай вниметельней. argv, argv[argc] - указатели (pointer).
> Я про  ремарку *[10]
> А честно говоря, присутствие в стандарте выражений типа "...and so on",
> "...or in some other implementation-defined manner" и порождают подобные темы :)

А что про ремарку? То что там написано, что "int argc"  может быть написано как "sometype counter", при этом sometype должен соответствовать int'у - так ведь правду пишут: хрен его знает, как в какой реализации типы обзовут.
UPD: Ну или, на крайний случай, как программизд развлекаться будет.


"Опубликован код первого компилятора для языка Си"
Отправлено Аноним , 07-Мрт-13 01:27 
> Указатель это число, ага

Более того, это просто адрес в памяти.


"Опубликован код первого компилятора для языка Си"
Отправлено Zenitur , 06-Мрт-13 17:19 
На каком языке написан первый компилятор Си? Стопудово не на Си.

"Опубликован код первого компилятора для языка Си"
Отправлено slowpoke , 06-Мрт-13 17:33 
изначально видимо на B как и unix, а потом может переписан на C

"Опубликован код первого компилятора для языка Си"
Отправлено dq0s4y71 , 06-Мрт-13 17:44 
Вас удивляет, что самый первый компилятор какого-то языка написан не на том языке? :)

"Опубликован код первого компилятора для языка Си"
Отправлено анон , 06-Мрт-13 18:44 
"Код компилятора написан на первом диалекте языка Си, который сильно отличается от современного Си и уже не поддерживается ни одним из компиляторов"

новость не читай@херню пиши


"Опубликован код первого компилятора для языка Си"
Отправлено Аноним , 06-Мрт-13 21:37 
Вопрос не читай@сразу отвечай. Человек спросил про самый первый компилятор, а не первый компилятор, написанный на Си.

"Опубликован код первого компилятора для языка Си"
Отправлено Andrew Kolchoogin , 06-Мрт-13 22:18 
Первый компилятор C был написан на языке Ассемблера для PDP-11 -- B на этой платформе не было, его не стали тянуть с PDP-7.

"Опубликован код первого компилятора для языка Си"
Отправлено Andrew Kolchoogin , 06-Мрт-13 22:20 
"... Первый компилятор С для платформы PDP-11 ..."
// Obvious fix

"Опубликован код первого компилятора для языка Си"
Отправлено Аноним , 07-Мрт-13 01:28 
> Стопудово не на Си.

Не, ты явно не в курсе того что программеры любят задачу про Мюнхаузена и подъем самого себя за свои же шнурки из болота ("bootstrap", в память о Мюнхаузене и его ботинках).


"Опубликован код первого компилятора для языка Си"
Отправлено angra , 07-Мрт-13 04:08 
Это называется "слышал звон, но не знает где он". При bootstrap компилятор ЯП может собрать сам себя, или свою новую версию, или первую версию себя для другой архитектуры. Однако это не отменяет необходимость в наличии самой первой версии компилятора, написанной на другом ЯП, ну или в клиническом случае вручную переведенной в машинный код.

"Опубликован код первого компилятора для языка Си"
Отправлено Аноним , 07-Мрт-13 04:36 
> наличии самой первой версии компилятора, написанной на другом ЯП, ну или
> в клиническом случае вручную переведенной в машинный код.

Капитан, спасибо вам :). Но в результате все-таки получается что первая версия компилятора которая именно им и считается - таки собрана сама собой. А чем там собран бутстраппер - второй вопрос. Бутстрап окружение врядли тянет на "первый компилятор". Особенно если программу вручную перевели в машинный код.


"Опубликован код первого компилятора для языка Си"
Отправлено Аноним , 07-Мрт-13 11:20 
> Но в результате все-таки получается что первая версия компилятора которая именно им и считается - таки собрана сама собой.

Нет. Компилятор вовсе не обязан быть написанным на том же языке, который компилирует.


"Опубликован код первого компилятора для языка Си"
Отправлено anonymous , 06-Мрт-13 22:17 
>Опубликован код первого компилятора для языка Си
>Код компилятора написан на первом диалекте языка Си

Но ведь наверное он всё-таки не первый, его ведь чем-то компилили?


"Опубликован код первого компилятора для языка Си"
Отправлено Аноним , 07-Мрт-13 01:11 
Почитай о раскрутке компилятора

"Опубликован код первого компилятора для языка Си"
Отправлено anonymous , 07-Мрт-13 05:59 
Почитал. Раскрутка всё равно предполагает, что сначала должен был использоваться компилятор, написанный на чём-то другом.

"Опубликован код первого компилятора для языка Си"
Отправлено Аноним , 07-Мрт-13 10:35 
> Почитал. Раскрутка всё равно предполагает, что сначала должен был использоваться компилятор,
> написанный на чём-то другом.

Не подразумевает. Например первую версия компилятора подмножества Паскаля после неудавшейся попытки написать ее на Фортране написали на самом подмножестве. Затем один из разработчиков уединился на пару недель для перевода текста компилятора в машинные коды вручную.


"Опубликован код первого компилятора для языка Си"
Отправлено Andrey Mitrofanov , 07-Мрт-13 16:01 
>Затем один из разработчиков уединился на пару недель для перевода текста компилятора в машинные коды вручную.

Один из разработчиков в качестве первого %) компилятора это готичненько.


"Опубликован код первого компилятора для языка Си"
Отправлено qulinxao , 07-Мрт-13 13:48 
http://homepage.ntlworld.com/edmund.grimley-evans/bcompiler....

"Опубликован код первого компилятора для языка Си"
Отправлено Andrew Kolchoogin , 06-Мрт-13 22:19 
Кстати. Вот ведь магнитная лента -- мега-носитель! 40 лет прошло -- а хоть бы фиг, читаются!

"Опубликован код первого компилятора для языка Си"
Отправлено Федя , 07-Мрт-13 00:40 
не чета современным носителям

"Опубликован код первого компилятора для языка Си"
Отправлено Аноним , 07-Мрт-13 08:10 
Магнитная лента же вполне современный носитель, используется для бэкапов. Зато она не обеспечивает произвольный доступ.

"Опубликован код первого компилятора для языка Си"
Отправлено Аноним , 07-Мрт-13 13:15 
Извините, Капитан, не узнал Вас в гриме...

"Опубликован код первого компилятора для языка Си"
Отправлено Аноним , 07-Мрт-13 04:37 
> Кстати. Вот ведь магнитная лента -- мега-носитель! 40 лет прошло -- а
> хоть бы фиг, читаются!

Да и флоппики через 40 лет читаться будут, вероятно. Если вы, конечно, сможете найти для них привод и куда его такой хороший подключать.

Магнитные диски в принципе тоже будут читаться. Ну, если флеш-память с микропрограммой не слетит. Сама по себе магнитная запись - условно-вечная, в том плане что у нее нет поводов исчезать куда-то "просто так".


"Опубликован код первого компилятора для языка Си"
Отправлено Аноним , 07-Мрт-13 14:15 
Такую вещь как "закон возрастания энтропии" в школе Вы успешно проходили?

"Опубликован код первого компилятора для языка Си"
Отправлено pavlinux , 12-Мрт-13 03:46 
> Такую вещь как "закон возрастания энтропии" в школе Вы успешно проходили?

Флоппик есть адиабатический термопроцесс? :) Бамбук, ты чё, себя курил!?


"Опубликован код первого компилятора для языка Си"
Отправлено Michael Shigorin , 08-Мрт-13 02:30 
> Сама по себе магнитная запись - условно-вечная, в том
> плане что у нее нет поводов исчезать куда-то "просто так".

Н-да, то есть про саморазмагничивание, естественное магнитное поле Земли и потоки элементарных частиц мы не подозреваем...


"Опубликован код первого компилятора для языка Си"
Отправлено Аноним , 07-Мрт-13 01:12 
Да уж, на структурное программирование они клали с прибором.

"Опубликован код первого компилятора для языка Си"
Отправлено Аноним , 07-Мрт-13 09:17 
а Попов лоханулся что в своё радио не впаял fm-декодер

"Опубликован код первого компилятора для языка Си"
Отправлено Аноним , 07-Мрт-13 10:26 
Паскаль, вышедший незадолго до Си, создавался в том числе для структурного программирования. Си тоже содержит в себе все необходимое для этого.

"Опубликован код первого компилятора для языка Си"
Отправлено _CyberDaemon_ , 08-Мрт-13 10:04 
Исходники Windows 1.0 хочется глянуть только из спортивного интереса. Как в том анекдоте - "... только Гейтс может что-то жопой написать..."