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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 255 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7, 8, 9 ... 17  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Чт дек 13, 2007 16:34 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
chess писал(а):
. Семантический синтаксис может быть развернут back-endом
.


Т.е. переводится на доступный русский, как поведенческий синтаксис
или синтаксис поведения или поведение синтаксиса? :))
Уже запутался, но предложенная схема достаточно распространена в
компиляторах. :))


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

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Пример семантического синтаксиса - строка 1\11.
Работа front-enda
DUP переводит в 1\11.
Работа back-enda
1\11 переводит в
lea ebp, -4 [ebp]
mov [ebp], eax
точнее в код x86, эквивалентный этой записи

_________________
С уважением, chess


Последний раз редактировалось chess Чт дек 13, 2007 17:02, всего редактировалось 1 раз.

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

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Kopa писал(а):
Уже запутался, но предложенная схема достаточно распространена в
компиляторах.

Не вижу причин, мешающих применению этой схемы и для Форта.
Если вы видите - назовите.

_________________
С уважением, chess


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

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

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


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

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Forthware писал(а):
А что если посмотреть на компиляцию в шитый код?

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

_________________
С уважением, chess


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

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Forthware писал(а):
Ведь, по сути, шитый код есть результат работы фрнт энда, и при этом он независим от реализации.

Да, самое главное забыл сказать - это совершенно неверно. Шитый код - результат работы back-enda. :o

_________________
С уважением, chess


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

Зарегистрирован: Вс дек 02, 2007 17:31
Сообщения: 442
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
chess писал(а):
Что такое шитый код.
Последовательность адресов исполнителей.
chess писал(а):
Их много видов
Это ничего не меняет, они все (и прямой и косвенный), грубо говоря, приводятся к одному обычной таблицей подстановок (каждому конкретному токену одной системы можно поставить в соответствие токен другой системы).
chess писал(а):
а зачем? что в этом хорошего?
Вам нужен "семантический синтаксис"? Шитый код можно считать таковым, ибо токены имеющие одинаковую семантику (например 1/11) есть во всех системах, а любой отсутствующий можно представить описанием высокого уровня, которое тоже имеет свой токен. Поэтому для любого токена одной форт системы существует (создается) эквивалентный токен в любой другой форт системе. Это все верно до тех пор пока не меняется архитектура (стеки, разрядность) и мы используем шитый код.
chess писал(а):
Шитый код все-таки несет в себе в той или иной мере некоторую информацию о конкретной платформе - это два.
Какую? Вся информация в шитом коде на 100% интерпретируется, поэтому никоим образом не зависит от железа, а исключительно от интерпретатора, который может работать на чем угодно, или вообще компилировать под конкретное железо.
chess писал(а):
На самом деле форт это язык ориентированный на виртуальную машину. Структуру этой машины имеет смысл изначально расширить по максимуму и тоже сделать стандартной. Набор стеков, память и т.д. В этом случае форт с урезанной виртуальной машиной пойдет на любой форт-системе, где она не урезана.
Совершенно верно. Если взять исходники соответствующие стандарту (скажем ANSI) который поддерживается (является подмножеством) на двух разных Форт системах, то они будут работать на обеих. Однако тут вопрос, я так понимаю, в другом. :roll:

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


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

Зарегистрирован: Вс дек 02, 2007 17:31
Сообщения: 442
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
chess писал(а):
Да, самое главное забыл сказать - это совершенно неверно. Шитый код - результат работы back-enda.
Ну да, если интерпретатор считать форт машиной. :lol: А где делся фронт-энд интересно? Хотя я знаю, его вообще нет - ведь для форт машины, Форт есть ассемблером! :D
Однако, раз мы говорим про реальное железо, в плане компиляции в его систему комманд, то всетаки шитый код не есть результатом back-end а.

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


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

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Forthware писал(а):
Однако, раз мы говорим про реальное железо, в плане компиляции в его систему комманд, то всетаки шитый код не есть результатом back-end а.

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

_________________
С уважением, chess


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

