В принципе логичное развитие для системного языка — для С/С++ такое неоднократно предлагалось.
Вообще удобно, если в компиляторе есть переключатель "безопасный/небезопасный режим". Т.е. пишешь всегда на одном языке, но обычно ограничиваешь только некоторым подмножеством (всё ещё очень мощным). А если уж никуда без указателей, то в каком-то отдельно взятом модуле включаешь небезопасный режим. К этому модулю тогда и внимание более пристальное при проверке/тестировании.
Здравствуйте, remark, Вы писали:
R>SafeD — The Safe Subset of D: R>http://www.digitalmars.com/d/2.0/safed.html
R>В принципе логичное развитие для системного языка — для С/С++ такое неоднократно предлагалось. R>Вообще удобно, если в компиляторе есть переключатель "безопасный/небезопасный режим". Т.е. пишешь всегда на одном языке, но обычно ограничиваешь только некоторым подмножеством (всё ещё очень мощным). А если уж никуда без указателей, то в каком-то отдельно взятом модуле включаешь небезопасный режим. К этому модулю тогда и внимание более пристальное при проверке/тестировании.
Нужно заметить, что за несколько дней после публикации анонса данной статьи в digitalmars.D.announce не было пока информации о том, что же войдет в это подмножество и как SafeD будет реализован в D-компиляторах. См.анонс
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>Здравствуйте, remark, Вы писали:
R>>SafeD — The Safe Subset of D: R>>http://www.digitalmars.com/d/2.0/safed.html
R>>В принципе логичное развитие для системного языка — для С/С++ такое неоднократно предлагалось. R>>Вообще удобно, если в компиляторе есть переключатель "безопасный/небезопасный режим". Т.е. пишешь всегда на одном языке, но обычно ограничиваешь только некоторым подмножеством (всё ещё очень мощным). А если уж никуда без указателей, то в каком-то отдельно взятом модуле включаешь небезопасный режим. К этому модулю тогда и внимание более пристальное при проверке/тестировании.
E>Нужно заметить, что за несколько дней после публикации анонса данной статьи в digitalmars.D.announce не было пока информации о том, что же войдет в это подмножество и как SafeD будет реализован в D-компиляторах. См.анонс
Они как раз сейчас просматривают все фичи и решают, что можно включать:
We are examining each feature of D to find the largest possible subset of the language that is memory safe. Then, if this subset is itself a practical language, D can be a major contribution towards eliminating
malware.
R>We are examining each feature of D to find the largest possible subset of the language that is memory safe. Then, if this subset is itself a practical language, D can be a major contribution towards eliminating
R>malware.
Если чесно, то лучше бы Вальтер таки сосредоточился на чем-нибудь одном: либо довел до ума версию D1.0, либо довел до релиза версию D2.0 (это предпочтительнее). А то сейчас он еще и SafeD изобретет, а потом еще и SafeD2.0 сделает, несовместимый ни с D2.0, ни с SafeD1.0
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
remark пишет: > "безопасный/небезопасный режим". Т.е. пишешь всегда на одном языке, но > обычно ограничиваешь только некоторым подмножеством (всё ещё очень > мощным). А если уж никуда без указателей, то в каком-то отдельно взятом > модуле включаешь небезопасный режим. К этому модулю тогда и внимание > более пристальное при проверке/тестировании.
Примерно так оно уже и реализовано в Аде. Небезопасные фичи выделяются
по своим Unchecked_ префиксам. Можно хоть grep'ом программные системы
сканить, насквозь видно. Но для более полной информации о свойствах
исходного кода, конечно, лучше применять gnatcheck
и AdaControl
(обе бесплатны). А если нужна верификация, тогда исходный код пишется на
подмножестве Ады со специальными вставками в комментариях (это
подмножество со вставками называется SPARK), затем
исходный код проверяется утилитами SPARK, после чего, в принципе,
исходный код можно компилировать любым компилятором Ады.
–––––––––––––––––––––––––––––––––
В Обероне ЕМНИП можно тоже отследить все обращения к SYSTEM.*
Приятно, что всё больше и больше языков стремятся к безопасности.
Здравствуйте, eao197, Вы писали:
E>Если чесно, то лучше бы Вальтер таки сосредоточился на чем-нибудь одном: либо довел до ума версию D1.0, либо довел до релиза версию D2.0 (это предпочтительнее). А то сейчас он еще и SafeD изобретет, а потом еще и SafeD2.0 сделает, несовместимый ни с D2.0, ни с SafeD1.0
Здравствуйте, FR, Вы писали:
FR>Здравствуйте, eao197, Вы писали:
E>>Если чесно, то лучше бы Вальтер таки сосредоточился на чем-нибудь одном: либо довел до ума версию D1.0, либо довел до релиза версию D2.0 (это предпочтительнее). А то сейчас он еще и SafeD изобретет, а потом еще и SafeD2.0 сделает, несовместимый ни с D2.0, ни с SafeD1.0
FR>Не понял, разве SafeD это не подмножество D ?
Должно быть подмножество. Но ведь SafeD 1.0 может определять несколько иное подмножество, чем SafeD 2.0
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
FR>>Не понял, разве SafeD это не подмножество D ?
E>Должно быть подмножество. Но ведь SafeD 1.0 может определять несколько иное подмножество, чем SafeD 2.0
Ну это ладно, нен страшно. Хотя лучше было бы автору просто задушить D1.0 и довести побыстрее до ума D2.0
Здравствуйте, FR, Вы писали:
FR>>>Не понял, разве SafeD это не подмножество D ? E>>Должно быть подмножество. Но ведь SafeD 1.0 может определять несколько иное подмножество, чем SafeD 2.0 FR>Ну это ладно, нен страшно. Хотя лучше было бы автору просто задушить D1.0 и довести побыстрее до ума D2.0
Ага, и как раз к моменту, когда оно будет почти готово — начать разрабатывать D3
Еще одно доказательство того, что Валтер просто не имел необходимой базы знаний прежде чем занялся Ди. Он постигает все на собственной шкуре или из дискуссий со знающими людьми. От того в его работе нет последовательности и не противоречивости. Море грамотных решений он упустил и сейчас замечая их пытается впихнуть в уже имеющееся решение.
Результат предсказуем — спонтанное развитие проекта с непредсказуемыми поворотами в будущем. Плюс все проблемы "лоскутных" решений.
Радует только одно. Человек развивается. Возможно, что через несоклько лет он поймет свои заблуждения и вместо того чтобы пытаться создать улучшенный C++ с именем D, попытается создать просто хороший и современный язык. Лучше бы чтобы он носил другое имя. Ну, скажем N.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, remark, Вы писали:
R>Вообще удобно, если в компиляторе есть переключатель "безопасный/небезопасный режим". Т.е. пишешь всегда на одном языке, но обычно ограничиваешь только некоторым подмножеством (всё ещё очень мощным). А если уж никуда без указателей, то в каком-то отдельно взятом модуле включаешь небезопасный режим. К этому модулю тогда и внимание более пристальное при проверке/тестировании.
Здравствуйте, VladD2, Вы писали:
VD>Еще одно доказательство того, что Валтер просто не имел необходимой базы знаний прежде чем занялся Ди. Он постигает все на собственной шкуре или из дискуссий со знающими людьми. От того в его работе нет последовательности и не противоречивости. Море грамотных решений он упустил и сейчас замечая их пытается впихнуть в уже имеющееся решение.
Здесь ты не совсем прав, он с самого начала декларировал и в общем делал так чтобы у языка было большое безопасное подмножество, единственная его ошибка в том что он сразу жестко не разделил безопасные и опасные подмножества.
VD>Результат предсказуем — спонтанное развитие проекта с непредсказуемыми поворотами в будущем. Плюс все проблемы "лоскутных" решений.
Для успеха языка это совсем не важно, такие же лоскутные C++ и питон вполне процветают, а многие стройные и красивые языки вовсе нет.
VD>Радует только одно. Человек развивается. Возможно, что через несоклько лет он поймет свои заблуждения и вместо того чтобы пытаться создать улучшенный C++ с именем D, попытается создать просто хороший и современный язык. Лучше бы чтобы он носил другое имя. Ну, скажем N.
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, FR, Вы писали:
FR>>Не это http://ru.wikipedia.org/wiki/Ложная_память ?
AF>Это наверно шутка? Ну тогда ха-ха.