The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Опубликован код первого компилятора для языка Си"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Опубликован код первого компилятора для языка Си"  +/
Сообщение от opennews (??) on 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.../
Новость: https://www.opennet.ru/opennews/art.shtml?num=36312

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Опубликован код первого компилятора для языка Си"  +8 +/
Сообщение от Аноним (??) on 06-Мрт-13, 14:17 
Ждем исходников первой виндуз!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Опубликован код первого компилятора для языка Си"  –8 +/
Сообщение от Anonimaus on 06-Мрт-13, 14:21 
reactos не?
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

5. "Опубликован код первого компилятора для языка Си"  +6 +/
Сообщение от Аноним (??) on 06-Мрт-13, 14:52 
Reactos — клон NT, о невежественный. Windows 1.0 же — досовское приложение.
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

78. "Опубликован код первого компилятора для языка Си"  –1 +/
Сообщение от Anonimaus on 07-Мрт-13, 09:28 
какая разница??? что одно, что другое уже НЕ нужно.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

6. "Опубликован код первого компилятора для языка Си"  –3 +/
Сообщение от Capone email on 06-Мрт-13, 14:54 
Не уверен не подрезай, т.е. не говори. Первая винда вынырнула в октябре(или ноябре не помню точно) 1985 года, хотя по планам должна была выйти еще летом того же года. До реактОС оставалось еще дофига времени.
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

39. "Опубликован код первого компилятора для языка Си"  +3 +/
Сообщение от Vaso Petrovich on 06-Мрт-13, 16:44 
И к чему это сказано?
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

63. "Опубликован код первого компилятора для языка Си"  +/
Сообщение от FractalizeR email(ok) on 06-Мрт-13, 23:56 
Это вы о чем?
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

4. "Опубликован код первого компилятора для языка Си"  +4 +/
Сообщение от Max (??) on 06-Мрт-13, 14:29 
Ради смеха что ли?
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

51. "Опубликован код первого компилятора для языка Си"  +4 +/
Сообщение от Какаянахренразница (ok) on 06-Мрт-13, 18:36 
Наоборот, люди хотят ужастиков.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

14. "Опубликован код первого компилятора для языка Си"  –1 +/
Сообщение от dq0s4y71 (??) on 06-Мрт-13, 15:35 
Это DOS Shell что ли? Так он валяется где-то на торрентах вместе с исходниками MS-DOS.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

31. "Опубликован код первого компилятора для языка Си"  +1 +/
Сообщение от verus (ok) on 06-Мрт-13, 16:16 
В том-то и дело, что на торрентах.
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

35. "Опубликован код первого компилятора для языка Си"  +/
Сообщение от dq0s4y71 (??) on 06-Мрт-13, 16:22 
Да они только "на посмотреть", больше ни для чего и не нужны.
Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

54. "Опубликован код первого компилятора для языка Си"  +1 +/
Сообщение от verus (ok) on 06-Мрт-13, 20:48 
В том-то и дело, что официально смотреть-то  нельзя (уж простите за тавтологию).
Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

7. "Опубликован код первого компилятора для языка Си"  +4 +/
Сообщение от Аноним (??) on 06-Мрт-13, 15:08 
Just for fun можно попробовать даже скомпилировать его в Unix v7 через SIMH. Это, пожалуй, будет покруче "пропатчить KDE2 на FreeBSD". :)
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

10. "Опубликован код первого компилятора для языка Си"  –1 +/
Сообщение от Аноним (??) on 06-Мрт-13, 15:20 
просто копируется до 0
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "Опубликован код первого компилятора для языка Си"  +/
Сообщение от Аноним (??) on 06-Мрт-13, 15:26 
Скопировать namsiz элементов symbuf в s, пропуская нуль-символы.
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

41. "Опубликован код первого компилятора для языка Си"  +/
Сообщение от noize (ok) on 06-Мрт-13, 17:05 
вы почитайте K&R, там подобного добра навалом
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