Зарегистрирован: Вс дек 02, 2007 17:31
Сообщения: 442
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
chess писал(а):
ничего не несет и поэтому не может быть кандидатом на роль передатчика семантики программы одной форт-системы на другую
Ну да, сам по себе, в отрыве от системы не несет.
Что ж, значит надо создать некий стандартный семантический синтаксис?
Однако, даже если мы его создадим, останется открытым вопрос - любая ли программа может быть представленна с его помощью? То-есть, вопрос полноты. Ведь исходники использующие некоторые особенности конкретной архитектуры (например распределение регистров процессора) могут не иметь стандартной семантики вообще. :?

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


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
K`[f писал(а):
Угу... Вот по этому пункту - насчёт циклов - можно увидеть какой-то наглядный пример?


100 0 DO LOOP

Каждое слово - одна команда, и один цикл.

K`[f писал(а):
А вот по этому - хотелось бы услышать более развёрнутую аргументацию. Почему вы считаете что это лишняя сущность? У вас очень много разной адресной арифметики?


При постоянной работе с переменными и индексами массива на стеке очень часто будут находиться именно адреса.


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

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


В стандарте Форта ( ANSI 94 ) семантика примитивов форта и VM определена.
Если не вводить своих низкоуровневых примитивов и специфичных хаков,
то Форт системы должны быть достаточно хорошо совместимы.
Например схема сильной завязки оптимизатора с низкоуровневыми примитивами
в SPF, не способствует повышению уровня переносимости SPF на другую платформу.
Можно, наверное, найти и другие примеры разрушающие полезное свойство, совместимость
Форт систем.

P.S. Поэтому для совместимости Форт систем прежде всего и необходимо
вынесение низкоуровневой реализации примитивов в дополнительный слой,
а как конкретная Форт система, для обеспечения совместимости будет
реализовывать требуемый низкоуровневый набор примитивов - это уже вторично:)


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

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Kopa писал(а):
В стандарте Форта ( ANSI 94 ) семантика примитивов форта и VM определена.

В стандарте кроме описания команд VM, правил их применения(это делается и через описание архитектуры VM), а также описания ассемблера VM ничего не должно быть.
Ассемблер виртуальной машины это и есть семантический язык. Его синтаксис и должен быть закреплен в стандарте.
Тут уместна прямая аналогия с описанием системы команд процессора в увязке с его устройством и описанием ассемблера для этого процессора.
Kopa писал(а):
Например схема сильной завязки оптимизатора с низкоуровневыми примитивами
в SPF, не способствует повышению уровня переносимости SPF на другую платформу.

Оптимизатор должен быть в back-end-части транслятора и поэтому на переносимость программ на Форте никак не должен влиять.

_________________
С уважением, chess


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

Зарегистрирован: Вс дек 02, 2007 17:31
Сообщения: 442
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Kopa писал(а):
В стандарте Форта ( ANSI 94 ) семантика примитивов форта и VM определена.
Ну так ведь для программ соответствующих ANSI и сейчас не существует проблем переноса (на уровне исходников). Или я не прав?
Тут правда есть одна проблема. ANSI94 для многих применений недостаточен. Он, например, не включает в себя возможностей работы с API операционной системы, без которых в большинстве случаев не обойтись.
Другая проблема в реализации расширений. Многие программы используют библиотеки для работы с динамическими строками, массивами, ООП, и множество других. Если все эти библиотеки тоже написаны в соответствии с ANSI, то проблем нет. Однако, очень часто они не переносимы поскольку используют особенности конкретной системы с целью повышения производительности.
Таким образом, ANSI плохой помощник в этой проблеме. Поиск решения должен лежать в другой области. Скорее всего надо исходить из семантики всех примитивов исходной системы и каким то образом, реализовать их аналоги в целевой. Теоретически это вроде бы возможно, но только до тех пор, пока эти примитивы работают с виртуальной машиной а не с конкретными ресурсами железа, например непосредственно с регистрами CPU. Также не получится перенести код использующий ассемблер.

Для переноса же любого кода, следует опуститься еще на уровень ниже, в нашем случае это машкод х86. Семантика всех комманд в нем однозначна. :)

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


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

Зарегистрирован: Вс дек 02, 2007 17:31
Сообщения: 442
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Хищник писал(а):
При постоянной работе с переменными и индексами массива на стеке очень часто будут находиться именно адреса.
Не факт. Слова созданные с помощью VARIABLE возвращают адрес в AS. С индексами тоже можно работать прямо в нем.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 255 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7, 8, 9 ... 17  След.

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


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

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


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

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