Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пн окт 14, 2019 21:49

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 36 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Вс янв 27, 2008 22:36 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Хищник писал(а):
Такое сравнение было в книге Семенова, причем действительно с пояснениями, где и что. FORGET же, как мне думается, съели по причине появления достаточного количества памяти, чтобы безболезненно хранить разные версии слова. Все равно с клавиатуры много не наколотить...


странно... с клавиатуры можно легко набрать строчку:
<pre>
INCLUDE 10Mb_source_file.frt
</pre>

/me раньше свои проекты на форте писал со строчек
<pre>
FORGET КАКАЯ-НИТЬ-ФИГНЯ
: КАКАЯ-НИТЬ-ФИГНЯ ." ик-пук-траляля" ;
</pre>

И при повторном инклюде старое забывалось, а новое компилилось..

a на стандарте ANS-94 оно уже не канает :(

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Последний раз редактировалось WingLion Вс янв 27, 2008 22:48, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс янв 27, 2008 22:39 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6800
Благодарил (а): 16 раз.
Поблагодарили: 110 раз.
Зато появился MARKER. Его можно сделать "выразительным", типа COLD-RESTART, SOFT-RESTART, RELOAD-PARAMETERS.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср фев 20, 2008 14:47 
Не в сети

Зарегистрирован: Вс дек 02, 2007 17:31
Сообщения: 442
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Раз уж пошел разговор (в другой ветке), то выступлю, сам того не желая, в роли адвоката ANSI. И так:

1. Почему некоторые слова возвращают код ошибки на стеке а не вызывают exception?
Существуют два вида исключений: ошибки программы, кторые возникают вследствие неверных действий программы и делают ее дальнейшее выполнение бессмысленным или даже опасным; и штатные, когда ошибка может возникнуть вне зависимости от корректности действий программы. Первый случай, это, например переполнение стека, AV, деление на 0. Второй случай часто возникает при работе с файлами, поскольку при написании программы вы никак не можете гарантировать что ошибка не возникнет. При этом нет необходимосты прерывать работу программы, и часто можно обработать такую ошибку. Позиция коммитета такова, что если мы даем возможность работать с файлами, мы обязаны также дать возможность обрабатывать их ошибки в программе. Если бы слова работы с файлами выполняли THROW , то такая обработка могла бы выглядеть:
Код:
: ?DISK3 ( -- ior ) S" A:\DISK3ID.INI" R/O ['] OPEN-FILE CATCH DUP IF ." Insert Disk3 and try again." THEN ;

Но Exception wordset опциональный, и может отсутствовать вне зависимости от присутствия File-access wordset в системе. Поэтому, был выбран самый простой метод обработки ошибок.
ЗЫ Всего в стандарте 2 набора слов использующих такой подход это работа с файлами и выделение памяти, по понятной причине. Остальные слова не возвращают код ошибки (кроме CATCH) а выполняют THROW , в случае его доступности.

2. На счет измерения файлов в символах а не одресных единицах, понять замысел коммитета сложнее. Единственное возможное обьяснение которое я нашел упрятано вот тут:
Цитата:
A.11.6.1.0765 BIN
Some operating systems.....
....The Technical Committee has declined to address issues regarding the impact of “wide” characters on the File and Block word sets.

Из этого следует, что File-access wordset поддерживает character размером только в 1 байт, а значит его размер равен address unit, поскольку последний не может быть больше за character, но и меньше 1 байта не бывает (практически).
Хотя формально это не декларируется, и причины такого решения не обьясняются. Что, конечно, не есть хорошо.

3. Отсутствие FORGET ... Кто сказал что он отсутствует? Он есть, просто в следующих версиях его похерят. Причина проста - далеко не во всех реализациях Форта его возможно реализовать. Например, если у вас разделенная память для кода и данных, то получив адресс слова которое надо забыть, вы можете определить куда откотить указатель на область кода и словарей, но если данно слово не содеражало данных (создано не CREATE), то вы не будете знать куда откатывать область данных. Конечно, можно в словарной статье, для всех слов сохранять положения всех областей памяти, вот только это слишком жестокое требование для одного только слова FORGET, к тому носящего утилитарный характер (используется только при разработке). Альтернативный механизм с MARKER-ами позволяет сохранять в теле маркера сколь угодно точную и развернутую информацию о состоянии системы к которому надо откатиться. Словарные статьи при этом не страдают.

4.Контекст поиска не требует более 8 списков слов. Заметьте - это нижнее ограничение. Вы можете его снять вообще в своей реализации. На практике, большинство программ, особенно для малых систем не используют больших количество словарей одновременно в контексте поиска. Приведенный пример с ООП, конечно верный, но поскольку реализация ООП выходит за пределы АНСИ, то и принцип работы поиска по словарям тоже может быть изменен. Причем, во-первых - АНСИ дает достаточный инструментарий для создания практически любой системы поиска; во-вторых - не все ООП именно так работают со словарями.
Следует помнить, что набор слов управления поиском (Search order word set) является не завершенным механизмом, а инструментом создания таких механизмов. Там даже слова VOCABULARY нет, но оно легко создается, при необходимости. Так же и все другое.

5.Стандарт должен содержать тестовы пример. Совершенно верно. И АНСИ их содержит. Но очень, очень мало. Пару штук буквально, по памяти в локалзах, в комментарии к ], в CASE, и еще парочку. Совершенно согласен, что этого катастрофически мало, поскольку неоднозначных моментов есть много. К тому же, те что есть не вынесены в отдельный раздел, как того требуется.

_________________
Am I evil? I'm man - yes I am! © James Hatefield


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Критика ANS-94
СообщениеДобавлено: Сб фев 26, 2011 21:06 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 588
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 23 раз.
Хищник писал(а):
Итак, что хотелось бы видеть? Точку в прдставлении числа как признак формата с плавающей точкой. И, если уж так хочется, двоеточия для обозначения чисел двойной длины.

А почему именно с плавающей точкой ? Ведь это-же числа с плавающей запятой !
Это у пиндосов floating point, а у нас - плавающая запятая.
Добавь к существующему формату записи литералов в Форте правило - запятая в записи
числа означает число с плавающей запятой. И получается совместимость сверху
вниз с существующими стандартами (кроме точки для чисел двойной точности
и буквы E для действительных чисел с мантиссой и показателем степени теперь
будет ещё и запятая).


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Критика ANS-94
СообщениеДобавлено: Сб фев 26, 2011 21:36 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6800
Благодарил (а): 16 раз.
Поблагодарили: 110 раз.
Ethereal писал(а):
А почему именно с плавающей точкой ? Ведь это-же числа с плавающей запятой !
Это у пиндосов floating point, а у нас - плавающая запятая.

Я не знаю, кто такие пиндосы с точки зрения технического русского языка. Что касается IEEE-754, описывающего формат с плавающей точкой, то там именно точка. Что не отменяет возможности использования запятой, если она соответствует национальным стандартам.
Ethereal писал(а):
Добавь к существующему формату записи литералов в Форте правило - запятая в записи
числа означает число с плавающей запятой. И получается совместимость сверху
вниз с существующими стандартами (кроме точки для чисел двойной точности
и буквы E для действительных чисел с мантиссой и показателем степени теперь
будет ещё и запятая).

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Критика ANS-94
СообщениеДобавлено: Сб фев 26, 2011 23:05 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июн 25, 2009 11:12
Сообщения: 412
Благодарил (а): 41 раз.
Поблагодарили: 8 раз.
Ethereal писал(а):
А почему именно с плавающей точкой ? Ведь это-же числа с плавающей запятой !
Это у пиндосов floating point, а у нас - плавающая запятая.

Россiйскiй фортъ, н? такъ-ли?


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

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


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

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


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

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