53. "Опубликован код первого компилятора для языка Си"  +/
Сообщение от Аноним (??) on 06-Мрт-13, 19:36 
Самая стандартнейшая из Сишных идиом жеп
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

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

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

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

Ответить | Правка | ^ к родителю #53 | Наверх | Cообщить модератору

75. "Опубликован код первого компилятора для языка Си"  –2 +/
Сообщение от Тузя (ok) on 07-Мрт-13, 07:56 
Имхо нет.
1) 0 и '\0', строго говоря, это не одно и то же;
2) Зачем вы делаете s++, уж тогда лучше ++s;
3) Имо, оригинальный пример проще читался, так как сдвиг указателей происходил в обеих строках одновременно и _после_ операции сравнения.
Ответить | Правка | ^ к родителю #55 | Наверх | Cообщить модератору

88. "Опубликован код первого компилятора для языка Си"  +/
Сообщение от анон on 07-Мрт-13, 14:15 
1. с чего это не одно и тоже?
2. чем лучше? значение инкремента прям тут же не используется.
Ответить | Правка | ^ к родителю #75 | Наверх | Cообщить модератору

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

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

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

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

Ответить | Правка | ^ к родителю #88 | Наверх | Cообщить модератору

83. "Опубликован код первого компилятора для языка Си"  –1 +/
Сообщение от x0r (??) on 07-Мрт-13, 12:25 
убивать их за такое - ничерта не понятно и неоптимально

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

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

89. "Опубликован код первого компилятора для языка Си"  +/
Сообщение от анон on 07-Мрт-13, 14:16 
вот уж точно неоптимально
Ответить | Правка | ^ к родителю #83 | Наверх | Cообщить модератору

90. "Опубликован код первого компилятора для языка Си"  –1 +/
Сообщение от анон on 07-Мрт-13, 15:44 
новое поколение знает как программировать лучше создателей языка. Как известный факт: на конкурсе походок а-ля Чарли Чаплин выйграл не Чаплин, а кто-то другой..
Ответить | Правка | ^ к родителю #83 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #90 | Наверх | Cообщить модератору

95. "Опубликован код первого компилятора для языка Си"  +1 +/
Сообщение от Аноним (??) on 07-Мрт-13, 17:49 
У меня подозрение, что второй цикл будет бесконечным.
Ответить | Правка | ^ к родителю #83 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #95 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #95 | Наверх | Cообщить модератору

106. "Опубликован код первого компилятора для языка Си"  +/
Сообщение от евгений (??) on 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. Не нашел как форматировать код

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

107. "Опубликован код первого компилятора для языка Си"  +/
Сообщение от евгений (??) on 09-Мрт-13, 16:46 
И копирует _из_ s _в_ symbuf (s - источник, symbuf - приемник)
Ответить | Правка | ^ к родителю #106 | Наверх | Cообщить модератору

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

[code]...[/code]

Ответить | Правка | ^ к родителю #106 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

17. "Опубликован код первого компилятора для языка Си"  +3 +/
Сообщение от Аноним (??) on 06-Мрт-13, 15:47 
Указатель это число, ага


Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

20. "Опубликован код первого компилятора для языка Си"  –13 +/
Сообщение от iZEN (ok) on 06-Мрт-13, 15:50 
> Указатель это число, ага

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

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

43. "Опубликован код первого компилятора для языка Си"  +/
Сообщение от Аноним (??) on 06-Мрт-13, 17:13 
что не так?
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

46. "Опубликован код первого компилятора для языка Си"  +6 +/
Сообщение от ZloySergant (ok) on 06-Мрт-13, 17:29 
>что не так?

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

Ответить | Правка | ^ к родителю #43 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #46 | Наверх | Cообщить модератору

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

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

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

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

Ответить | Правка | ^ к родителю #61 | Наверх | Cообщить модератору

69. "Опубликован код первого компилятора для языка Си"  +/
Сообщение от pavlinux (ok) on 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;

  

Ответить | Правка | ^ к родителю #62 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #69 | Наверх | Cообщить модератору

