О безопасности языков программирования

Научно-технические вопросы применения русского языка в программировании. Проекты с сайта программирование-по-русски.рф, кроме ЯОС . Информация об организациях и людях, использующих или изучающих русский язык в программировании. Сравнение операционных систем.
Ответить
MihalNik
Сообщения: 244
Зарегистрирован: 05.11.18 11:02

Re: О безопасности языков программирования

Сообщение MihalNik » 08.01.21 17:57

КротОзёр писал(а):
08.01.21 17:29
Можно учесть ошибки и не нарываться на них.
Только глагол "учесть" совершенного вида, а "нарываться" - несовершенного.
Постоянно что-то учитывать - это не учесть.
КротОзёр писал(а):
08.01.21 17:29
чем же вариант разработки другого языка на основе Си плох?
Тем, что изначально совершенно не ясно о чем идет речь:
1. Язык транспилируется в си-код?
2. Язык изначально пишется си-кодом?
3. Язык расширяет и поддерживает си-код?
4. Язык содержит какие-то синтаксические конструкции или концепции языка Си?

Так-то есть и реализации Оберона на основе Си.
Поменять синтаксис и вовсе несколько сотен строк кода.

Аватара пользователя
КротОзёр
Сообщения: 54
Зарегистрирован: 05.01.21 02:16

Re: О безопасности языков программирования

Сообщение КротОзёр » 08.01.21 20:13

Лис [Вежливый] писал(а):
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++.

MihalNik
Сообщения: 244
Зарегистрирован: 05.11.18 11:02

Re: О безопасности языков программирования

Сообщение MihalNik » 08.01.21 23:02

КротОзёр писал(а):
08.01.21 20:13
обратная совместимость тут ни к чему, так что вариант 4.
У языков C/C++ в их текущем варианте очень много недостатков, от которых было бы неплохо избавиться.
Тут нужен конкретный перечень проблем, а не оторванные примеры синтаксиса.

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: О безопасности языков программирования

Сообщение БудДен » 08.01.21 23:29

КротОзёр писал(а):
08.01.21 17:29
А что делать, если ни Ада, ни Модула не по нраву? Даже признание проблем Си проблему-то не решает. Это — как с тем же Питоном: он либо нравится, либо бесит. Не могу понять, чем же вариант разработки другого языка на основе Си плох? Можно учесть ошибки и не нарываться на них.
К языку можно привыкнуть. Даже к КЛЮЧЕВЫМ СЛОВАМ КАПСОМ можно привыкнуть, как оказалось. Хотя я при переводе их заменил на мелкие. Если речь идёт о транспиляции, то делать язык на основе Си - это значит резко усложнить стек технологии, в т.ч. снизится комфорт в процессе разработки, надёжность и затруднится отладка. Если о чём-то другом - то нужно конкретизировать, что именно имеется в виду.

Ответить