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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Пт ноя 06, 2009 11:49 
Не в сети
Moderator
Moderator
Аватара пользователя

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт ноя 06, 2009 12:53 
mOleg писал(а):
Форт-системы, построенные на данной идее существуют (проще всего это делаестя на токенезированном ШК, либо байт-коде(в худшем случае)). Проблемы, как всегда возникают при работе с высокоуровневыми функциями ОС, на которой работает система.

А где об этом можно почитать поподробнее?


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб ноя 07, 2009 12:30 
Не в сети
Moderator
Moderator
Аватара пользователя

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт ноя 10, 2009 11:01 
Ваш перевод статьи "Moving Forth" я прочитал. Пока ищу ФВМ, хотелось бы рассмотреть ключевой момент – создание из бинарного файла любой программы словаря понятного для интерпретации ФВМ.
mOleg писал(а):
Проблемы, как всегда возникают при работе с высокоуровневыми функциями ОС, на которой работает система.
В моем представлении любой файл(в т.ч. библиотеки) может быть дизассемблирован, следовательно могут быть получены участки исполняемого кода, а значит их можно переписать на Форте СЛОВО за СЛОВО, включая функции ОС непосредственно в словарь. Но может быть листинг дизассемблера уровня W32Dasm – это команды размещения данных программы, а исполняемый процессором машинный код несколько другой. Сравнить листинги отладчиков типа IDA или SoftICE у меня нет возможности.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт ноя 10, 2009 11:34 
Не в сети

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

Похожим образом работают программы Михаила - оптимизатор под СПФ и c2forth


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

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

Это далеко не так. ОС может запретить работать с определенными областями памяти и с определенными командами процессора( вспомните 0-е кольцо).
Кроме того вспомните про самомодифицируемый код. Этот код на разных стадиях исполнения разный.

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


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
idem писал(а):
Ваш перевод статьи "Moving Forth" я прочитал.

там серия из шести статей, я перевел (как сумел) только первые три.

idem писал(а):
Пока ищу ФВМ, хотелось бы рассмотреть ключевой момент - создание из бинарного файла любой программы словаря понятного для интерпретации ФВМ.

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт ноя 10, 2009 19:16 
chess писал(а):
ОС может запретить работать с определенными областями памяти и с определенными командами процессора( вспомните 0-е кольцо).
Кроме того вспомните про самомодифицируемый код. Этот код на разных стадиях исполнения разный.
Поэтому, надеюсь пока не пользовался на отладчики типа SoftICE, которые загружаются до ОС и, следовательно, предоставляют больший контроль над исполняемой программой.
mOleg писал(а):
Вы же по сути говорите о преобразовании уже готового бинарного кода в вид, который может проглатить ФВМ, если я вас правильно понял.
Да, именно так.
mOleg писал(а):
обычно идет речь о том, что бинарный код программы будет работать на разных платформах без изменений, за счет использования определенной ВМ (то есть код изначально пишется под эту ВМ).
Для начала, интересно было бы посмотреть на готовую реализацию ВМ(что там с чем). Выделить цельный машинный код при помощи отладчика, о чем я писал выше – задача нетривиальная, поэтому, скорее всего, придется развивать какой-то из существующих вариантов.


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
idem писал(а):
mOleg писал(а):Вы же по сути говорите о преобразовании уже готового бинарного кода в вид, который может проглатить ФВМ, если я вас правильно понял.
Да, именно так.

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

idem писал(а):
mOleg писал(а):обычно идет речь о том, что бинарный код программы будет работать на разных платформах без изменений, за счет использования определенной ВМ (то есть код изначально пишется под эту ВМ).
Для начала, интересно было бы посмотреть на готовую реализацию ВМ(что там с чем). Выделить цельный машинный код при помощи отладчика, о чем я писал выше – задача нетривиальная, поэтому, скорее всего, придется развивать какой-то из существующих вариантов.

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

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


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

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

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

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 11, 2009 15:30 
mOleg писал(а):
собственно, я еще ни разу не слышал, чтобы дизассемблированный текст после повторного ассемблирования снова заработал...
Чтобы дизассемблерный код повторно заработал, надо чтобы он был точной копией исходника на ассемблере. Т.к. ОС скрывает часть информации или, другими словами, добавляет команды при выполнении, получается, что исходный текст должен быть написан узнаваемо при дизассемблировании. Возможно, что для такой тестовой программки понадобится специфический компилятор. Я хочу сказать, что различие между листингами исходника и дизассемблера – это работа ОС, которую должна чем-то компенсировать Форт-система.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 11, 2009 17:38 
Не в сети
Moderator
Moderator
Аватара пользователя

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

что достаточно сложно, не так ли?

idem писал(а):
Возможно, что для такой тестовой программки понадобится специфический компилятор. Я хочу сказать, что различие между листингами исходника и дизассемблера – это работа ОС, которую должна чем-то компенсировать Форт-система.

и вот тут не понятна цель. То есть, даже не сама цель, а скорее соотношение сложность разработки системы / результат стоило затраченных на решение усилий 8)

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


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

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
А зачем оно вообще надо такое делать?

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб ноя 14, 2009 07:09 
Оказалось, что разработан стандарт -- двоичный интерфейс приложений (Application Binary Interface, ABI), которому разработчики ОС не следуют. В статье http://www.citforum.ru/SE/testing/portability/ рассматриваются методы и причины обеспечения переносимости ПО.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб ноя 14, 2009 08:17 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
idem писал(а):
Оказалось, что разработан стандарт -- двоичный интерфейс приложений (Application Binary Interface, ABI), которому разработчики ОС не следуют.

и не будут следовать ! ;)
достаточно представить себя на месте разработчика ОС, чтобы понять почему.

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


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

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


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

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


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

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