vak: (Знайка)
[personal profile] vak
Еще один исторический Си компилятор стал доступным в исходных кодах: Whitesmiths C Compiler. Первый из компиляторов, реализовавший в своё время стандарт ANSI C. Лежит на Гитхабе:

https://github.com/hansake/Whitesmiths-C-compiler

Компилятор генерит код для архитектур PDP-11, 8080, Z80, 8086, MC68000, VAX-11, System/370 и System/36. В исходниках пока доступны только версии для 8080 и System/36. Можно попытаться приспособить для БЭСМ-6.

Date: 2023-02-13 22:08 (UTC)
From: [personal profile] flamedancerii
О, какие люди там!
P.J.Plauger - это же тот который Dinkumware https://www.dinkumware.com/
Я помниться патчи оттуда таскал к стандартной библиотеке для MS VC 6.0
http://web.archive.org/web/20120213172118/http://www.dinkumware.com/vc_fixes.html
И исходники на K&R C выглядят непривычно, вспоминаешь сразу что C был практически макроассемблером.

Edited Date: 2023-02-13 22:12 (UTC)

Date: 2023-02-13 23:09 (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi

Классно! Мы на ассемблере валяли ядро форта. Будь у нас си, еще бы быстрее было.

Date: 2023-02-14 01:45 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
По идее, если брать оттуда "машинно-независимое" промежуточное представление и давать генератору кода от какого-нибудь Паскаль-компилятора, который бы принимал этот птичий язык вместо Паскаля, то что-то, может, и получится быстрее, чем если писать кодогенератор с нуля.

Первый проход, понятно, понадобится исправить на предмет размеров типов.

Date: 2023-02-14 08:12 (UTC)
From: [personal profile] iyak2
Неплохо.

Еще неплохо иметь сам стандарт ANSI C. Стандарт C89 в инете весьма недоступен, по крайней мере раньше с первых 5 минут не найти было, хотя современные везде валяются. Где-то читал на Хабре, человек, в некой степени тесно работающий с Си, писал, с его слов, что состовители стандартов, а они в том числе еще и разработчики(не помню, в GCC?), он общался с ними, потихоньку его херят, вроде уже невозможно написать ранее валидные конструкции, они как бы в современном Си - Undefined behavior. Это я к тому, почему старый стандарт шиш найдешь. Не знаю, это на уровне слухов. Не-а, а почему бы заинтересованной корпорации "добра" не подвинуть хорошо стандартизированный независимый язык, даже осваемый, вполне допустимо, одним человеком,
и заменить его на какой-либо наукоемкий Rust, зависимый от аффилированных разработчиков, т.е. от левой пятки корпорации "бобра"? Наверное, Торвальдус может просекает такие тенденции, и продвижение Rust в его продукте еще так себе. Просто мысли в слух.

Если кому-то нужно, то в гугле можно поискать ANSI-C 1990 Standard - ANSI_ISO 9899-1990 (R1997).pdf

Или скачать по ссылке: https://www.yodaiken.com/wp-content/uploads/2021/05/ansi-iso-9899-1990-1.pdf

Date: 2023-02-14 08:21 (UTC)
From: [personal profile] dijifi
Стандарт 1990 — он ещё до эпохи PDF и продавался на бумаге за нехилые деньги. Где-то у меня лежит.

Date: 2023-02-14 11:45 (UTC)
From: [personal profile] iyak2
Ну да, сейчас стандарты тоже неплохо стоят. Я просто когда-то искал, нашел, что все неофицальные рабочие документы лежат здесь, кроме C89: https://www.open-std.org/jtc1/sc22/wg14/www/projects#9899 Вот немного и наводило к нехорошему.
Edited Date: 2023-02-14 12:18 (UTC)

Date: 2023-02-14 11:56 (UTC)
From: [personal profile] iyak2
Нашел, наконец-то, дискуссию, про то как ломают валидные программы на Си.

Вот коммент, важный, с него можно читать:
https://habr.com/ru/post/587428/comments/#comment_23670932

Ну и все целиком:
https://habr.com/ru/post/587428/comments/

То же интересное:
https://habr.com/ru/company/ruvds/blog/562530/comments/
Edited Date: 2023-02-14 13:36 (UTC)