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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 638 ]  На страницу Пред.  1 ... 39, 40, 41, 42, 43

Форт мертв?
Давно уже 12%  12%  [ 4 ]
Еще пока нет, но уже скоро 6%  6%  [ 2 ]
Форт для меня живее всех живых 82%  82%  [ 28 ]
Всего голосов : 34
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Ср дек 26, 2007 13:28 
Не в сети

Зарегистрирован: Вс дек 02, 2007 17:31
Сообщения: 442
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Kopa писал(а):
А то, что препроцессор Cи - это отдельный исполняемый модуль не интегрируемый с основным компилятором - умалчиваем?
А что это меняет?
Kopa писал(а):
Не говоря уже об его недоразвитости
Почему же, я не говорю что он сильно развит, а только про факт что в результате синтаксис С жестким считать нельзя.
Kopa писал(а):
Понимается в виду Си препроцессор? Тогда дайте ссылку на эту реализацию, чтобы обрабатывать файлы С++ и компилировать их на выполнение с помощью Си компилятора.( мне интересно )
Спросите и Страуструпа. Я к этому отношения не имею.
Kopa писал(а):
Но в необходимой мере используют эту возможность
Верно, и в С возможности препроцессора тоже используются по мере необходимости.
Kopa писал(а):
К какому понятию относится открытие Америки? ( подозреваю, что к изобретению
А что, Америка до ее открытия не существовала? :shock: Думаю, что таки существовала, значит это "открытие".
Kopa писал(а):
P.S. То, что на любом языке программирования можно смоделировать обработку другого языка сути не меняет.
Я не знаю про какую суть вы говорите, но этот разговор начал Михаил, заявив что Форт не является языком программирования. По вашему это подтверждается тем что "что на любом языке программирования можно смоделировать обработку другого языка"? :?

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


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

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
Forthware писал(а):
Считаете что Форт 1970 года в котором еще не было шитого кода Фортом не был? Или что SPF Фортом не является? Тогда уточните, как именно должен транслироваться настоящий Форт.


Разновидности шитого кода это разновидности Фортов. Особенностью конкретной реализации можно пользоваться
(если очень хочется). Устройство форт-системы определяет семантику Форта. Вообще, для полноценного
использования форт-системы, программы строятся из понимание ее устройства. Даже, если ты
не пользуешься ее особенностями по отношению к другим видам форт-систем. Пока не разберешься
с устройством одной из Форт-систем (исходниками) не поймешь идею Форта.
В SPF в режиме оптимизации, используется логический шитый код. Дело в том, что вся компиляция
производится по средствам слова COMPILE, , а скомпилированная таким образом программа работает так-же,
как если-бы COMPILE, компилировала подпрограммный шитый код.
Тоже касается и устройства словарей.


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

Зарегистрирован: Вс дек 02, 2007 17:31
Сообщения: 442
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Mihail писал(а):
Разновидности шитого кода это разновидности Фортов.
Ну так обязан ли Форт использовать разновидность шитого кода?
Mihail писал(а):
В SPF в режиме оптимизации, используется логический шитый код.
Что значит "логический шитый код"? Я такой разновидности не знаю. Возможны следующие способы компиляции определений высокого уровня в Форте:
1. прямая текстовая (сохраняется непосредственно текст определения)
2. прямой шитый код (последовательность ссылок на машинный код обработчиков)
3. косвенный шитый код (последовательность ссылок на ячейку хранящую адрес машинного кода обработчика)
4. байт код (последовательность номеров ячейки в таблице, хранящей адреса машинного кода обработчика)
5. подпрограммный шитый код (последовательность машинных инструкций вызова подпрограмм)
6. прямая компиляция (последовательность фрагментов машинного кода и вызовов подпрограмм)
7. оптимизированная компиляция (машинный код, который невозможно четко разделить на отдельные слова)
8. трансляция в промежуточный язык (исходник другого языка, может быть как текстовым так и бинарным)

Семантику соответствующую стандарту 79 и 83 можно реализовать исключительно вариантами 2 и 3. Семантику стандарта ANSI можно реализовать с помощью любого (!) из перечисленных методов.
Семантика SPF не соответствует стандартам 79 и 83 и не соответствует семантике реализаций с шитым кодом (2 и 3).
Таким образом, подпрограммный шитый код в Форте не можно относить к той же семантической группе что и другие виды шитого кода (байт код тоже).
Практический пример: семантика реализаций с шитым кодом допускает компиляцию токена в текущее определение с помощью ",". Это возможно только в реализациях 2 и 3.
Ваша реализация не имеет семантики шитого кода в общем случае. А подпрограммный на самом деле шитым кодом не является - шитый код это последовательность ссылок на обработчки, которой последовательность call-ов, строго говоря не является.
Ну а то что есть такое название как "подпрограммный шитый код", вопрос термина, не больше. "Каспийское море" тоже морем не является, хоть это слово и присутствует в его названии.
Так что вы ошибаетесь - SPF не использует шитый код и его семантика шитому коду не соответствует.

И все же, какой из перечисленных методов недопустим для Форта? ANSI допускает все, вы нет? :?

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт дек 27, 2007 12:33 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
Forthware писал(а):
Практический пример: семантика реализаций с шитым кодом допускает компиляцию токена в текущее определение с помощью ",". Это возможно только в реализациях 2 и 3.


А сели я для экономии памяти использую шитый код, размер которого меньше CELL ?
(или больше, если значение CELL не позволяет охватить все адресное пространство).
И зачем использовать "," , когда полагается использовать "COMPILE," ?

Forthware писал(а):
А подпрограммный на самом деле шитым кодом не является - шитый код это последовательность ссылок на обработчки, которой последовательность call-ов, строго говоря не является.


Где это ты нашел такое определение шитого кода? В команде call как-раз ссылка есть, в отличие от
свернутого шитого кода.

Как я понимаю, "логический" в программировании это типа "мнимый".
Логический диск, тоже диском не является.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт дек 27, 2007 18:33 
Не в сети

Зарегистрирован: Вс дек 02, 2007 17:31
Сообщения: 442
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Mihail писал(а):
А сели я для экономии памяти использую шитый код, размер которого меньше CELL ?
Семантика такой реализации будет отличаться от семантики реализаций с шитым кодом. Токен должен быть CELL , а скомпилированное определение должно быть последовательностью токенов. Такова была модель шитого кода в Форте. Поэтому, не смотря на то что байт код или табличный шитый код на самом деле является шитым кодом, он тоже не относится к той же семантической группе что и прямой или косвенный шитый код в Форте (за исключением тех случаев когда он представляется в виде последовательности полноформатных ячеек, что в общем случае делать не выгодно).
Чтобы не скатиться в философские размышления на тему "шитости" шитого кода, предлагаю не выходить за рамки обсуждаемой нами области, а именно, реализаций Форта.
Mihail писал(а):
(или больше, если значение CELL не позволяет охватить все адресное пространство).
А вот такого даже ANSI94 делать не разрешает. CELL в Форте всегда ориентировался на разрядность адресса системы а не на разрядность CPU. Поэтому на 8ми битных машинах 8битного форта никто не делал. CELL ни в какой реализации не может быть меньше разрядности адреса. В ANSI это тоже так. Теоретически, конечно, такую реализацию создать можно (и я согласен что это тоже будет версия Форта), но ее семантика будет далека от всего что существовало раньше.
Mihail писал(а):
И зачем использовать "," , когда полагается использовать "COMPILE," ?
В ФИГ, 79, ПолиФорте такого слова нет, в 83 тоже. Броди о нем ничего не слышал (когда писал свои книги). Оно узаконено в ANSI именно для того, чтобы разрешить создание реализаций не на шитом коде. Но дело не в нем, а в том, что семантика других слов, например "," в SPF не соответствует семантике этого слова в реализациях с шитым кодом. И не только, как там обстоят дела с COMPILE ? ;)
Mihail писал(а):
Где это ты нашел такое определение шитого кода?
Не помню. Всю жизнь его знал. Но раз у тебя оно другое, изложи! Подумаем кто прав. :)
Mihail писал(а):
В команде call как-раз ссылка есть, в отличие от свернутого шитого кода.
В комманде call есть ссылка, и в консерве есть рыба, но не только. Последовательность call-ов есть машинный код. Шитый код не есть машинный код. В процесоорах выполняющих непосредственно шитый код, он уже шитым кодом не называется а называется машинным кодом. Одиночный элемент шитого кода не есть машинной коммандой а ссылкой (указателем, адрессом, смещением, любой комбинацией из них). Уровень абстракции на который намекаете вы приводит меня к мысли, что шитый код это последовательность кусков информации, которые указывают на определенное действие. И ничего больше, поскольку формат и размер этих кусков роли не играет, и даже является постоянным. Однако если это так, тогда ЛЮБОЙ машинный код является шитым код, что не есть верно.
Mihail писал(а):
Как я понимаю, "логический" в программировании это типа "мнимый". Логический диск, тоже диском не является.
Хорошо. Тогда у тебя "логический подпрограммный шитый код" а не "логический шитый код". Согласен?

