Важная информация

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 17

Тема: Форт-компиляторы для спектрумсовместимых компьютеров. Изучение возможностей.

  1. #1
    Master
    Регистрация
    15.02.2015
    Адрес
    г. Могилёв, Беларусь
    Сообщений
    835
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    98
    Поблагодарили
    65 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Форт-компиляторы для спектрумсовместимых компьютеров. Изучение возможностей.

    Топик создал для тех кто хочет программировать на форте. И сразу надо начать с главного вопроса - выбор компилятора и целевой платформы.
    Так как кросскомпилятора сейчас нет, будем расматривать нативные. Лучший выбор, думаю, будет кп/м компилятор с возможностью получать машинный код с запуском по произвольному адресу, так как на таком компиляторе можно делать программы для обычного спектрума. Но программирование для обычного спека не цель, поэтому надо рассматривать другие платформы: Профи, Спринтер, Кворум, АТМ Турбо. Интересно, есть ли свой форт для спектрума +3?
    Пишите о компиляторах форта, описывайте их возможности.
    ¡Un momento, señor fiscal!


  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Master
    Регистрация
    15.02.2015
    Адрес
    г. Могилёв, Беларусь
    Сообщений
    835
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    98
    Поблагодарили
    65 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Нашел для Спринтера компилятор CamelForth основанный на стандарте ANS 1994. Сильно ли устарел компилятор? И вот вопрос - как на форте делать вызов машинного кода?
    ¡Un momento, señor fiscal!


  4. #3
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,611
    Спасибо Благодарностей отдано 
    2,189
    Спасибо Благодарностей получено 
    140
    Поблагодарили
    106 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    CODE <имя> <машинный-код> END-CODE, где «имя» является именем определяемого слова, а «машинный-код» — записью его реализации в машинном коде в соответствии с принятыми соглашениями.



    Но может поддерживаться "из коробки" не всеми Фортами.

  5. #4
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,847
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    229
    Поблагодарили
    167 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Smalovsky Посмотреть сообщение
    И вот вопрос - как на форте делать вызов машинного кода?
    Если нужно вызвать что-либо по какому-то адресу, то так: <адрес> EXECUTE
    Но проблема в том, что это не всегда так (на вход этому слову нужно дать execution token, а это не всегда адрес машинного кода, зависит от реализации форта), к тому-же обычно нужны параметры в регистрах, а не в стеке.

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

    - - - Добавлено - - -

    Вот тут пример реализации встроенного ассемблера (из книги Баранова-Ноздрунова): https://gudleifr.forum2x2.ru/t120p25-topic#2067
    Последний раз редактировалось b2m; 17.07.2022 в 16:16.

  6. Эти 2 пользователя(ей) поблагодарили b2m за это полезное сообщение:

    andrews (17.07.2022), svofski (17.07.2022)

  7. #5
    Guru Аватар для andrews
    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,688
    Спасибо Благодарностей отдано 
    423
    Спасибо Благодарностей получено 
    196
    Поблагодарили
    174 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот неплохой цикл статей на Хабре "Байт-машина для форта (и не только) по-индейски"про реализацию FORTH на ассемблере. Правда чувак кажется замучался и в результате не довел дело до конца! И второе, что поскольку это ассемблер x64 и Linux, то при другой паре придется многое менять. Но технология "индейцев" от программирования раскрыта. Мне такие статьи импонируют. Сам когда-то писал в таком стиле про Blackfin.

  8. Этот пользователь поблагодарил andrews за это полезное сообщение:

    Oleg N. Cher (17.07.2022)

  9. #6
    Master
    Регистрация
    15.02.2015
    Адрес
    г. Могилёв, Беларусь
    Сообщений
    835
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    98
    Поблагодарили
    65 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    На страницу камелфорта можно попасть через сайт z88forever.org с раздела софт. На вики камела написали что есть еще версия для спектрума +3.
    Я еще ничего не изучал. Посмотрел демо на форте в эмуляторе спринтера.
    ¡Un momento, señor fiscal!


  10. #7
    Veteran Аватар для krotan
    Регистрация
    30.08.2010
    Адрес
    Санкт-Петербург
    Сообщений
    1,263
    Спасибо Благодарностей отдано 
    53
    Спасибо Благодарностей получено 
    192
    Поблагодарили
    159 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Smalovsky Посмотреть сообщение
    Пишите о компиляторах форта, описывайте их возможности.
    Мне странна сама постановка вопроса, поскольку язык форт не предполагает использование каких-либо компиляторов.
    Форт - это интерпретатор+компилятор два в одном, у него иная идеалогия программирования, чем вы думаете.
    Прежде чем задавать вопрос, почитайте Броуди хотя бы...

  11. #8
    Guru Аватар для andrews
    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,688
    Спасибо Благодарностей отдано 
    423
    Спасибо Благодарностей получено 
    196
    Поблагодарили
    174 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от krotan Посмотреть сообщение
    Форт - это интерпретатор+компилятор два в одном, у него иная идеалогия программирования, чем вы думаете
    скажем так, чтобы исполняться на каком-либо процессоре он(она Форт-система) ведь в конечном итоге генерит кодовые последовательности данного процессора. А чтобы выполняться в рамках конкретной операционки( если он конечно сам собой ее не замещает), он должен генерить и обращения к соответствующим системным вызовам.

    Теперь усложним задачу. Создадим режим, в котором он не просто "просматривает" коды текста из файла с FORTH программой и последовательно их выполняет, а генерит целиком ядро и расширения для другой пары проц+операционка и выдает это все в выходной файл, который потом запускается на назначенном cpu+os и пользователь не чувствует существенных различий принципиально. Понятно, что они могут быть и существенными из-за разной организации памяти, возможностей графики, звука и прочее. Но задача разработчика тогда ограничится тем, что не различается столь существенно.
    Последний раз редактировалось andrews; 18.07.2022 в 11:37.

  12. #9
    Veteran Аватар для krotan
    Регистрация
    30.08.2010
    Адрес
    Санкт-Петербург
    Сообщений
    1,263
    Спасибо Благодарностей отдано 
    53
    Спасибо Благодарностей получено 
    192
    Поблагодарили
    159 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от andrews Посмотреть сообщение
    Создадим режим, в котором он не просто "просматривает" коды текста из файла с FORTH программой и последовательно их выполняет, а генерит целиком ядро и расширения...
    Форт так не работает, он компилирует каждое слово в момент его описания. Пожалуйста полистайте Броуди.

    P.S. форт не предполагает написание длинных простыней с исходниками и последующей компиляции или интерпретации.
    Вы описываете очередное слово и сразу же запускаете его на выполнение, чтобы проверить, правильно оно работает или нет.
    Конечно, в конце-концов вы можете вывалить всю получившуюся программу в виде форт-текста, но в этом нет необходимости и принцип написания программы другой...
    Последний раз редактировалось krotan; 18.07.2022 в 12:17.

  13. #10
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,847
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    229
    Поблагодарили
    167 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от krotan Посмотреть сообщение
    форт не предполагает написание длинных простыней с исходниками и последующей компиляции
    Но ведь есть же такое понятие, как целевая компиляция. Это когда форт создаёт другой форт, возможно для другой платформы, от первого и до последнего байта, а затем сохраняет этот кусок памяти на диск.

Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. В поисках утерянных возможностей…
    от Радио-86РК в разделе Радио-86РК
    Ответов: 28
    Последнее: 13.03.2021, 01:50
  2. Компиляторы барсика фирмы Ошонсофт
    от Smalovsky в разделе Программирование
    Ответов: 1
    Последнее: 04.06.2018, 01:47
  3. Язык Форт для ZX Spectrum
    от Oleg N. Cher в разделе Программирование
    Ответов: 32
    Последнее: 09.02.2017, 08:55
  4. Форт для процессора 6502
    от rw6hrm в разделе Зарубежные компьютеры
    Ответов: 7
    Последнее: 15.10.2010, 15:01
  5. Расширение возможностей Ленинград1
    от DVS в разделе Ленинград
    Ответов: 53
    Последнее: 24.05.2009, 18:14

Ваши права

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