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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 75 ]  На страницу Пред.  1, 2, 3, 4, 5
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 28, 2010 00:18 
Не в сети
Аватара пользователя

Зарегистрирован: Пн ноя 27, 2006 22:09
Сообщения: 115
Откуда: Ростов-на-Дону
Благодарил (а): 0 раз.
Поблагодарили: 4 раз.
Kopa писал(а):
Верификация поможет только не завершится программе "чудным способом" а как при этом
отработает изменённый код может быть не известно т.к. при этом пришлось
бы вводить в верификатор семаниескую модель необходимого кода, а возможно ли это? ( т.к решений много а интерфейс сопряжения с внешним кодом может оставаться один )


Первый этап - введение системы ненавязчивой статической типизации. А дальше — решаем проблемы по мере их поступления. Возможно пригодятся вариации на тему static assertion, алгебраические типы данных...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 28, 2010 00:21 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Хищник писал(а):
вопрос писал(а):
собственно - чем это отличается от того подхода, который уже существует? верифицируемое - верифицировать, остальное- тестировать. Чем это отрицает верификацию в форте?

Да ничем не отличается. Вопрос только в трудоемкости разработки верификатора, которая представляется излишней, а получаемые выгоды оказываются не так и важны.
Отчего же большинство промышленных систем разработки используют верификаторы?

Хищник писал(а):
вопрос писал(а):
п сути дела, никакого препятствия принципиального плана это не создаёт - в файл должны загружаться векторы, которые перед сохранением в файл верифицировались и пусть программист сам себе враг, если создал файл иным путём, т.е. самой верификации это не опровергает.

Хорошо, а как верификатор узнает, правильные данные содержатся в файле, или нет? Если он видит только имя файла. Мало того, что содержимое можно изменить руками, ведь сам файл может еще не существовать (например, это файл, сохраняемый в результате работы программы при первой настройке таблицы).

НУ, нужно спросить - каково происхождение этих проблем. Кто источник проблем :!: а существование файла верифицировать можно.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 28, 2010 00:21 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Kopa писал(а):
Верификация поможет только не завершится программе "чудным способом" а как при этом отработает изменённый код может быть не известно т.к. при этом пришлось бы вводить в верификатор семантическую модель необходимого кода, а возможно ли это?

да, действительно, речь идет о ловле зевков. Логика работы кода остается на совести программиста.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 28, 2010 01:05 
Не в сети
Administrator
Administrator
Аватара пользователя

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

Потому что с этими системами работают много программистов (т.е. тех, кто использует инструменты, а не разрабатывает их), поэтому общий выигрыш в человеко-часах оказывается существенным.
вопрос писал(а):
НУ, нужно спросить - каково происхождение этих проблем. Кто источник проблем а существование файла верифицировать можно.

Нет, это немного не то. Под верификацией понимается некий процесс, который, анализируя код, пытается понять, корректен ли он. Причем заранее понять, а не выполняя и наталкиваясь на проблемы.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 28, 2010 01:23 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
Нет, это немного не то. Под верификацией понимается некий процесс, который, анализируя код, пытается понять, корректен ли он. Причем заранее понять, а не выполняя и наталкиваясь на проблемы.
Именно, и корректен ли файл (содержимое) или корректно ли указание на его наличие - тоже. Скажем, если я под GCC попытаюсь написать
#include no_present_file.my_fantasy
и компилятор выдаст мне error, то будет ли это верификацией кода?
в узком смысле -нет, т.к. верификация касается в основ. алгоритма и синтаксических момент ов
но если я использую несуществующее имя переменной чем это по сути отличалось бы от несуществующего имени файла?

Цитата:
Потому что с этими системами работают много программистов (т.е. тех, кто использует инструменты, а не разрабатывает их), поэтому общий выигрыш в человеко-часах оказывается существенным.
поэтому и программисты одиночки тозже пользуются теми же ?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 28, 2010 02:25 
Не в сети
Administrator
Administrator
Аватара пользователя

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

Нет, верификация касается других аспектов. Например, если я выделю память под переменную с плавающей точкой, а потом прочитаю содержимое через @, то программа будет синтаксически корректна, но вернет мне не округленное число, а двоичное представление числа с плавающей точкой. Или, объявив VARIABLE A VARIABLE B, я могу забыть, что это адреса, и вместо A @ B @ + написать A B +. Это тоже корректно с точки зрения языка, но не то, что я ожидал.
вопрос писал(а):
Цитата:
Потому что с этими системами работают много программистов (т.е. тех, кто использует инструменты, а не разрабатывает их), поэтому общий выигрыш в человеко-часах оказывается существенным.
поэтому и программисты одиночки тозже пользуются теми же ?

А их как бы никто и не спрашивает :) Системы верификации разрабатывают потому, что есть достаточное количество потребителей, а не потому что много одиночек были бы не против с таким поработать.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 28, 2010 10:34 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
Нет, верификация касается других аспектов. Например, если я выделю память под переменную с плавающей точкой, а потом прочитаю содержимое через @, то программа будет синтаксически корректна, но вернет мне не округленное число, а двоичное представление числа с плавающей точкой. Или, объявив VARIABLE A VARIABLE B, я могу забыть, что это адреса, и вместо A @ B @ + написать A B +. Это тоже корректно с точки зрения языка, но не то, что я ожидал.
Я полагаю, и то и другое верификация, но понятно, что второе - более точно.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 28, 2010 10:43 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
по всей видимости, верификацией хочется называть проверку правильности кода помимо синтаксиса ("более чем проверка синтаксиса")


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 28, 2010 11:21 
Не в сети
Аватара пользователя

Зарегистрирован: Вт сен 11, 2007 11:07
Сообщения: 187
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
WingLion писал(а):
а сколько времени будет убито на написание стековых коментариев там, где это формально и не нужно?

зачем мне стековый коментарий в слове: : SQR DUP * ; если его действие и так очевидно?


времени не будет убито нисколько, ибо уже известны dup и *, а на их основе система сама сможет вывести тип, что-нибудь вроде ( n -- n' ) или даже ( n -- n*n ) или даже ( n -- n^2 ). гораздо более неприятны фрагменты вроде:

Код:
: ?ferma ( n n' n'' -- f ) ..... ;
: .............. DO I J K ?ferma IF LEAVE THEN LOOP .............


вот в таких местах и понадобятся аннотации от человека. кроме того, кто сказал, что надо обходиться только стековым комментарием? на самом деле в пакет для проверки следует включать стек возврата, переменную STATE (если более точно, то режимы исполнения/компиляции/отложенной_компиляции и т.п.)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 28, 2010 13:49 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
garbler писал(а):
переменную STATE (если более точно, то режимы исполнения/компиляции/отложенной_компиляции и т.п.)

нет, вот это как раз не надо выделять. То есть предлагаю рассматривать уже откомпилированный ШК (без оптимизаций), т.к. это несколько упрощает дело - не надо следить за контекстом, например. И часть ошибок (в основном синтаксических) уже поймана.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 28, 2010 14:19 
Не в сети
Аватара пользователя

Зарегистрирован: Вт ноя 06, 2007 21:23
Сообщения: 227
Откуда: Екатеринбург
Благодарил (а): 4 раз.
Поблагодарили: 7 раз.
Читал, читал... и ничего не понял (
Если речь идет о проверке уже готового ExE-файла, то тут все слова, что написаны в программе должны быть точками входа из вне.
Если же речь идет о верификации стековых диаграмм и написанного кода, то тут могу только посочувствовать идее в целом.
Вообще верификации ФОРТ-программ идет поэтапно на стадии разработки каждого нового слова вносимого в словарь, который может быть не один. Далее корректность работы алгоритма определяется подачей на вход слова некоторого тестового набора значений. Самое что трудное встречалось - верная(правильная) оптимизация приводила к искажению значений базовых адресов относительно которых считается смещение в памяти. Насчет баланса открывающих и закрывающих слов, типа BEGIN UNTIL и т.п., как быт елси мы вносим новую управляющую конструкцию на их основе? самое непонятное,- что делать c IMMEDIATE-словами?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 28, 2010 16:26 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Alexander писал(а):
Насчет баланса открывающих и закрывающих слов, типа BEGIN UNTIL и т.п., как быт елси мы вносим новую управляющую конструкцию на их основе? самое непонятное,- что делать c IMMEDIATE-словами?

ты не понял.
пишем, к примеру:
: something ( n n u addr --> addr u ) ... ;
слово собралось, стековая диаграмма запомнилась где-то в памяти отдельно от откомпилированного кода.
на этом этапе верификации нет, а стековая диаграмма в принципе может отсуствовать.
дальше пишешь:
' something verify
и тебе сообщают, что в одном из вариантов на ветвлении возвращается не addr u а addr u n - то есть не совпадают стековая диаграмма и то, что получается при исполнении.
второй момент, тебе сообщается, что внутри слова производится попытка сохранения значения не по адресу.
как миниму это уже было бы очень полезно.
понятно, что вычисление производится для всех слов, используемых в something
понятно, что будут неверифицируемые случаи, или частично верифицируемые: if execute then, тут придется либо верить приведенной стековой диаграмме.
такая вот идея

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 28, 2010 17:54 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
mOleg писал(а):
нет, вот это как раз не надо выделять. То есть предлагаю рассматривать уже откомпилированный ШК (без оптимизаций), т.к. это несколько упрощает дело - не надо следить за контекстом, например. И часть ошибок (в основном синтаксических) уже поймана.


Не будет неувязок с CREATE ... DOES> конструкцией?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 28, 2010 18:11 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Kopa писал(а):
Не будет неувязок с CREATE ... DOES> конструкцией?

а почему они должны быть?
то есть понятно, что после DOES> должна быть стековая диаграмма, либо она должна будет вычисляться.
ведь в коде в CREATE части находится call на does> часть.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: О верификации Форт-кода.
СообщениеДобавлено: Пт янв 29, 2010 11:53 
mOleg писал(а):
Решил создать тему, куда можно будет складывать ссылки и вопросы по поводу верификации кода.
Ссылка немного в сторону от темы, но может быть пригодится… http://www.ict.nsc.ru/ws/YM2002/4760/


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

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


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

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


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

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