LINUX.ORG.RU

В GCC добавлена поддержка Modula-2 и планируется включение Rust

 , ,


1

3

В основной состав GCC принят фронтэнд m2 и библиотека libgm2, позволяющие использовать штатный инструментарий GCC для сборки программ на языке программирования Modula-2. Поддерживается сборка кода, соответствующего диалектам PIM2, PIM3 и PIM4, а также принятому ISO-стандарту для данного языка. Изменения включены в ветку GCC 13, релиз которой ожидается в мае 2023 года.

Modula-2 разработан в 1978 году Никлаусом Виртом, продолжает развитие языка Pascal и позиционируется как язык программирования для высоконадёжных промышленных систем (например, применяется в ПО для спутников ГЛОНАСС). Modula-2 является предшественником таких языков, как Modula-3, Oberon и Zonnon. Помимо Modula-2 в состав GCC включены фронтэнды для языков C, C++, Objective-C, Fortran, Go, D, Ada.

Также было одобрено включение фронтэнда для Rust. Разработчикам gccrs рекомендовано начать работу с командами, отвечающими за рецензирование изменений и подготовку релизов GCC, для проведения финальной проверки и одобрения патчей с точки зрения соблюдения технических требований к коду, добавляемому в GCC. В случае, если разработка gccrs продолжится в соответствии с ранее намеченным графиком и не будет выявлено непредвиденных проблем, фронтэнд для языка Rust будет интегрирован в состав выпуска GCC 13, намеченного на май следующего года. Реализация Rust в GCC 13 будет иметь статус бета-версии, пока не включаемой по умолчанию.

>>> Подробности (OpenNet)

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 3)

Ответ на: комментарий от saibogo

Так откуда сведения, что роль смузи в те времена играл кисель, а не быстрорастворимые концентраты типа «Юпи» или «Зуко»?

Mischutka ★★★★★
()
Ответ на: комментарий от Mischutka

Зуко и юпи появились значительно позже киселя и бэйсика

saibogo ★★★★
()
Ответ на: комментарий от iZEN

Есть замечательные книги в открытом доступе:

Вирт Н. Программирование на языке Модула-2 (1985) (Перевод с англ. М.: Мир, 1987. — 224с., ил.)

Кристиан К. Руководство по программированию на языке Модула-2 (A Guide to Modula-2) (1986) (Перевод с англ. М.: Мир, 1989. — 463с., ил.)

Кстати, потратил часа три и перелистал эти две книги и в общем я это знал, но удивился еще сильнее.

За исключением некоторых мелких особенностей синтаксиса Модула-2 можно считать подмножеством ObjectPascal (Delphi, FreePascal)! Совместимости на уровне компиляторов нет, т.е., не получится напрямую скомпилировать программу на Модула-2 в FPC, например. Но получится после небольшой, в основном механической правки исходного кода.

Самое большое отличие в сопрограммах и системных средствах модуля System, которые можно использовать для обработчиков прерываний, драйверов и в принципе для параллелизации. Этого в ObjectPascal нет, но есть свои средства (модули) для решения системных проблем, в случае низкоуровневого программирования. Да и в случае Модулы-2 похоже эти средства были для MS-DOS, я сомневаюсь, чтобы в чистом виде они были применимы хоть для драйверов Linux, хоть Windows.

Короче, если хочется писать на Модуле-2, проще использовать FreePascal =))

praseodim ★★★★★
()
Ответ на: комментарий от Dark_SavanT

Дед, решивший свалить с проприетарного компилятора. Звучит крайне правдоподобно или вообще как единственно верный вариант.

nionio35
()
Последнее исправление: nionio35 (всего исправлений: 1)
Ответ на: комментарий от LongLiveUbuntu

Переписывание косметическое.

Просто у Модула-2 синтаксис слегка другой, например, пишется IF ... THEN ... END; а в Паскале if ... then begin end; некоторые операции с указателями иначе обозначаются, пишется MODULE вместо Program (не обязательного притом в Object Pascal), оформление собственно модулей несколько другое, чем в Unit у Object Pascal, плюс в модуле это два файла: интерфейсный и реализации, а в Object Pascal засунуто в один. Некоторые операции и объявления указателей по-иному записываются, но смысл тот же.

В общем по сути именно подмножество Object Pascal. Так что кому хочется писать на Модула-2, есть смысл писать на Object Pascal, так как более распространен и совместим.

praseodim ★★★★★
()
Ответ на: комментарий от praseodim

Просто у Модула-2 синтаксис слегка другой, например, пишется IF ... THEN ... END; а в Паскале if ... then begin end

Для тех у кого английский язык родной исходные тексты кода легко читаемы.

Например:

 if ( i == 1000 )

такой же код для русскоязычных программистов выглядел бы:
 Если ( i == 1000 )

Вспомнилась 1С.

В ней каждый оператор или ключевое слово может быть в иметь английское или русское написание.

Многие компиляторы поддерживают возможность использования разных кодировок для написания исходного кода.

К примеру можно локализовать исходный код библиотеки freetype.

FT_LOCAL_DEF( INT ) sfnt_init_face(
 FT_StreamRec_ *Stream, 
 TT_FaceRec_   *pFace, 
 INT           FaceInstanceIndex, 
 INT           cntParams, 
 FTParameter_  *params
 ) {

можно заменить на

FT_LOCAL_DEF( INT ) ИнициализацияФонта(
 FT_StreamRec_ *Стреам,
 TT_FaceRec_   *pФонт,
 INT           ИндекЭкземпляраФонта,
 INT           колПараметров,
 FTParameter_  *pПараметры
) {

Конечно при этом нужно локализовать не только определения функций, но и их код.

Если бы была возможность использовать русские названия для ключевых слов (как в 1С), то вот вам и «Русский компилятор».

Эта тема конечно весьма емкая.

ИМХО Вирт использовал некоторые ключевые слова, типа «begin» для того, чтобы текст исходного кода как бы становился более легко понимаемым.

Forum0888
()
Ответ на: комментарий от small-entropy

У него нет ничего.

Вообще-то есть. Это огроменная, плетёжеспособная аудитория яблочных устройств. Это огромная куча бабок, которую грести и грести.

sbu_shpigun
()
Ответ на: комментарий от small-entropy

А технические аспекты уходят на второй план, когда есть простота разработки и куча денег. А для всего остального есть Objective-C

sbu_shpigun
()

Познав дзен модулы-2, надеюсь перепишут весь gcc на ней :)

tommy ★★★★★
()
Ответ на: комментарий от Forum0888

можете попробовать поискать компилятор OM2, автор - Guenter Dotzel, первый релиз в 1993-ем.

удивительно напоминает XDS.

по всей видимости Гюнтер передал свой компилятор команде из Новосибирска, а они потом инструмент развивали как XDS.

Но все особенности дизайна, и то, что компилятор одновременно двух языков - всё это было заложено уже давно, в компиляторе OM2.

naemo
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.