Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт апр 16, 2024 20:16

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Старая статья о разработке компилятора С++
СообщениеДобавлено: Пт май 31, 2013 01:28 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
gudleifr писал(а):
KPG писал(а):
1. когда то может и по Дейкстре, если времени "вагон" для её построения и доказательства корректности.
2. используя простые понятные конструкции, которые можно "контролировать"
(1) противоречит (2). И уж всяко, это будет не Forth.

Конечно противоречит. Это разные подходы.
На уровне базиса языка Форт, в какой то степени близок к 2, а расширения только полностью "верифицированные" и не усложнённые в своих вариантах применения. Даже ограниченных.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Старая статья о разработке компилятора С++
СообщениеДобавлено: Пт май 31, 2013 01:32 
KPG писал(а):
На уровне базиса языка Форт, в какой то степени близок к 2, а расширения только полностью "верифицированные" и не усложнённые в своих вариантах применения. Даже ограниченных.
Даже не знаю, что здесь больше не в порядке: грамматика или смысл.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Старая статья о разработке компилятора С++
СообщениеДобавлено: Пт май 31, 2013 01:34 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
gudleifr писал(а):
KPG писал(а):
На уровне базиса языка Форт, в какой то степени близок к 2, а расширения только полностью "верифицированные" и не усложнённые в своих вариантах применения. Даже ограниченных.
Даже не знаю, что здесь больше не в порядке: грамматика или смысл.

А есть грани чёткого разделения между ними? :)
Оставайтесь Дейкстра-ординарным.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Старая статья о разработке компилятора С++
СообщениеДобавлено: Пт май 31, 2013 10:55 
KPG писал(а):
А есть грани чёткого разделения между ними? :)
Т.е. отсутствие сказуемого в предложении есть признак правильности написанного? Извините.
KPG писал(а):
Оставайтесь Дейкстра-ординарным.
Это не ко мне, это к терапевту Зингеру.

Рассмотрим простой пример (с запасного форума):
Код:
VARIABLE TEST3
TEST3 2000 ALLOCATE THROW !

Здесь заведомо есть ошибка - неправильное расположение значений на стеке; но даже для того, чтобы ее найти, надо в лучшем случае рассматривать не только сами слова, но и их стековые комментарии, а в худшем - отслеживать "ход исполнения". Если адрес переменной рассчитывается более сложно или кусок кода между ней и расчетом значения нетривиален, то заметить ошибку гораздо сложнее.
Но, самое интересное здесь, что данный простой! фрагмент содержит в себе еще несколько потенциально опасных моментов:
1. Если значения CURRENT и CONTEXT не совпадают, то вполне вероятно, что вызывается не тот TEST3, который мы только что определили.
2. Поведение THROW может зависеть от охватывающего CATCH.
3. Выделение массива в 2000 байтов требует где-то в дальнейшем проверок, что при заполнении не будет выхода за его пределы. Здесь уместнее применение константы, т.к. нет никакой гарантии, что при правке программы размер массива не поплывет.
Список можно продолжить.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Старая статья о разработке компилятора С++
СообщениеДобавлено: Пт май 31, 2013 13:46 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
KPG писал(а):
Интересно как может выглядеть Lint по функциональности для Форта и какие сообщения об опасных или не очень местах будет выводить? Как можно формализовать для этого инструментарий?


Gudleifr поднимает правильные вопросы. Программы не будут писаться сами, и не может быть волшебного средства, с появлением которого Форт вдруг "резко разовьется" сам по себе. Сейчас для решения мелких проблем существует интерактивный режим, в котором можно вылавливать ошибки, связанные с неправильным помещением на стек, неверным вычислением адреса. Control-flow стек сам следит за целостностью структур управления. Дальше уже идет алгоритмика и ошибки интерфейсов (в неправильном порядке вызваны слова, не проверен результат работы и т.п.).


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB