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

User Tag List

Страница 1 из 4 1234 ПоследняяПоследняя
Показано с 1 по 10 из 33

Тема: Язык Форт для ZX Spectrum

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

    По умолчанию Язык Форт для ZX Spectrum

    Форт очень интересный язык. На нём легко сделать Форт-ассемблер, Форт-Бейсик и даже Форт-Паскаль (видел), любые проблемно-ориентированные словари, низкоуровневые вещи. Я просто не люблю писать на Форте, мозги наизнанку, массаракш ;-) И вероятность допустить ошибку очень высокая, даже ИМХО выше, чем на асме.

    Прошу желающих высказаться каким должен быть Форт для ZX. Я начну.

    • Нужна возможность порождать прямой шитый код - для компактности (вызов слова будет занимать 2 байта - адрес слова) и подпрограммный код - для скорости (как в HL ZX Forth). Выглядеть это может так:
      Код:
      threaded 2 dup + . ( --> CALL INTERPRET : DW LITERAL, 2, DUP, PLUS, PRINT )
      direct   2 dup + . ( --> CALL LITERAL : DW 2 : CALL DUP : CALL PLUS : CALL PRINT )
    • Обязательно нужен целевой компилятор со смарт-линкером, чтобы в отчуждаемую (stand-alone) программу включались только необходимые слова, а не всё ядро.

    Давайте вместе продолжим список. Как бы вы стали реализовывать свой Форт? Взяли бы какую-нить готовую реализацию и жёстко отрефакторили? Какую именно? Их много. На какой стандарт Форта нужно ориентироваться в первую очередь? FORTH-77? FORTH-83? ANSI?
    Последний раз редактировалось Oleg N. Cher; 06.02.2017 в 00:48.

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

  3. #2
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,530
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    264
    Спасибо Благодарностей получено 
    208
    Поблагодарили
    166 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Прошу желающих высказаться каким должен быть Форт для ZX
    Всяким разным - всё зависит от того, как на нём планируется писать (размер и % примитивов, глубина вложения процедур).

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Нужна возможность порождать прямой шитый код - для компактности (вызов слова будет занимать 2 байта - адрес слова) и подпрограммный код - для скорости (как в HL ZX Forth).
    См. выше, всё от стиля програмирования зависит. Прямой шитый иногда может оказаться быстрей подпрограммного.

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Обязательно нужен целевой компилятор со смарт-линкером, чтобы в отчуждаемую (stand-alone) программу включались только необходимые слова, а не всё ядро.
    "Компилятор" (даже оптимизирующий) в принципе воможен даже как набор макрух для ассемблера.
    Я когда-то экспериментировал в ужасме на эту тему, но забросил за недостатком времени.

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    На какой стандарт Форта нужно ориентироваться в первую очередь? FORTH-77? FORTH-83? ANSI?
    Как любой настоящий фортер - придумай свой (лучше несколько)))
    Прихожу без разрешения, сею смерть и разрушение...

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

    По умолчанию

    Я согласен, прямой шитый код иногда может оказаться быстрей подпрограммного. Это когда NEXT сразу передаёт управление на следующее слово одной асмовской командой, такой случай описан у Черезова (каждется?) по мере развития его SP-Forth. Он экспериментировал и пробовал разные виды шитого кода, и версия с прямым борола по скорости подпрограммный. Но это на процессоре x86.

    Однако я очень сильно сомневаюсь, что прямой шитый код будет быстрее подпрограммного именно на процессорах Z80/i8080.

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

    Обсуждение начато, отчасти, для того, чтобы выявить заинтересованных и сопоставить с ними видение, вектор развития Форта для ZX. Чтобы не делать мёртвый, никому не интересный проект.
    Последний раз редактировалось Oleg N. Cher; 06.02.2017 в 02:29.

  5. #4
    Master
    Регистрация
    24.05.2005
    Адрес
    г. Запорожье, Украина
    Сообщений
    992
    Спасибо Благодарностей отдано 
    571
    Спасибо Благодарностей получено 
    364
    Поблагодарили
    239 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    На скорпионе прям в ПЗУ прошит Форт или его разновидность.

  6. #5
    Member Аватар для Patison
    Регистрация
    03.02.2017
    Адрес
    с. Троицкое, Омская обл.
    Сообщений
    105
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    30
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я не так давно на FPGA Altera MAX10 сделал 16/32 разрядный FORTH SOFT-процессор с небольшим количеством периферии. В качестве прототипа взял процессор J1 и доработал его систему команд. Долго переделывал прошивку Форта, добавляя и удаляя оттуда слова. И этот процесс еще не завершен полностью. Форт уместился приблизительно в 6000 16 битных слов во встроенной памяти микросхемы. В ней может разместиться одновременно около 10 таких процессоров с периферией и памятью каждого процессора 16 кбайта. Процессоры могут работать на частоте до 110 мгц. Каждая команда процессора выполняется за один такт. Глубина стеков сейчас по 32 слова, но ее можно легко изменить.
    Но... Я почему-то испытываю определенный дискомфорт при работе с Фортом и пытаюсь найти аналогичный процессор, поддерживающий стандартный кросс-компилятор С. Кое-что нашел. Однако Форт имеет и очень интересные черты, которые привлекают меня до сих пор. В общем, есть некоторые соображения и по форту и вокруг него в т.ч. относительно применения Форта на процессорах классической архитектуры и в частности на Z80. Если позволите, позже попробую описать эти самые соображения.
    Последний раз редактировалось Patison; 06.02.2017 в 10:39.

  7. #6
    Member
    Регистрация
    24.03.2008
    Адрес
    г. Рыбинск
    Сообщений
    123
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А как быть тем, кто форт ни разу не пробовал, но только читал про него? Можно было бы что-то и посоветовать. Но для этого нужен хоть какой-то опыт. Надо с чего-то начинать.

  8. #7
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,121
    Записей в дневнике
    36
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    10 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от UA3MQJ Посмотреть сообщение
    А как быть тем, кто форт ни разу не пробовал, но только читал про него? Можно было бы что-то и посоветовать
    почитать что-нибудь, нет?

  9. #8
    Master Аватар для Бука
    Регистрация
    29.08.2012
    Адрес
    Анапа
    Сообщений
    610
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Пробовал пару лет назад освоить Форт - понял что рискую взорвать себе мозг и отступил...

    "Йоды джедаев магистра речи тайна раскрыта — на Форте просто старый программер он есть"
    «Земля - слишком маленькая и хрупкая корзина, для того чтобы человечество держало в ней все свои яйца…» - Роберт Энсон Хайнлайн.
    Электроника МК-61, Psion series 5mx.

    Всем умеющим читать советую http://www.skeptik.net/conspir/moonhoax.htm http://lurkmore.to/Лунный_заговор

  10. #9
    Master
    Регистрация
    19.11.2012
    Адрес
    г. Луганск
    Сообщений
    698
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    82
    Поблагодарили
    55 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Брошюра или книга была по форту, но впечатление этот язык не произвел.
    Можно почитать руководство пользователя к компьютеру Jupiter Ace.

  11. #10
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,593
    Спасибо Благодарностей отдано 
    2,158
    Спасибо Благодарностей получено 
    130
    Поблагодарили
    96 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот! Аналогичная фигня, и я под этим подпишусь:
    Цитата Сообщение от Patison Посмотреть сообщение
    Но... Я почему-то испытываю определенный дискомфорт при работе с Фортом и пытаюсь найти аналогичный процессор, поддерживающий стандартный кросс-компилятор С. Кое-что нашел. Однако Форт имеет и очень интересные черты, которые привлекают меня до сих пор.
    Я ещё тешу себя, что, может быть, можно разработать словари для безопасной работы, уйти от стека вообще, для низкого уровня сделать работу с регистрами, которая может выглядеть, например, так:
    Код:
    lowlevel B + C => [HL] HL++ D + E => [HL]
    Форт хорош тем, что позволяет создавать легко макро-языки. Но это безобразие, что в любой прикладной программе (если писать традиционно) первый попавшийся случай некорректной работы с ! приведёт к загадочному чёрному экрану. Вот и думаю: Форт - это язык для машины, а не для человека-кодера, привыкшего к комфорту. А вот в качестве машинного языка он действительно весьма интересен. Припоминаю, Кладов создал свою стековую мини-машину с Фортоподобным языком, и транслировал в её байт-код программы на Паскале, за счёт чего добился более плотной упаковки кода (его Фортовый байт-код компактнее, чем натив для 80x86).

    Цитата Сообщение от Patison Посмотреть сообщение
    В общем, есть некоторые соображения и по форту и вокруг него в т.ч. относительно применения Форта на процессорах классической архитектуры и в частности на Z80. Если позволите, позже попробую описать эти самые соображения.
    Конечно позволим!

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

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

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

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

Похожие темы

  1. У. Морер. Язык ассемблера для ПК ЭПЛ
    от shapipovo в разделе Техническая литература
    Ответов: 3
    Последнее: 05.04.2015, 19:27
  2. Ответов: 7
    Последнее: 20.02.2012, 15:37
  3. (Обмен) У. МОРЕР. Язык ассемблера для ПК ЭПЛ
    от shapipovo в разделе Барахолка (архив)
    Ответов: 0
    Последнее: 30.08.2011, 22:06
  4. Форт для процессора 6502
    от rw6hrm в разделе Зарубежные компьютеры
    Ответов: 7
    Последнее: 15.10.2010, 15:01

Ваши права

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