86. "Опубликован код первого компилятора для языка Си"  –5 +/
Сообщение от iZEN (ok) on 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-символ. :))


Ответить | Правка | ^ к родителю #69 | Наверх | Cообщить модератору

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

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

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

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

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

Ответить | Правка | ^ к родителю #69 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #61 | Наверх | Cообщить модератору

102. "Опубликован код первого компилятора для языка Си"  +/
Сообщение от pavlinux (ok) on 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
Ответить | Правка | ^ к родителю #96 | Наверх | Cообщить модератору

103. "Опубликован код первого компилятора для языка Си"  +/
Сообщение от ZloySergant (ok) on 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.

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

Ответить | Правка | ^ к родителю #102 | Наверх | Cообщить модератору

104. "Опубликован код первого компилятора для языка Си"  +/
Сообщение от pavlinux (ok) on 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" и порождают подобные темы :)  

Ответить | Правка | ^ к родителю #103 | Наверх | Cообщить модератору

105. "Опубликован код первого компилятора для языка Си"  +/
Сообщение от ZloySergant (ok) on 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: Ну или, на крайний случай, как программизд развлекаться будет.

Ответить | Правка | ^ к родителю #104 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

45. "Опубликован код первого компилятора для языка Си"  –1 +/
Сообщение от Zenitur (ok) on 06-Мрт-13, 17:19 
На каком языке написан первый компилятор Си? Стопудово не на Си.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

47. "Опубликован код первого компилятора для языка Си"  +/
Сообщение от slowpoke on 06-Мрт-13, 17:33 
изначально видимо на B как и unix, а потом может переписан на C
Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

48. "Опубликован код первого компилятора для языка Си"  +2 +/
Сообщение от dq0s4y71 (??) on 06-Мрт-13, 17:44 
Вас удивляет, что самый первый компилятор какого-то языка написан не на том языке? :)
Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

56. "Опубликован код первого компилятора для языка Си"  +1 +/
Сообщение от Аноним (??) on 06-Мрт-13, 21:37 
Вопрос не читай@сразу отвечай. Человек спросил про самый первый компилятор, а не первый компилятор, написанный на Си.
Ответить | Правка | ^ к родителю #52 | Наверх | Cообщить модератору

58. "Опубликован код первого компилятора для языка Си"  +/
Сообщение от Andrew Kolchoogin on 06-Мрт-13, 22:18 
Первый компилятор C был написан на языке Ассемблера для PDP-11 -- B на этой платформе не было, его не стали тянуть с PDP-7.
Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

60. "Опубликован код первого компилятора для языка Си"  +/
Сообщение от Andrew Kolchoogin on 06-Мрт-13, 22:20 
"... Первый компилятор С для платформы PDP-11 ..."
// Obvious fix
Ответить | Правка | ^ к родителю #58 | Наверх | Cообщить модератору

68. "Опубликован код первого компилятора для языка Си"  –2 +/
Сообщение от Аноним (??) on 07-Мрт-13, 01:28 
> Стопудово не на Си.

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

Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

70. "Опубликован код первого компилятора для языка Си"  +/
Сообщение от angra (ok) on 07-Мрт-13, 04:08 
Это называется "слышал звон, но не знает где он". При bootstrap компилятор ЯП может собрать сам себя, или свою новую версию, или первую версию себя для другой архитектуры. Однако это не отменяет необходимость в наличии самой первой версии компилятора, написанной на другом ЯП, ну или в клиническом случае вручную переведенной в машинный код.
Ответить | Правка | ^ к родителю #68 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #70 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #72 | Наверх | Cообщить модератору

57. "Опубликован код первого компилятора для языка Си"  –1 +/
Сообщение от anonymous (??) on 06-Мрт-13, 22:17 
>Опубликован код первого компилятора для языка Си
>Код компилятора написан на первом диалекте языка Си

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

