1.8, Аноним (8), 13:48, 01/01/2025 [ответить] [﹢﹢﹢] [ · · · ]
| –17 +/– |
Непонятно, как можно на языке Си написать стандартную библиотеку языка Си, ведь для того, чтобы работал язык Си, сначала нужна работающая библиотека языка Си.
Получается замкнутый круг.
| |
|
2.9, Аноним (9), 14:20, 01/01/2025 [^] [^^] [^^^] [ответить]
| +13 +/– |
Представь, что ты первый раз на ассемблере написал Си и теперь у тебя есть рабочий Си компилятор написанный на Си. Вывел тебя из бесконечного цикла - можешь благодарить.
| |
|
3.12, Аноним (12), 14:40, 01/01/2025 [^] [^^] [^^^] [ответить]
| +3 +/– |
Я лет в 14 задавался вопросом, как писали первый компилятор для первого языка.
| |
|
4.35, Аноним (-), 17:41, 01/01/2025 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Я лет в 14 задавался вопросом, как писали первый компилятор для первого языка.
А тебя не удивляло что для того чтобы сделать станок - нужны станки, которые произведут детали для этого станка? А вот поди ж ты - как-то их делают!
Первые первобытные парсеры можно было и на тетрадном листочке заассемблить. А потом - этот парсер (например простой ассмемблер для начала) - ускорит и улучшит процесс ассемблирования. Это позволит написать быстрее программу больше и жирнее, и можно попробовать небольшой компилер си. Даже если он будет и неполный, можно однако написать с его помощью более шустро - более полный вариант. А потом - и пересобрать его сам собой, например. И далее девелопать - так. Это называется - bootstrap.
| |
4.54, Аноним (54), 01:02, 02/01/2025 [^] [^^] [^^^] [ответить]
| +/– |
когда компиляторов не было, студентов сразу обучали структуре команд процессора какой-нить бэсм-6, после чего они программы писали сразу машинными кодами и набивали их на перфокартах.
после чего вся колода перфокарт относилась оператору и оставлялась в правильной коробке с твоим именем.
оператор, когда подойдёт твоя очередь, должен был это всё скормить машине, запустить, всю выдачу распечатать на очень длинной бумаге и всё вместе сложить обратно в коробку чтобы ты это потом забрал.
таким образом, буфер ввода-вывода был картонной коробкой, а роль некоторых программ и устройств выполняли отдельные люди.
поэтому вся система напоминала армейскую игру дедушек в карты, намалёванные на матрацах, которые духи по плацу тасовали по команде дедов с биноклями.
| |
|
3.59, 12yoexpert (ok), 03:33, 02/01/2025 [^] [^^] [^^^] [ответить]
| +/– |
а первые версии gcc разве не протеряли? сейчас разве можно повторить всю цепочку от бинарного кода до gcc 15, чтобы убедиться в отсутствии кгб-шных закладок?
| |
|
|
3.18, межгалактический (?), 15:07, 01/01/2025 [^] [^^] [^^^] [ответить]
| –3 +/– |
Скриптуха адепт не смог ничего ответить, порвался и заминусил. Зато пропаганду ретранслировать он первый. Типичная картина.
| |
|
4.24, Аноним (24), 15:49, 01/01/2025 [^] [^^] [^^^] [ответить]
| +/– |
поищи gnu mes - уроборос из сишки и скриптухи
правильнее этого было бы только на асме написать или баше компилятор сей ради раскрутки
| |
|
3.30, Аноним (30), 16:21, 01/01/2025 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Не нужна. Сишка работает без рантайма.
В реальности опеннетных кекспертов все так. Но в нашей -- есть "нЬюансы".
https://gcc.gnu.org/onlinedocs/gcc/Standards.html
> Most of the compiler support routines used by GCC are present in libgcc, but there are a few exceptions. GCC requires the freestanding environment provide memcpy, memmove, memset and memcmp.
> | |
|
4.63, Аноним (63), 06:34, 02/01/2025 [^] [^^] [^^^] [ответить]
| +/– |
"Рантайм" (а также "эмулятор", "виртуальная машина") - это такой совоглобусонатягивательный термин. Потому что он переводится как "времени выполнения", а что там времени выполнения - додумывается по контексту. Например, "Are there any ML style languages with no runtime?".
Если хочется указать на ньювансы, то проще начать с того, что настоящая точка входа находится не в main и предоставляется рантаймом https://en.wikipedia.org/wiki/Crt0
Если хочется ответить на изначальный вопрос, то рассказать про бутстраппинг компиляторов.
| |
|
3.36, Аноним (-), 17:42, 01/01/2025 [^] [^^] [^^^] [ответить]
| +/– |
> Не нужна. Сишка работает без рантайма.
А как ты будешь скомпилированное записывать куда-то без рантайма? :)
| |
|
2.23, Аноним (24), 15:47, 01/01/2025 [^] [^^] [^^^] [ответить]
| –2 +/– |
Это для того, чтобы работал раст, нужна стдлиба и 100500 других пакетов из карго, а сишные компиляторы могут быть хоть со статически пришпиленной стдлибой, хоть линковаться под чужую стдлибу, хоть можно их написать без стдлибы вообще.
| |
|
3.28, Анон из села Кукуево (?), 16:08, 01/01/2025 [^] [^^] [^^^] [ответить]
| +2 +/– |
Ну зачем постоянно нести чушь и приплетать раст о котором ты ничего не знаешь?
Да, изначально компайлер раста собирался тем что написан на сях, так быстрей создавать первые версии. Сейчас он может пройти бутстрапинг и будет собран сам собой
И уж конечно ему не нужны пакеты из карго
Ну вот зачем постоянно придумываешь чушь и приплетаешь ее к расту, к гоулэнгу и прочему, что моложе 20 лет? Вот что бы что?
| |
|
4.56, Аноним (56), 01:27, 02/01/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
>Да, изначально компайлер раста собирался тем что написан на сях
Самомнение сишников не позволяет им сказать, что изначально компилятор был написан на окамле.
| |
|
5.66, Аноним (65), 08:26, 02/01/2025 [^] [^^] [^^^] [ответить]
| +/– |
А сейчас вполне начинает бутстрап с GNU Mess, например, а потом уже tinycc, gcc 2.95 и далее
| |
|
|
3.29, Аноним (30), 16:13, 01/01/2025 [^] [^^] [^^^] [ответить]
| +/– |
> Это для того, чтобы работал раст, нужна стдлиба написанная на расте
> а сишные компиляторы могут быть хоть ЭТОДРУГОЕ!
Пофиксил, не благодари.
> хоть можно их написать без стдлибы вообще.
Ссылки на сишко-компиляторы "без стдлибы" (со сравнимым с растовым, уровнем оптимизации выхлопа, а не "laba4.c") ты просто забыл добавить, ага.
А то всякие шланги и gcc почему-то пишут с стдлибой, да еще и плюсы вместо сишки использовать норовят - вот жеж неосиляторы, в отличии от опеннетовцев ...
| |
|
4.37, Аноним (-), 17:51, 01/01/2025 [^] [^^] [^^^] [ответить] | –1 +/– | GCC, Clang - с ключем -ffreestanding Для C99 и новее стандарт штатно регламенти... большой текст свёрнут, показать | |
|
5.40, Аноним (30), 18:32, 01/01/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
>>> а сишные компиляторы могут быть хоть [...] хоть можно их написать без стдлибы вообще.
>> Ссылки на сишко-компиляторы "без стдлибы" (со сравнимым с растовым, уровнем оптимизации
>> выхлопа, а не "laba4.c") ты просто забыл добавить, ага.
> GCC, Clang - с ключем -ffreestanding. Для C99 и новее стандарт штатно регламентирует режим "freestanding", без либ вообще.
И как обычно -- читать могут не только лишь все ...
> <остальное поскипано, т.к. "уровень" и "содержание" примерно те же.>
> | |
|
|
3.62, Аноним (62), 06:10, 02/01/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
Для того, что бы собрать программу на расте стдлиба не нужна. Причём куча популярных либов умеют собираться в режиме «без стдлибы».
Именно поэтому на расте можно писать ядра ОС, писать под микроконтроллеры и так далее.
| |
|
|
|
4.71, zog (??), 01:45, 04/01/2025 [^] [^^] [^^^] [ответить]
| +/– |
Но не в любом языке без библиотеки нельзя написать ничего полезного.
| |
|
|
2.68, Ivan7 (ok), 16:17, 02/01/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
Чтобы использовать С, стандартная библиотека С не нужна. Аналогично для С++: чтобы его использовать стандартная библиотека С++ не нужна.
| |
|
1.10, Аноним (9), 14:22, 01/01/2025 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Чего они там все постоянно пишут? Там всего-то надо передать управление в main ну и скажем malloc/free реализовать. Да ну системные вызовы прокинуть в заголовках.
| |
|
|
3.67, Илья (??), 10:11, 02/01/2025 [^] [^^] [^^^] [ответить]
| +/– |
свифт это в свою очередь надстройка поверх си с классами.
| |
|
|
1.25, Аноним (24), 15:52, 01/01/2025 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
>пригодной для использования на встраиваемых системах c небольшим объёмом постоянного хранилища и оперативной памяти
Судя по тому, что писали редхатовцы, встраиваемая система как минимум будет держать в себе SSD и иметь пачку ядер, чтобы на ней имело смысл запускать системд.
| |
|
2.26, Аноним (24), 15:53, 01/01/2025 [^] [^^] [^^^] [ответить]
| +/– |
И конечно же хороший такой оперативки. На нём не то, что си, на нём можно будет, наверно, и жабу раскрутить.
| |
2.38, Аноним (-), 17:57, 01/01/2025 [^] [^^] [^^^] [ответить] | +/– | Если посчитать uSD или eMMC за SSD - мои одноплатники вполне котируются Да, на ... большой текст свёрнут, показать | |
|
3.41, OpenEcho (?), 19:16, 01/01/2025 [^] [^^] [^^^] [ответить]
| +/– |
> А меньше уже никто и не делает, даже в 10-баксовых железках продаваемых по цене текстолита.
TinyVPS: RAM-64Mb где ваш любимый инит сожрет 10% памяти
> И самый зачуханый 1-ядерник на гигагерц (дохлее у меня просто нет уже) и то взлетает за 6 секунд.
Гон. То что вы увидели приглашение воити, - не значит, что там, заднем плане не продолжает идти загрузка сервисов.
И да, меня всегда удиляло, как легко на это повелось столько много народа, - вы только то и делаете что перезагружетесь каждую минуту чтоб смаковать как быстро появилось cli ? Или система все же для чего то более взрослого? Есть куча сервисов которые зависят друга от друга, где пока один полностью не функционален, другой просто не может работать и чудо потеринга делает тоже самое, - ждет, но невидимо для тех, кто не понимает как оно там под капотом
| |
|
4.42, Аноним (-), 19:51, 01/01/2025 [^] [^^] [^^^] [ответить] | +/– | Мне за 3 бакса KVM виртуалку с гигом RAM дают Стесняюсь спросить с 64 мегами э... большой текст свёрнут, показать | |
4.43, Аноним (56), 20:01, 01/01/2025 [^] [^^] [^^^] [ответить]
| +/– |
>TinyVPS: RAM-64Mb где ваш любимый инит сожрет 10% памяти
И зачем она нужна? Что на ней можно делать? На ней не только инит, на ней практически всё сожрёт кучу памяти, даже ssh.
>и чудо потеринга делает тоже самое, - ждет, но невидимо для тех, кто не понимает как оно там под капотом
У системд есть куча преимуществ, вроде лёгкой изоляции сервисов и прозрачного переопределения частей юнита. Но системд-хейтеры старательно игнорируют эти, а так же другие преимущества systemd.
| |
|
5.53, glad_valakas (-), 00:12, 02/01/2025 [^] [^^] [^^^] [ответить]
| –1 +/– |
> У системд есть куча преимуществ,
так расскажите о них. может я чего не знаю. может же такое быть ?
> вроде лёгкой изоляции сервисов
наилегчайшей: man nsenter, man chroot.
> и прозрачного переопределения частей юнита
вместо настройки демона через конфиг перетряхивать юниты. отлично.
и это все ?
| |
|
6.55, Аноним (56), 01:24, 02/01/2025 [^] [^^] [^^^] [ответить] | +1 +/– | В сообщении на которое вы отвечаете уже пару указана Не смешно В systemd можно ... большой текст свёрнут, показать | |
|
|
|
|
|
1.61, Имя Моё (?), 05:46, 02/01/2025 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> "пригодной для использования на встраиваемых системах c"
Прям история musl.
| |
1.64, Аноним (-), 06:52, 02/01/2025 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Уточню стандартной она называется от того, что она упоминается в Стандарте языка С23.
| |
|