Ну так вот, к чему это мы? Вы продолжаете считать что Форт можно реализовать только с помощью шитого кода? А то получается, что сначала вы говорите о том, что это так, и, например, прямая компиляция текста уже не Форт, то тепер вспомнили про вариант шитого кода с токенамы большими за CELL , чего даже сверх либеральный ANSI, позволяющий и текстовую компиляцию, не допускает? В чем ваша мысль? :?
Ну и мне все еще интересно:
Forthware писал(а):
И все же, какой из перечисленных методов недопустим для Форта? ANSI допускает все, вы нет?

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


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

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
Forthware писал(а):
Mihail писал(а):
Где это ты нашел такое определение шитого кода?
Не помню. Всю жизнь его знал. Но раз у тебя оно другое, изложи!


Ну попробую:
По моему, шитый код, это код-команда виртуальной форт машины (ВФМ). Соответственно ВФМ это интерпретатор шитого кода.
В качестве ВФМ может выступать и любая нативная машина. Особенностью шитого кода является то, что он может быть
представлен в качестве вызова подпрограммы на том-же шитом коде. Шитый код, как правило не имеет операндов,
в исключительных случаях, операндами занимается сама вызванная команда.

Forthware писал(а):
И все же, какой из перечисленных методов недопустим для Форта? ANSI допускает все, вы нет?