65. "Опубликован код первого компилятора для языка Си"  +/
Сообщение от Аноним (??) on 07-Мрт-13, 01:11 
Почитай о раскрутке компилятора
Ответить | Правка | ^ к родителю #57 | Наверх | Cообщить модератору

74. "Опубликован код первого компилятора для языка Си"  +/
Сообщение от anonymous (??) on 07-Мрт-13, 05:59 
Почитал. Раскрутка всё равно предполагает, что сначала должен был использоваться компилятор, написанный на чём-то другом.
Ответить | Правка | ^ к родителю #65 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #74 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #80 | Наверх | Cообщить модератору

85. "Опубликован код первого компилятора для языка Си"  +/
Сообщение от qulinxao on 07-Мрт-13, 13:48 
http://homepage.ntlworld.com/edmund.grimley-evans/bcompiler....
Ответить | Правка | ^ к родителю #74 | Наверх | Cообщить модератору

59. "Опубликован код первого компилятора для языка Си"  +5 +/
Сообщение от Andrew Kolchoogin on 06-Мрт-13, 22:19 
Кстати. Вот ведь магнитная лента -- мега-носитель! 40 лет прошло -- а хоть бы фиг, читаются!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

64. "Опубликован код первого компилятора для языка Си"  +/
Сообщение от Федя on 07-Мрт-13, 00:40 
не чета современным носителям
Ответить | Правка | ^ к родителю #59 | Наверх | Cообщить модератору

76. "Опубликован код первого компилятора для языка Си"  +3 +/
Сообщение от Аноним (??) on 07-Мрт-13, 08:10 
Магнитная лента же вполне современный носитель, используется для бэкапов. Зато она не обеспечивает произвольный доступ.
Ответить | Правка | ^ к родителю #64 | Наверх | Cообщить модератору

84. "Опубликован код первого компилятора для языка Си"  +/
Сообщение от Аноним (??) on 07-Мрт-13, 13:15 
Извините, Капитан, не узнал Вас в гриме...
Ответить | Правка | ^ к родителю #76 | Наверх | Cообщить модератору

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

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

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

Ответить | Правка | ^ к родителю #59 | Наверх | Cообщить модератору

87. "Опубликован код первого компилятора для языка Си"  +1 +/
Сообщение от Аноним (??) on 07-Мрт-13, 14:15 
Такую вещь как "закон возрастания энтропии" в школе Вы успешно проходили?
Ответить | Правка | ^ к родителю #73 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #87 | Наверх | Cообщить модератору

99. "Опубликован код первого компилятора для языка Си"  +1 +/
Сообщение от Michael Shigorin email(ok) on 08-Мрт-13, 02:30 
> Сама по себе магнитная запись - условно-вечная, в том
> плане что у нее нет поводов исчезать куда-то "просто так".

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

Ответить | Правка | ^ к родителю #73 | Наверх | Cообщить модератору

66. "Опубликован код первого компилятора для языка Си"  +/
Сообщение от Аноним (??) on 07-Мрт-13, 01:12 
Да уж, на структурное программирование они клали с прибором.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

77. "Опубликован код первого компилятора для языка Си"  +1 +/
Сообщение от Аноним (??) on 07-Мрт-13, 09:17 
а Попов лоханулся что в своё радио не впаял fm-декодер
Ответить | Правка | ^ к родителю #66 | Наверх | Cообщить модератору

79. "Опубликован код первого компилятора для языка Си"  +/
Сообщение от Аноним (??) on 07-Мрт-13, 10:26 
Паскаль, вышедший незадолго до Си, создавался в том числе для структурного программирования. Си тоже содержит в себе все необходимое для этого.
Ответить | Правка | ^ к родителю #77 | Наверх | Cообщить модератору

100. "Опубликован код первого компилятора для языка Си"  –2 +/
Сообщение от _CyberDaemon_ (??) on 08-Мрт-13, 10:04 
Исходники Windows 1.0 хочется глянуть только из спортивного интереса. Как в том анекдоте - "... только Гейтс может что-то жопой написать..."
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру