Лис [Вежливый] писал(а): ↑08.01.21 17:31
«чем же вариант разработки другого языка на основе Си плох?»
не ясно, что означает слово "основа" в этом предложении. Если же разрабатывать транслятор другого языка, программируя на языке C, то недостаток такой разработки в том, что надо учить английский язык. Билл Гейтс в разработке рекомендовал ограничиваться единственным языком - родным.
Основа — это базовые положения языка программирования, а не лексические конструкции.
Его парадигма, синтаксис, правила обработки прекомпилятором.
Естественно не влоб копировать, а лишь лучшее, избавляясь от худшего.
MihalNik писал(а): ↑08.01.21 17:57
КротОзёр писал(а): ↑08.01.21 17:29
чем же вариант разработки другого языка на основе Си плох?
Тем, что изначально совершенно не ясно о чем идет речь:
1. Язык транспилируется в си-код?
2. Язык изначально пишется си-кодом?
3. Язык расширяет и поддерживает си-код?
4. Язык содержит какие-то синтаксические конструкции или концепции языка Си?
Так-то есть и реализации Оберона на основе Си.
Поменять синтаксис и вовсе несколько сотен строк кода.
Нет, обратная совместимость тут ни к чему, так что вариант 4.
У языков C/C++ в их текущем варианте очень много недостатков, от которых было бы неплохо избавиться.
А если сразу разрабатывать ЯП русским, так и вовсе нет смысла ограничиваться.
Как пример "оторванного" варианта:
Код: Выделить всё
включить <консоль>;
включить процесс;
применять пространство консоль;
применять класс процесс;
цел 8 начало()
{
авто арг-ты = программа::аргументы;
// Первый аргумент.
если(арг-ты.нет(0))
вывод << "Требуется хотя бы один аргумент!" << вк;;
возврат 1;
// Разные варианты аргумента.
выбор(арг-ты[0])
{
"запуск" : если(запущен) останов;; запуск;
"останов" : если(запущен) останов;
по умолчанию : вывод << `Неопознанная команда "арг-ты[0]"!` << вк;; возврат 1;
}
возврат ожидание;
}
Тут, если присмотреться, сразу куча отличий от C++.