Я тоже.


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

Зарегистрирован: Вс дек 02, 2007 17:31
Сообщения: 442
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Mihail писал(а):
По моему, шитый код, это код-команда виртуальной форт машины (ВФМ). Соответственно ВФМ это интерпретатор шитого кода.
Хм... По-моему не годится. Во первых, шитый код не есть привелегией именно Форт машины, поэтому слово Форт в определении присутствовать не должно. Но, допустим, заменим ВФМ на ВМ, тогда - во вторых если шитый код это машинный код виртуальной машины и больше ничего, тогда любой код который может вообще существовать в природе в совершенно любом представлении можно назвать шитым кодом по такому определению, поскольку возможно создать виртуальную машину которая будет непосредственно его выполнять. Понимаете? Получается что исходный АSCII текст написанный на С это уже шитый код, что бинарный исполняемый код х86 это тоже шитый код, поскольку возможно создать виртуальную машину как для первого так и для второго (Bochs например).
Mihail писал(а):
В качестве ВФМ может выступать и любая нативная машина.
Еще лучше - в таком случае из сказанного выше получается что токен шитого кода является машинным кодом нативной машины, то-есть - любой машинный код нативной машины является шитым кодом? Если не любой, тогда где грань?
Mihail писал(а):
Особенностью шитого кода является то, что он может быть представлен в качестве вызова подпрограммы на том-же шитом коде.
Это случайно не есть особенность любого языка допускающего подпрограммы? И системы комманд всех современных процессоров обладают этой особенностью, и все (функциональные) языки высокого уровня. Так что это не есть особенность совсем.
Mihail писал(а):
Шитый код, как правило не имеет операндов,в исключительных случаях, операндами занимается сама вызванная команда.
Слишком условно - операндами х86 тоже занимается сама комманда, и можно сказать что их обычно нет, просто это "обычно" случается очень редко ;). Так что, вопрос в статистике по частоте использования аргументов? Но это в общем случае не может быть характеристикой шитого код а является особенностью архитеуры ВМ. В случае форта она нуль операндная, поэтому и аргументы случаются редко, но это не имеет ни какого отношения к шитому коду, поскольку никто не запрещает хоть каждому токену брать сколько угодно аргументов с самого шитого кода. Шитый код это позволяет, так что это не правило.

Таким образом, я считаю ваше определение некорректным.

ЗЫ. Шитый код является разновидностью реализации интерпретаторов или виртуальных машин. Это уже точно, поскольку компиляторы его не используют ;). Но, если результат работы транслятора есть кодом исполнимым на железной машине (и не включает дополнительного кода эмуляции виртуальной машины) то это код называется машинным кодом а транслятор компилятором. Можно конечно поиграть со словами, но подпрограммный шитый код является машинным кодом значит шитым кодом быть не может поскольку шитый код от машинного отличается виртуальностью самой машины. Если машина железная - это машинный код, если виртуальная - шитый (или что-то еще, с более сложным синтаксисом). Никто не называет машинный код NC4016 шитым кодом - это машинный код, не смотря на то, что на шитый код впервые реализованный в форте он похож куда как более чем последовательность колов в x86. И не стоит говорить что сама комманда call является интерпретатором, это не так, интерпретатор не может состоять из одной комманды, если комманда одна - то это комманда процессора, и то что она делает не есть интерпретацией а непосредственным исполнением на уровне системы комманд процессора. Другими словами - процессор не интерпретирует свою систему комманд, он ее исполняет. Отличие опять же в уровне виртуальности.

Mihail писал(а):
Цитата:
И все же, какой из перечисленных методов недопустим для Форта? ANSI допускает все, вы нет?
Я тоже.
Переформулирую вопрос. Может ли существовать реализация Форта, которую вы будете продолжать считать Фортом, но согласитесь с тем что она не использует никакой разновидности шитого кода, в том числе и логического/виртуального?

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


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

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
Переформулирую вопрос. Может ли существовать реализация Форта, которую вы будете продолжать считать Фортом, но согласитесь с тем что она не использует никакой разновидности шитого кода, в том числе и логического/виртуального?
А определение шитого кода - ПОНЯТНОЕ - давалось?

_________________
понимаю некоторую бестолковость некоторых вопросов


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

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


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

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


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

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