vak: (Default)
[personal profile] vak
Гугл предлагает новый язык Карбон на замену Си++. Проект на Гитхабе: https://github.com/carbon-language/carbon-lang

К примеру, вот такой код на Си++:



превращается в код на Карбоне:

Date: 2022-07-29 22:03 (UTC)
From: [personal profile] bowhill
Можно более развёрнуто. Исходный текст для транслятора языка и для препроцессоров – это один и тот же текст?

Есть тест на языке, в который можно добавлять вкрапления для одного, второго, третьего препроцессора. Такое встречается, скажем, помимо стандартного препроцессора в с можно использовать doxygen, да что угодно.
Edited Date: 2022-07-29 22:04 (UTC)

Date: 2022-07-29 22:54 (UTC)
From: [personal profile] ichthuss
По определению, исходный текст для транслятора языка - это выход препроцессора, и он обычно не совпадает с входом препроцессора (иначе зачем вообще препроцессор?).

Date: 2022-07-29 23:28 (UTC)
From: [personal profile] bowhill
Не обязательно. С препроцессором или без, текст может быть корректным высказыванием на языке, и так же не обязательно, что препроцессор меняет текст. Но это сторонние замечания, не связанные с идеей.

А идея в том, что если в языке нет препроцессора, то a) его скорее всего и не будет или b) их будет несколько: два, три, пять. И из всех из них, весьма часто, будет мешанина (спагетти). И на каком именно языке, в итоге, будет код – сказать затруднительно.