Просмотр полной версии : FORTH vs компилятор бейсика vs C++/Pascal/остальное
vlad-kras
05.07.2022, 13:48
Куда только не занесет поисковик при запросе wargame 1812. В этот раз накликался на статью "Что может FORTH?"
текст статьи на zxpress (https://zxpress.ru/article.php?id=7341)
Знает ли пользователи какие-то проги для ZX, а лучше игры, которые были бы написаны на этом FORTH?"
В отличии от существующих на SPECTRUM языков, только FORTH является действительно эффективным, все остальные можно считать не более, чем учебными версиями.
Неужели все настолько плохо с другими языками? Статья 97 года, ну и вопрос интересует именно с точки зрения тогдашнего времени. С бейсиком вроде понятно, хоть и странно что компилированные программы все равно "слишком медленно работают". А другие языки типа C++/паскаля тоже плохо или просто для спека компиляторы слишком примитивны?
Используют ли разрабы что-то из современных языковых компиляторов или в основном ассемблер? Про тему с обероном знаю, проскакивают посты. И про игры, которые были бы написаны на других языках тоже интересует вопрос - один только hisoft выпустил кучу компиляторов, а есть ли игры на чем-то кроме бейсика?
коньком FORTH 'а являются адвентюры, и здесь появляется возможность работать прямо в пультовом режиме языка.
Любопытно, хотя и не понятно
Итак, что же может FORTH !? Все, что
может BASIC и еще пять раз по столько и
намного быстрее !!! Да и еще размер прог-
раммы намного меньше ! По быстродействию
FORTH превосходит почти все существующие
языки программирования, а по возможностям
вообще не имеет себе равных. В каком еще
языке можно создавать свои собственные
операторы ( не процедуры ) и модифициро-
вать самого себя по ходу выполнения прог-
раммы ? Для FORTH все это - естественный
процесс, ведь именно так он и работает.
Вот это странно, что C++ тоже медленнее FORTH. Или он тут наоборот, среди тех немногих, которые не вошли в группу "превосходит почти все существующие языки программирования"?
У Форта есть недостаток: писать программы на нем получается раз в 10 медленней, чем на C++. Некоторые еще говорят, что Форт write-only, дескать трудно понимать. Но я и на C++ видел достаточно нечитаемого кода, так что это аргумент так себе.
Smalovsky
05.07.2022, 18:28
На 88dk и бореле(zx basic) написано много игр. Причем борель считается самым популярным компилятором.
А что на Форте написали?
88 dk и борель(zx basic) самые популярные компиляторы и официально рекомендованы на сайте Спектрум Некст.
Dart Alver
05.07.2022, 22:23
Вот это странно, что C++ тоже медленнее FORTH. Или он тут наоборот, среди тех немногих, которые не вошли в группу "превосходит почти все существующие языки программирования"?
Улыбнул ))
Компиляторы C++ (и не только C++) на PC с современной системой оптимизации оставят форт далеко позади. Форт по сути своей является быстрым интерпретатором а точнее виртуальной машиной со стековой адресацией операндов и как следствие постфиксной нотацией инструкций что довольно непривычно и неплохо выламывает мозг.
Впрочем на ZX привычных к ассемблеру спектрумистов этим врятли испугаешь, но быстродействие форта относительно бейсика не сильно окупается по сложности написания прог относительно ассемблера, а быстродействие ассемблера определённо выше. Да и загрузка/формирование словарей та ещё забава для zx.
Но коньком FORTH 'а являются адвентюры, и здесь появляется возможность работать прямо в пультовом режиме языка.
Например:создаем слово LOOK ( осмотр локации ), слово GO и т.д.,затем выходим в пультовый режим, и игра началась, т. е. при вводе любого из определенных слов система найдет его в словаре и тут-же исполнит и не надо писать никаких оболочек для игры.
Ну теоретически такое возможно, поскольку весь форт это одна большая программа из кучи отдельных слов(функций). Но игра в терминале это нонсенс по сути, базовый словарь форта и вспомогательные слова никто не отменял, а терминалу вообще по барабану что вводится. ))
У Форта есть недостаток: писать программы на нем получается раз в 10 медленней, чем на C++. Немного не так, программы на форте пишутся вполне бысто и код отлично читаемый, НО... чтобы писать на форте надо изменить образ мышления, а на это многие не готовы...
А при чём здесь C++ я вообще не понял, для спека компиляторов вроде не существует...
Oleg N. Cher
06.07.2022, 00:52
программы на форте пишутся вполне бысто и код отлично читаемыйВы серьёзно???
НО... чтобы писать на форте надо изменить образ мышления, а на это многие не готовы...Я бы сказал, не образ мышления изменить, а необратимо испортить голову и убить весь вкус к программингу. Когда такой "читаемый" короткий кусочек кода разбираешь и пытаешься понять, чего он делает, мысленно раскладывая значения по стеку, то хочется убицца апстенку навсегда.
Да, покажите игру на Форте, раз он так уж хорош. Не обязательно для Спека. Для любой платформы. Только чтобы в исходниках.
- - - Добавлено - - -
... или процесс "изменения мышления" настолько неприемлем для всех, что никто так его и не изменил? :)
У Форта есть недостаток: писать программы на нем получается раз в 10 медленней, чем на C++. Некоторые еще говорят, что Форт write-only, дескать трудно понимать. Но я и на C++ видел достаточно нечитаемого кода, так что это аргумент так себе.
темы про то что "писать на нем в 10 раз медленней" могут говорить только те кто никогда на нем коммерческих проектов не писал
- - - Добавлено - - -
Я бы сказал, не образ мышления изменить, а необратимо испортить голову и убить весь вкус к программингу.
если мышление негибко и ограничено, то то что его убьет это вопрос времени, а не технологии
Oleg N. Cher
06.07.2022, 02:25
Та ну его нафиг - такое "гибкое" мышление, которое адаптивно к Форту.
Моё мнение подтверждает факт отсутствия массового использования Форта даже на ретро. Форт - язык не для людей, а для машины, и то в лучшем случае.
Форт архаичен. Втеснимость в ограниченный объём ОЗУ, ориентация исходников на "страницы", стековость. Ребол - показывает в какую сторону стоило бы развивать Форт.
- - - Добавлено - - -
На этом форуме периодически всплывает тема Форта - какой-де это классный язык и как бы хорошо на нём разрабатывать игры. Ну поговорили и разошлись. Если Форт в чём-то и нагляднее асма, то это его плюс конечно, но выхлоп в сравнении с асмом не столь уж эффективен.
Dart Alver
06.07.2022, 03:23
Я бы сказал, не образ мышления изменить, а необратимо испортить голову и убить весь вкус к программингу. Когда такой "читаемый" короткий кусочек кода разбираешь и пытаешься понять, чего он делает, мысленно раскладывая значения по стеку, то хочется убицца апстенку навсегда.
Да бросьте, там то ещё разобраться можно. Вот когда читаешь кусок кода на ассемблере (зачастую даже своего) и пытаешься разобраться что же он делает, мысленно (а нет, письменно посколько мысленно не осилить )) ) раскладывая значения по регистрам, возникает ощущение что ты уже убился о стенку. Но это же никого не останавливает ))
На этом форуме периодически всплывает тема Форта - какой-де это классный язык и как бы хорошо на нём разрабатывать игры. Ну поговорили и разошлись.
Да не только на этом. То там то тут, всплывают разговоры и энтузиасты, которые портируют ту или иную версию, которой по традиции никто не пользуется.
Если Форт в чём-то и нагляднее асма, то это его плюс конечно, но выхлоп в сравнении с асмом не столь уж эффективен.
Для ZX действительно не слишком эффективен. Хотя саму идею структуры (без идиотских страниц и подобного) как движок вполне себе можно использовать для некоторых игр (может удасться часть памяти съэкономить). Но для этого надо транслятор заточить под конкретный проект без фортовских заморочек со словарями и страницами. А это опять ассемблер ))
А для PC форт морально устарел, ныне SSA оптимизация и разные IDE рулят.
Да, покажите игру на Форте, раз он так уж хорош. Не обязательно для Спека. Были на Хоббите, у него встроенная форт-система, но похоже все они утрачены... Интеркомпекс распространял их только коммерчески с защитой от копирования и они вроде не сохранились... В эту форт систему был даже встроен игровой движок как часть системы, быстрый вывод спрайтов и подобное... Лучше вопросы задавать автору, Диме Михайлову...
Да, покажите игру на Форте, раз он так уж хорош. Не обязательно для Спека. Для любой платформы. Только чтобы в исходниках.
Могу показать только свой недописанный рогалик. Крайне кроссплатформенный: запускается на Векторе (любом CP/M-80 на самом деле) и на Линуксе (ну и на винде-макосе-не знаю чем еще наверняка тоже) из одного исходника.
https://github.com/svofski/forth-roguelike
Иногда я к нему возвращаюсь, так что не зарекаюсь от того, чтобы дописать его однажды. Это вполне себе жизненный пример -- сишные версии rogue собирались ACK-ом под 8080 в то, что ни в каких мечтах никогда не влезло бы в 32кб. Ассемблер для такого дела скучноват и быстро становится трудноват для восприятия. Форт компактен и вполне нагляден. Страх перед его странностью, будучи однажды преодоленным, уходит более-менее навсегда -- это как научиться на велосипеде. И это полезное упражнение в любом случае. Например хорошо помогает отучиться писать методы-простыни на 15 страниц.
помню знакомый 20+ лет назад преподавал в дворце пионеров информатику и говорил, что ФОРТ отлично подходит для начального обучения программированию, я с ним всецело согласен, так как у самого книга Лео Броуди лежит и вполне хорошо читалась в 1990м в школьной библиотеке
Smalovsky
06.07.2022, 18:34
Почему бы не сравнить кросскомпиляторы? Кросс версию форта, z88dk, борель, оберон, zxлайкпаскаль.
Тест все покажет. А есть кросс форт для теста?
Oleg N. Cher
06.07.2022, 21:15
Не надо сравнивать, пардон, жопу с пальцем. Форт это метасистема. Если это только компилятор, то уже не то.
Я просто понял, что не хочу на этом программировать. Мне нужен более человеческий язык.
- - - Добавлено - - -
https://github.com/svofski/forth-roguelike
svofski, благодарю. Познавательно.
Про кроссплатформенность Форта - плакали и кололись. Там стек 16 бит, там 32. Там такие-то слова есть, там нету. Всё равно надо разрабатывать свою прослойку, стандарты не особо помогают, к тому же, каждый любитель наворачивает свои фишки в трансляторе.
Ну вот мне не пришлось ни плакать, ни колоться, а кроссплатформенность получилась сама собой.
Smalovsky
06.07.2022, 22:33
Oleg N. Cher, нужно сравнить скорость выполнения программ на форте и компиляторах. Тогда все будет ясно.
А есть кросс форт для теста? "Кросскомпилятор форта" - это бессмыслица какая-то. У форта как такового вообще компилятора нет, там другая идеология программирования...
Smalovsky
07.07.2022, 08:31
krotan, вот набрал в яндексе " компилятор форта". Выдало кучу результатов. Есть и компиляторы и кросскомпиляторы, и онлайнкомпиляторы. Может, они компилируют в байткод, но это всеравно компиляторы.
нужно сравнить скорость выполнения программ на форте и компиляторах. Тогда все будет ясно. Давно уже всё сравнили:
- скорость выполнения программ выше, чем в любых компиляторах (при условии правильного программирования) и лишь немного уступает ассемблеру,
- компактность кода рекордная (особенно после сжатия программы путём удаления идентификаторов слов), т.к. вся программа состоиит из множества вложенных подпрограмм,
- проблемами являются непривычный стиль программирования и то, что форт ориентирован главным образом на 8-мибитную архитектуру...
P.S. Есть конечно неудобство, в форте всё делается через стек, а встроенного контроля стека нет. Приходится для каждого форт-слова выписывать в блокнотик состояние стека...
но это всеравно компиляторы. у форта нет как такового компилятора. форт это компилятор-интерпретатор два в одном. Если желаете поэксперементировать с фортом запустите эмулятор cp/m , под cp/m есть несколько разных вполне хороших версий форта. Те версии форта, которые есть под стандартный спектрум похуже...
P.S. есть хорошая версия форта под PC отечественного автора, забыл как называется... Очень мощная, на ней писали прикладное ПО...
Smalovsky
07.07.2022, 08:42
krotan, что ,прям, на спектруме сравнили?
krotan, что ,прям, на спектруме сравнили? и на спектруме тоже, картина общая. Наиболее развит форт под CP/M, много хороших версий, но имейте в виду, что форт может работать без операционной системы путём прямых обращений к аппаратуре и на нём можно писать операционную систему...
vlad-kras
07.07.2022, 12:11
вся программа состоиит из множества вложенных подпрограмм,
Так ведь любая программа должна состоять из множества подпрограмм, которые выполняют какие-то законченные действия и все вместе они как раз и составляют программу. Даже в бейсике можно подпрограммы делать, но чаще видны бессистемные переходы.
Игра на форте есть, только не на спеке. Игра змейка (https://skilldrick.github.io/easyforth/#snake) ну и графика как обычно. Вообще под разные платформы форт делают/обсуждают - под спеки (http://programandala.net/en.program.solo_forth.html) под некст где-то на морда-книга, не достучаться, под мобилки. Даже внутрь браузеров пихают, неясно чем жаваскрипт не угодил, тем более есть гора фреймворков и библиотек.
фраза дня
в общем случае начинающий фортер думает также и о том, чтобы сделать в форте всё как у людей. Но через некоторое время начинает уже у людей всё делать как в форте.
Для CP/M и 8080/z80 горячо советую DX-Forth (http://dxforth.mirrors.minimaltype.com/). Он форт как форт, но может сохранить запускаемый .com файл с откомпилированным кодом (волшебное слово turnkey). Можно переделать и под без-ос, но я сам не пробовал.
"Компилятор форта" -- не бессмыслица. Обычный форт компилирует код в том смысле, что превращает слова в цепочку адресов и добавляет запись в словарь. Это стандартная терминология, хотя это не совсем то, что люди обычно подразумевают под компиляцией.
Так ведь любая программа должна состоять из множества подпрограмм, которые выполняют какие-то законченные действия и все вместе они как раз и составляют программу. Даже в бейсике можно подпрограммы делать, но чаще видны бессистемные переходы.
В принципе так и есть. Никто не запрещает писать маленькие компактные процедуры. Но Форт очень активно поощряет разбивку на маленькие слова. Это не то что бы какое-то искуственное ограничение, скорее философия языка. Например, трудно писать семиэтажный код, когда у локальных переменных нет имен (в форте это просто позиции на стеке, хотя бывают отклонения, но это не норма). Невольно задумываешься, может быть было бы лучше разбить это на разные слова, так что каждое из них выполняет свою маленькую функцию? Оказывается, что конечно лучше. Постепенно привыкаешь сразу так думать. Это небесполезный навык по жизни вообще.
- - - Добавлено - - -
Вдогонку про производительность. Обратная сторона разбиения на крохотные процедуры -- большой оверхед на вызовы и большая глубина стека. И чем чугунней процессор (а мы говорим о 8080 и z80) и чем органичней Фортовый код, тем сильнее это ощущается. Вот компактность действительно несравненная.
Вроде один из тетрисов для Ириши написан на Форте (скачать можно тут (http://oldpc.su/pc/Irisha/irisha.html))
один из тетрисов для Ириши написан на Форте
Я как раз с ним разбираюсь. До сих пор на наших восьмибитках мне попадался либо Кириллин-Клубович-Ноздрунов, либо какие-то недоделанные форты (начали и бросили). А этот вполне законченный, в достаточной мере реализующий стандарт, но от другого автора. Он сильно отличается от первого.
Обычно, если программа написана на форте, можно обрезать её до минимального ядра и получить рабочий форт. А тут фиг вам. К сожалению, автор видимо воспользовался целевой компиляцией при разработке этого тетриса, при этом имена словарных статей он не стал добавлять, а только зарезервировал место. В итоге, выкусить рабочую версию форта не получится. А восстанавливать имена достаточно муторно, даже имея дизассемблированный текст.
Наличие возможности делать целевую компиляцию говорит о том, что этот форт имел достаточно мощную базу, а автор был достаточно продвинутым фортером.
А тут фиг вам.
https://www.computerhistory.org/collections/catalog/102713898 ;) ?
Известные дизассемблеры типа IDA обламываются на дизассемблировании кода FORTH. Пытался я лет тридцать тому назад ковыряться с кодом Metal Mutant и, убив уйму времени, плюнул. Вот еще его (FORTH)один недостаток. Мало того, что исходники как Кубик Рубика, так еще и об исполняемый код "мозги поломаешь"! В Silmarils точно фортмэны присутствовали.
Вообще при современной мощности персоналок должны рулить какие-то интеллектуальные кросс-системы программирования. Чтобы чел создал проект на удобном для себя языке программирования, а она сама оптимизировала и выдала код для заданного железа.
Dart Alver
07.07.2022, 23:51
Вообще при современной мощности персоналок должны рулить какие-то интеллектуальные кросс-системы программирования. Чтобы чел создал проект на удобном для себя языке программирования, а она сама оптимизировала и выдала код для заданного железа.
LLVM , GCC ?
- скорость выполнения программ выше, чем в любых компиляторах (при условии правильного программирования) и лишь немного уступает ассемблеру,
- компактность кода рекордная (особенно после сжатия программы путём удаления идентификаторов слов), т.к. вся программа состоиит из множества вложенных подпрограмм,
- проблемами являются непривычный стиль программирования и то, что форт ориентирован главным образом на 8-мибитную архитектуру...
Насчёт скорости выполнения программ, вопрос спорный. Да "Hello world" определённо на форте скорее всего будет быстрее, но с усложнением задачи и улучшением автооптимизации компиляторов это преимущество постепенно спадает. Да форт пожалуй на ретроархитектурах выигрывал (ну по крайней мере не проигрывал) по скорости (насчет C не уверен) и по компактности (особенно если не тратить память на длинные идентификаторы слов/функций).
По поводу немного уступает ассемблеру. Тут сильно зависит от реализации переходов и контроля (или безконтроля) стека. Но в любом случае паразитные загрузки операндов в стек параметров, обслуживание стека возвратов... Думается на z-80 замедлят исполнение алгоритма со средне-оптимальным вариантом на ассемблере в 3-5 раз. На 86-х командная база работы со стеком поболе будет и возможно там сравнительная эффективность форта лучше.
у форта нет как такового компилятора. форт это компилятор-интерпретатор два в одном.
По крайней мере реализуемы как бы две фигни, которые делают из форт системы типа "компилированной" программы, про одну вы сами сказали "(особенно после сжатия программы путём удаления идентификаторов слов)", а вторая это форт-ассемблер - которая делает слово не из набора других слов а из линковки кодов ассемблерных примитивов.
LLVM , GCC ?
эти вообще 8-битные архитектуры не поддерживают, имхо.
Oleg N. Cher
08.07.2022, 07:12
Ну вот мне не пришлось ни плакать, ни колоться, а кроссплатформенность получилась сама собой.Форт не стандартизирует и не унифицирует ни графику, ни цветность, ни даже консольный ввод-вывод. Если у Вас "получилась кроссплатформенность", значит Ваша игра напоминает Hello World. В общем, я к тому, что Форт не делает чудес и невозможное возможным.
Опять же, если сравнивать процесс программирования на Форте с им же на асме - возможно, это и не худшая альтернатива. Но на более человеческих языках путь от прикладных концепций к машинным имхо короче.
У Форта есть недостаток: писать программы на нем получается раз в 10 медленней, чем на C++. Некоторые еще говорят, что Форт write-only, дескать трудно понимать. Но я и на C++ видел достаточно нечитаемого кода, так что это аргумент так себе.
Форт по своей природе является половинкой компилятора. Той, что хранит базу данных на уровне элементарных операций и порядка их исполнения. А второй половиной, отвечающей за разбор высокоуровневого представления, формирование кода для стековой машины, и его оптимизацию является сам программист.
Отсюда и проистекают все достоинства и недостатки Форта.
То есть, это полумера вроде расчётных систем на перфокартах, когда сами математические операции выполняли специализированные сумматоры, умножители, сортировщики, а перфокарты между ними переносили люди. У Фейнмана есть небольшое, но поучительное описание применения такой технологии при расчёте Бомбы. Там, между прочим, была и многозадачность и даже то, что позже назвали барабанным процессором. С людьми в качестве устройства управления этой, по сути программируемой машиной.
А потом всё переложили на железо и получили куда более эффективное решение. С Фортом всё те же дела -- современный компилятор ЯВУ справляется с задачей оптимизации не хуже человека в большинстве случаев, но зато он никогда не устаёт, не ошибается и работает с огромной скоростью.
Сейчас Форт представляет в основном музейную и немножечко образовательную ценность. Как впрочём и всё наше любимое ретрожелезо :D
PS: В качестве скриптового языка для машин с малой памятью он имеет некоторый смысл. Но и тогда удобнее иметь компилятор с более высокоуровневого представления. Тут есть весьма интересные варианты, например SmallTalk. Это ЯВУ с компиляцией в байткод, специально предназначенный для малых машинок, откуда и название.
современный компилятор ЯВУ справляется с задачей оптимизации не хуже человека
основная проблема не в оптимизации, увы. Вот spell checker-ы "догадываются" что хотел набрать человек в тексте и предлагают ему подсказки для правильного набора. Инструментальные средства такой поддержки не предоставляют, хотя возможности современных компьютеров позволяют. Программирование это же не создание литературных или музыкальных шедевров. Так что интеллектуальность, а порой и автоматизация остались в прошлом веке. В этом смысле любой ЯВУ ничем не лучше FORTHа. Ну разве что семантика попроще, так как чистый стек без меток и идентификаторов вполне себе садомазо. Программист тут еще и более крутой "эмулятор", чем в случае других ЯВУ.
Smalovsky
08.07.2022, 07:52
А если забомбить транслятор с процедурного яву в форт? Или сделать транслирование формул в стек-операции, для помощи фортерам.
Это было бы интересно. Или декларативную надстройку какую-нибудь пристыковать сверху.
Вот spell checker-ы "догадываются" что хотел набрать человек в тексте и предлагают ему подсказки для правильного набора. Инструментальные средства такой поддержки не предоставляют, хотя возможности современных компьютеров позволяют.
Давно, видать, в VS не заглядывали. И, насколько мне не изменяет память, такие же средства есть в VS Code (ну по крайне мере для C# и VS.NET).
А если забомбить транслятор с процедурного яву в форт? Или сделать транслирование формул в стек-операции, для помощи фортерам.
Тогда мы получим классический стековый компилятор. Как у паскаля, например. У оригинального там внутри как раз стековый байт-код. Просто никто это не называет "трансляцией в Форт".
В принципе, кстати, автономный (не кросс) транслятор паскалеобразного языка мог бы быть полезен. И технически возможен. Вопрос только в том, а кто его будет писать?
PS: Только если кто будет придумывать язык -- вот без этого словесного мусора в виде бегинэндов, пожалуйста. Фигурных скобок вполне достаточно.
- - - Добавлено - - -
Это было бы интересно. Или декларативную надстройку какую-нибудь пристыковать сверху.
Для Форта была и надстройка с прямой записью выражений, бесстековая со скобками то есть, и многое другое. И где это всё?
Фигурных скобок вполне достаточно.
END-а вполне достаточно, фигурные скобки тоже мусор
Lethargeek
08.07.2022, 10:40
современный компилятор ЯВУ справляется с задачей оптимизации не хуже человека в большинстве случаев,
это верно лишь для актуальных архитектур, да и то, в основном, потому что большинство современных кодеров человеков - слабые ассемблерщики
Сейчас Форт представляет в основном музейную и немножечко образовательную ценность. Как впрочём и всё наше любимое ретрожелезо
PS: В качестве скриптового языка для машин с малой памятью он имеет некоторый смысл.
для любых машин имеет смысл как ПЕРВЫЙ транслятор
Для Форта была и надстройка с прямой записью выражений, бесстековая со скобками то есть, и многое другое. И где это всё?
там же, а куда ж оно денется? просто начинающие фортеры довольно скоро перестают быть либо фортерами, либо начинающими, а опытным фортерам оно уже не надо
- - - Добавлено - - -
форт, однако, плоховато ложится на самые распространённые восьмибитные архитектуры 8080/Z80 и 6502
редкие 6809/6309 для него подходят гораздо больше
Я как раз с ним разбираюсь.
Тогда Вам до кучи oldpc.su/0/00.rar
END-а вполне достаточно, фигурные скобки тоже мусор
Тогда и END -- мусор, см Питон.
Тогда Вам до кучи
Спасибо, разобрался. Нашёл в конце тетриса слово, затирающее имена слов данными, находящимися по смещению -345h байт. Причём само слово тоже частично затёрто строкой "A:TETRIS ". Ещё есть слово, затирающее нулями сообщения в самом начале форта. Так что не всякий человек, глядя на дамп, поймёт, что это форт. :)
Так что не было никакой целевой компиляции.
А если забомбить транслятор с процедурного яву в форт? Или сделать транслирование формул в стек-операции, для помощи фортерам.
Помощи Фортерам от такого инструмента не будет.
Попытки трансляции Си в Форт были и они даже наверное в какой-то мере работают, но не раскрывают преимуществ Форта, а вот недостатков огребают сполна. Поискал и нашел один аж на Бизоне (https://github.com/dmedinag/C-to-Forth-compiler), но я видел и какие-то другие раньше. Сила Форта в детальной декомпозиции, это дает компактность и в известном смысле читабельность кода для тех, кто умеет читать. Трансляция с Си этого делать разумеется не может, получается некрасиво, медленно, и скорее всего более громоздко, чем справился бы компилятор. А чтобы компилятор занимался автоматической декомпозицией алгоритмов на простые сущности, о таком я пока не слышал.
https://www.computerhistory.org/collections/catalog/102713898 ;) ?
Что-то не понял, можно там что-либо скачать, или нет....
см Питон
Не свободное форматирование - тоже в топку
Всё равно не похож на figFORTH-83 (https://www.autometer.de/unix4fun/z80pack/ftp/sources/forth/forth130.asm)
У форта для ириши словарная статья содержит длину слова и до имени, и после.
Что-то не понял, можно там что-либо скачать, или нет....
figForth где-то можно скачать, но тут я просто скаламбурил в ответ на твое "фиг вам" =)
Что такое figForth сам плохо знаю. Помню только, что он как-то неудобно отличался от того, что мне на момент знакомства с ним казалось правильным.
- - - Добавлено - - -
Вдогонку про компиляцию C++ в Форт. Полтора года назад я сделал виртуальную машину ZPU для 8080 (https://zx-pk.ru/threads/32514-zpu-na-vektore.html). Это процессор со стековой архитектурой, очень близок по сути к Форту, можно сказать он реализует минимальное ядро, но для него есть gcc. Усилиями ivagor-a мы довели оптимизацию машины до предела. Так что собранный со всеми оптимизациями g++ (старенький конечно gcc) код вполне можно было на нем запускать, даже получилось поднять uIP. Было очень интересно, но вывод такой, что нативный компилятор все же лучше на пару порядков по скорости, а по объему примерно так же.
Это конечно не значит, что все уже сказано. ZPU например 32-битный, а эмулировать 32-битный проц на 8080 -- так себе занятие. Если сделать какой-нибудь такой ZPU16 и засесть переориентировать на него gcc, может быть можно получить результат намного более оптимальный. Может быть кто-то когда-нибудь вдохновится и сделает, я с удовольствием посмотрю.
Спасибо, разобрался.
А я правильно понял что и графический редактор у них на форте написан?
А я правильно понял что и графический редактор у них на форте написан?
Да, так же обработан, как и тетрис. Обфусцирован :)
Что такое figForth сам плохо знаю. Существует три стандарта языка форт, figfort. fort79 и fort83. Все три вполне хороши и нельзя сказать, что какой-то из них лучше. figfort очень мало отличается от fort79...
Когда используете форт-систему, надо знать в каком она стандарте, потому что есть серъёзные отличия для программиста...
Существует три стандарта языка форт, figfort. fort79 и fort83. Все три вполне хороши и нельзя сказать, что какой-то из них лучше. figfort очень мало отличается от fort79...
Когда используете форт-систему, надо знать в каком она стандарте, потому что есть серъёзные отличия для программиста...
Это не очень полный список, вернее может быть он был полным в 1983 году. Но вот из того, что я сам использовал, DX-Forth реализует ANS-Forth94, а gforth стремится соответствовать ANSI/200x.
Smalovsky
09.07.2022, 14:37
Длю спектрума сейчас популярны борель и агд. Боррель - расширеный компилятор бейсика с множеством библиотек. Агд - конструктор игр со скриптами на основе диалекта бейсика. У них минимальный порог вхождения.
Я думаю, из-за трудностей форта, никто его не использует. Так что перевес у бореля и агд.
Оберон мог обрести популярность, если бы он был интегрирован в игровой редактор как скриптовый язык. Недостаток форта и оберона - сложность по сравнению с борелем и агд. Так что, опять перевес у бореля и агд.
- - - Добавлено - - -
Длю спектрума сейчас популярны борель и агд. Боррель - расширеный компилятор бейсика с множеством библиотек. Агд - конструктор игр со скриптами на основе диалекта бейсика. У них минимальный порог вхождения.
Я думаю, из-за трудностей форта, никто его не использует. Так что перевес у бореля и агд.
Оберон мог обрести популярность, если бы он был интегрирован в игровой редактор как скриптовый язык. Недостаток форта и оберона - сложность по сравнению с борелем и агд. Так что, опять перевес у бореля и агд.
Спору нет, Форт это спортивно, но если надо гет шыт дан, то это что-то еще.
Oleg N. Cher
10.07.2022, 06:33
Недостаток форта и оберона - сложность по сравнению с борелем и агд.Недостаток Оберона в том, что он в ваших головах прочно ассоциируется с академичностью, недоделанностью, некрутостью и мёртвым Паскалем. Порог вхождения в Оберон намного ниже, чем в Бейсик (это если с нуля, а не после Спектрума. Впрочем, тоже можно поспорить), а в ZXDev - намного ниже, чем в Борель, который является всё-таки расширенным Бейсиком. Просто вавки - они в головах. Вот нравится людям Бейсик и всё тут. Хотя по сути что Борель, что Оберон - структурные языки со всеми фишками из Паскаля.
А у Форта много недостатков. Например, модульности нет.
- - - Добавлено - - -
Впрочем, у тех, кто здесь из вас любит Паскаль, Оберон уже не ассоциируется с Паскалем. Хотя он по сути Паскаль и есть. Парадокс. Но дело в том, что его по одёжке встречают. Всегда. Не углубляясь. ZXDev пробовало всего несколько человек.
Недостаток Оберона в том
недостаток оберона в том же в чем и у паскаля, си и т.п., у них нет киллер фичи, это просто "еще один императивный язык", а у forth есть киллер фича в том что он позволяет быстро создать систему разработки с нуля там где её по каким то причинам нет
Oleg N. Cher
10.07.2022, 11:51
Ну, такая киллер фича мало где бывает нужна. Для эффективного внедрения Форт-системы надо всего-навсего:
a) неизвестный процессор, для которого нету не то что Си, а вообще ни-че-го;
b) желательно минимальный объём ОЗУ;
c) максимальная простота и минимальный функционал, ибо горы наработок на Форте - просто нет.
Оберон же был без восторга принят сишниками и прочими скриптострадателями потому, что ниша в их умах уже занята. Хотя во многих областях Оберон справляется очень хорошо.
Оберон же был без восторга принят сишниками и прочими скриптострадателями потому, что ниша в их умах уже занята. Хотя во многих областях Оберон справляется очень хорошо.
ну видишь, ты описал четко область где нужен Форт, но про Оберон написал расплывчато, так как на деле он "один из многих"
Smalovsky
10.07.2022, 12:14
А есть ли хоть один действующий спектрумист фортер? Оберонщики точно есть. А вот фортеров, скорее всего, нет. Вывод: оберон обходит форт на данном этапе. Это победа оберона...
А есть ли хоть один действующий спектрумист фортер? Оберонщики точно есть. А вот фортеров, скорее всего, нет. Вывод: оберон обходит форт на данном этапе. Это победа оберона...
спектрумист фортер тот кто пишет на спектруме на форте? их нет так как нет какого то фаната кто сделал бы нормальный кросс компилятор с форт сходный скажем с small32 для PC, а так замечал что стоит сделать какую то кросстулзу и иностранный народ тут же начинает пытаться на ней игры писать, как было скажем с PC110
Smalovsky
10.07.2022, 14:25
Во мне начало формировдться мнение, что форт - фейк-язык для спектрума. Столько было шуму, а оказалось - программировать на нем неудобно и долго, врайт онли . Это все мне напомнило историю с линуксом. Тоже фейк ОС оказалась. Люди, поначалу, велись на разводку линуксойдов, но когда сталкивались с тем, что даже игру не могут установить, удаляли линукс. Но линуксойдов всего 5%, а фортеров и того меньше.
Защитникам форта надо напрячься.
Столько было шуму, а оказалось - программировать на нем неудобно и долго, врайт онли .
я не знаю кто такую чушь несет что программировать на нем неудобно, долго и вврайтонли, я писал на нем две коммерческие системы и могу сказать что такое может говорить только тот кто про форт даже книг не читал, вроде как недавно видел презентацию на одной норвежской конференции про самые худшие языки программирования, где презентующий идиот показал команды форт которых в стандарте и нет
Smalovsky
10.07.2022, 14:48
Raydac, ты неуточнил какие коммерческие системы ты писал. Возможно они узкоспециализированы, и форт оказался наиболее удобным для их разработки. Но на спектруме пишут чаще всего игры, а не такие системы. И вот, для игр форт может и не подходит. Особенно для игровых скриптов, которые должны быть удобно читаемы, так как часто редактируются.
Kakos_nonos
10.07.2022, 15:15
Тут svofski почти рогалик написал на форте для рк-86. Так что форт хороший язык для своей цели. И есть еще много "странно выглядящих" языков типа rebol, lisp, k, и все где-то используются.
Просто наш мозг привык к императивному стилю кода а-ля С, и считает "это-канон, остальное - отстой", но это не так. После тренировки мозг спокойно сможет читать и форт и лисп и прочее. А сейчас не читает из-за ригидности.
Вон, раньше на мк-61 писали и никто не жаловался.
vlad-kras
10.07.2022, 16:31
А есть ли хоть один действующий спектрумист фортер? Оберонщики точно есть. А вот фортеров, скорее всего, нет. Вывод: оберон обходит форт на данном этапе.
Вывод неверный. Считать нужно не программистов, а проекты написанные с применением тестируемого языка, чтобы хоть с ассемблерными вставками к примеру для рисования спрайтов, но например логика чтобы была написана не в машкодах. Или другая какая-то хоть часть проекта, но довольно значительная, была бы написана на форте/си/обероне. Без наличия проектов вывод делаю такой, что хоть форт, хоть оберон одинаково бесполезны для создания игр на спектруме. Да и вообще при наличии компиляторов для языков в 80х, например HiSoft, есть ли коммерческие игры, выпущенные до начала упадка спека с применением тех самых компиляторов?
Smalovsky
10.07.2022, 17:00
vlad-kras, я видел игры на обероне. Например, 2048. Еще много конверсий есть с бейсика на оберон. А вот, на форте не видел игр для спектрума, только читал что есть одна игра типа змейки.
Ну, на обероне игр 5-10. На форте 1 игра. Перевес не в пользу форта.
Просто наш мозг привык к императивному стилю кода а-ля С, и считает "это-канон, остальное - отстой"
Ну он и не декларативный. Он все равно что китайский язык для русского человека. Может ли русский выучить китайский? Если нужда сильно припрет - может! Так и форт. К тому же действительно мало примеров, мало интересных книжек типа "Форт? Это очень просто!"
C кстати после паскаля тоже весьма и весьма "модерн", по первости ошибки огребаешь на этапе исполнения непонятно откуда.
Просто наш мозг привык к императивному стилю кода а-ля С, и считает "это-канон, остальное - отстой", но это не так.
Форт тоже императивный ;)
vlad-kras
10.07.2022, 21:14
vlad-kras, я видел игры на обероне. Например, 2048. Еще много конверсий есть с бейсика на оберон. А вот, на форте не видел игр для спектрума, только читал что есть одна игра типа змейки.
Ну, на обероне игр 5-10. На форте 1 игра. Перевес не в пользу форта.
Я тоже прочитал, что тетрис на форте написан, но для Ириши. Примерно одного уровня игры 2048 и тетрис. Как найти названия тех самых много конверсий есть с бейсика на оберон ?
Да и сравнивать перевес желательно учитывая средства разработки. Под форт есть то, что было в 80х и с ограничениями спектрума по памяти. Там даже 128К может и не поддерживается, а это влияет на допустимый размер исходника программы. Оберон - это же среда для кросс-разработки?
И еще элементарное незнание потенциальными разработчиками на форте о существовании этого самого языка. Тут кто первым представил широкой публике свою среду, тот и выиграл, потому что размер этой широкой публики весьма ограничен поклонниками спектрума.
А что плохого в кросс-средах для разработчиков? Если в результате получается вполне приличный код.
размер этой широкой публики весьма ограничен поклонниками спектрума
Вот как раз наличие кросс-сред(ств) и эмуляторов и расширяет и ряды разработчиков и ряды пользователей. Потому как задействовать все возможности даже компьютеров середины 2000-х годов неимоверно сложнее и затратней для разработчиков.
Oleg N. Cher
10.07.2022, 23:49
ну видишь, ты описал четко область где нужен Форт, но про Оберон написал расплывчато, так как на деле он "один из многих"Хорошо, я напишу менее расплывчасто: Оберон не столько один из многих, как один из первых. А ещё - одна из самых стройных попыток обобщить и осмыслить достижения императивного программирования в маленьком языке, прививающем хороший стиль с самого начала.
Столько было шуму, а оказалось - программировать на нем неудобно и долго, врайт онлиНу на самом деле он врайт онли не больше, чем ассемблер. В любом случае, как концепт - он очень интересен. Но смысл программировать на нём падает экспоненциально с умощнением платформы, на которой будет работать Форт-система.
Смотрите как можно на Форте (при соответствующих подключенных словарях):
ASMZ80 [BC] + [HL] => [HL] ; ( ld a,(bc): add (hl): ld (hl),a
<- и забыли про неэффективность стека как про страшный сон )
Как найти названия тех самых много конверсий есть с бейсика на оберон ?
https://zx-pk.ru/threads/18472-moshchnaya-sreda-zxdev-dlya-razrabotki-na-pyati-yazykakh-dlya-zx-gotova-k-testirovaniyu.html?p=1127125&viewfull=1#post1127125
Ещё есть форум для поддержки: https://zx.oberon.org/forum/
Однако, учитываем, что самые серьёзные игроделы за Оберон ещё не брались. Он им попросту не нужен, как и любой другой ЯВУ. Как и демо-мейкерам и прочим другим товарищам, не признающим ничего, кроме ассемблера.
Оберон - это же среда для кросс-разработки?С XDev (https://zx.oberon.org/xdev) получилось так, что это нахальная попытка писать на Обероне для ретро, когда компиляторов в разные машкоды попросту нет. Но попытка успешная. Так что не будем её сбрасывать со счетов.
А ещё это живой проект, активно развивающийся в сторону разработки для разных ретро-платформ. Но - в основном усилиями одного человека, который, кстати, открыт к общению и сотрудничеству с заинтересованными лицами.
- - - Добавлено - - -
С другой стороны, смотрите как можно на Обероне:
MODULE TestCalc;
IMPORT b := Basic, c := CalcZX;
BEGIN (*$MAIN*)
b.Init;
c.PushWord(1000); (* 1000 *)
c.PushByte(24); (* 24 *)
c.Begin;
c.add; (* + *)
c.pi_div_2; (* PI/2 *)
c.duplicate; (* DUP *)
c.add; (* + *)
c.add; (* + *)
c.End;
b.PRSTR("1000 + 24 + PI = ");
c.Print_PopReal();
b.Quit
END TestCalc.Это тоже машкод, вызывающий пятибайтный калькулятор Спека в ПЗУ, целевой код очень компактный.
Lethargeek
11.07.2022, 00:11
А у Форта много недостатков. Например, модульности нет.
В смысле - нет? Есть вложенные словари, есть возможность загружать их по отдельности и условно. Можно даже аналог make-файла запилить на том же Форте. Какой "модульности" тебе еще не хватает?
Oleg N. Cher
11.07.2022, 00:14
Не хватает нормальной модульности. С возможностью акцентировать на ключевых понятиях, запретив светить некоторые сущности наружу и т.д. Но в контексте появления Форт-систем (в ограниченном объёме ОЗУ) в нормальной модульности не было необходимости. Но то далёкие и прошлые времена.
Lethargeek
11.07.2022, 00:23
Не хватает нормальной модульности. С возможностью акцентировать на ключевых понятиях, запретив светить некоторые сущности наружу и т.д.
Что значит "нормальной"? Давай конкретнее, без вот этой вот пустой лирики о "ключевых" и "некоторых".
Форт-программа начинает выполняться уже в ходе компиляции/парсинга. Эта киллер-фича и позволяет что угодно делать с исходным текстом.
Oleg N. Cher
11.07.2022, 00:42
Мы сейчас не про киллер фичу. А про то, что Форт-словари это мусор, где есть все слова. А минимальные требования к модульности подразумевают хотя бы возможность ограничить использования некоторых слов извне. Не говоря уже, например, про динамическую загрузку-выгрузку модулей.
https://oberoncore.ru/infobase/module
- - - Добавлено - - -
Давайте во избежание дальнейших дебатов просто остановимся на том, что если в Форте есть модульность, то она лично меня вообще не радует, и я вижу её по-другому. И не хочу менять свой "стиль мышления" в пользу высосанных из пальца словарей вместо модулей.
Dart Alver
11.07.2022, 02:00
Это все мне напомнило историю с линуксом. Тоже фейк ОС оказалась. Люди, поначалу, велись на разводку линуксойдов, но когда сталкивались с тем, что даже игру не могут установить, удаляли линукс.
Не понял, что за наезд ? Уже много лет винду почти не пользую (оставил на планшете на всякий случай). Я сейчас с MX-linux-а пишу, вполне нормальная ось. По мне удобней винды будет. А игры ... ну у меня вообще комп не игровой, хотя как-то оверлорда виндового ставил на пробу - без проблем работала. Кстати слышал новость что microsoftы свой linux выпустили ? ))
Защитникам форта надо напрячься.
Не надо никому напрягаться. Кто на чём хочет, тот на том и пишет.
их нет так как нет какого то фаната кто сделал бы нормальный кросс компилятор с форт сходный скажем с small32 для PC
Кросс-компилятор с форт - это уже не совсем форт, поскольку форт система работает именно на том компе для которого пишется программа. Хотя согласен что нормального форта для 128k и тырдос не видел.
ASMZ80 [BC] + [HL] => [HL] ; ( ld a,(bc): add (hl): ld (hl),a
<- и забыли про неэффективность стека как про страшный сон )
Или наоборот похерили эффективность стека )) Приблуды по исправлению обратной записи как раз отнимают ту гибкость стекового оперирования в угоду оперирования переменными
Есть вложенные словари, есть возможность загружать их по отдельности и условно.
Он похоже имеет ввиду инкапсуляцию.
А про то, что Форт-словари это мусор, где есть все слова. А минимальные требования к модульности подразумевают хотя бы возможность ограничить использования некоторых слов извне. Не говоря уже, например, про динамическую загрузку-выгрузку модулей.
Технически можно создать форт систему под ZX с учётом подобных запросов. И да загрузка, выгрузка готовых(слинкованных) словарей, насколько помню временами в форте встречалась.
Давайте во избежание дальнейших дебатов просто остановимся на том, что если в Форте есть модульность, то она лично меня вообще не радует, и я вижу её по-другому. И не хочу менять свой "стиль мышления" в пользу высосанных из пальца словарей вместо модулей.
Ну если ктото подчерпнёт какие идеи для реализации в своих проектах уже хорошо, а не подчерпнёт тоже ничего плохого не будет ))
Лично я скорее вижу в форт-системе для spectrum тот недостаток, что она в параметрах стека использует как минимум слова, в то время как при программировании на асме наиболее часто приходится работать с байтами.
Smalovsky
11.07.2022, 02:20
Я насчитал 12 игр для спектрума на обероне по ссылке Олега. Есть вполне пристойные: болдердаш и рогалик.
Рогалик на обероне дописанный. На обероне есть законченные качественные проекты.
Придется мне для сравнения искать змейку на форте.
Lethargeek
11.07.2022, 09:27
Мы сейчас не про киллер фичу. А про то, что Форт-словари это мусор, где есть все слова. А минимальные требования к модульности подразумевают хотя бы возможность ограничить использования некоторых слов извне.
то есть про команду FORGET и отличие CONTEXT от CURRENT ты не слыхал?
Не говоря уже, например, про динамическую загрузку-выгрузку модулей.
да хоть Форт внутри Форта при желании
Давайте во избежание дальнейших дебатов просто остановимся на том, что если в Форте есть модульность, то она лично меня вообще не радует, и я вижу её по-другому.
просто ты не знаешь и не понимаешь азов Форта
И не хочу менять свой "стиль мышления" в пользу высосанных из пальца словарей вместо модулей.
проще говоря, по рельсам ехать пассажиром тебе комфортнее, чем осваивать вождение вездехода
- - - Добавлено - - -
Лично я скорее вижу в форт-системе для spectrum тот недостаток, что она в параметрах стека использует как минимум слова, в то время как при программировании на асме наиболее часто приходится работать с байтами.
разве в спековерсиях нет стандартных записи и чтения байта?
хотя где дошло до критической возни с байтами, всяко выгоднее процедуру в кодах использовать
vlad-kras
11.07.2022, 11:17
А что плохого в кросс-средах для разработчиков? Если в результате получается вполне приличный код.
Наоборот, кросс-разработка под более мощной системой гораздо комфортнее. И поэтому если взять примерно сравнимые устаревший паскаль но с IDE под windows и модерновый оберон, но представим что существующий только внутри спектрума, тогда многие не согласятся кодить под устаревшей системой. Мне удобнее мышкой куда ткнул, там и вводить текст, выделил-скопировал-вставил-удалил в нормальном текстовом редакторе и даже экономия нажатия клавиш для ввода бейсик-токенов как ключевых слов внутри спектрума проиграет на винде десятипальцевому методу написания этих токенов буква за буквой.
Ну и сам ввод текста под виндой поскорее будет, компиляция тоже и плюс нет ограничений на размер исходников - память прямо бесконечная по меркам спектрума.
Это при при прочих равных - сходный язык, наличие библиотек. Если язык незнакомый против знакомого, то программист скорее выберет знакомый язык.
Вот как раз наличие кросс-сред(ств) и эмуляторов и расширяет и ряды разработчиков и ряды пользователей.
Ряды разработчикив среди пользователей согласен, расширяет. Ряды пользователей среди всего населения не расширяет. Попробуйте предложить кому-то возрастом 30 минус поиграть в игру уровня ZX Spectrum, C64, Atari, Amiga, NES, PS1 и т.д. Да еще у спектрума и клэшинг.
Я насчитал 12 игр для спектрума на обероне по ссылке Олега. Есть вполне пристойные: болдердаш и рогалик.
Рогалик на обероне дописанный. На обероне есть законченные качественные проекты.
Придется мне для сравнения искать змейку на форте.
Что ту змейку искать, ссылка же была приведена змейка (https://skilldrick.github.io/easyforth/#snake).
Игра на форте есть, только не на спеке. Игра змейка (https://skilldrick.github.io/easyforth/#snake) ну и графика как обычно.
Вообще чтобы аркадную игру делать, нужно чтобы возможность была не только логику писать, но и графику выводить, реагировать на кнопки, спрайты двигать, звуки и музыку исполнять. Без этого разработка печальна, а игры получаются в стиле текстовых квестов. Laser basic предложил графику - ну и подтолкнул разработку.
Кросс-компилятор с форт - это уже не совсем форт, поскольку форт система работает именно на том компе для которого пишется программа
С чего бы это вдруг? Для кросс-инструментальных средств вообще нет никаких ограничений и никаких пределов! Ограничено только фантазией разработчика и его возможностями.
- - - Добавлено - - -
Вообще чтобы аркадную игру делать, нужно чтобы возможность была не только логику писать, но и графику выводить, реагировать на кнопки, спрайты двигать, звуки и музыку исполнять.
вот в том числе и поэтому кросс-система и нужна! Она как роботизированный комплекс должна уметь перенастраиваться и выдавать любую желаемую продукцию. С учетом среды исполнения разумеется.
- - - Добавлено - - -
Ряды пользователей среди всего населения не расширяет. Попробуйте предложить кому-то возрастом 30 минус поиграть в игру
а это смотря какая игра. И вот представьте ситуацию: на zx она есть и доступна, а на pc нет или недоступна. Затраты другие, и на pc как правило большие. Где больше возможности, там и требования выше.
vlad-kras
11.07.2022, 14:22
И вот представьте ситуацию: на zx она есть и доступна, а на pc нет или недоступна.
Не могу эту ситуацию представить, потому что эта же игра для PC будет доступна в эмуляции. А представить себе сценарий, что человек видит игру, знает что она на спектрум и при этом не знает про эмуляторы тоже затруднительно. Вероятно он видит как его знакомый рубится в игру, ну тогда знакомый ему все и объяснит.
Smalovsky
11.07.2022, 14:31
А какой кросс форт есть для z80?
Как-то обидно что на спектруме одна игра на форте. Неужели нельзя было с юпитера эйса портировать? На юпитере все же игры на форте.
потому что эта же игра для PC будет доступна в эмуляции
так это тоже ZX-Spectrum :) Архитектура та же, ограничения почти те же( понятно, что скорость выполнения кода можно значительно увеличить, но тогда уже нельзя переносить на реальное железо), ну а часть возможностей реального железа наоборот отпадет, если они не реализованы в эмуляторе.
Говоря же о неограниченных возможностях кросс-инструментов, я конечно имел в виду и некоторые возможности интеллектуальных сервисов: умных конверсий, убирающих множество рутинных действий, которые на реальном железе вряд ли можно осуществить. Особенно связанных с графикой и музыкой.
- - - Добавлено - - -
А какой кросс форт есть для z80?
по моему никто так и не написал, а так вот такой есть для кучи процессоров (https://www.mpeforth.com/software/forth-cross-compilers/forth-7-cross-compilers/)
Для win32 качнул без подписки, только не понял урезанная версия или по таймеру вырубится.
Oleg N. Cher
11.07.2022, 17:01
Или наоборот похерили эффективность стека )) Приблуды по исправлению обратной записи как раз отнимают ту гибкость стекового оперирования в угоду оперирования переменнымиТак а нафига нам гибкость головокружительного манипулирования данными на стеке, раз это неэффективно на Z80, да и тяжело для головы. Здесь же дело в том, что программу на Форте тяжело понять, а у программиста и помимо расшифровывания исходников голова занята другими вещами.
Лично я скорее вижу в форт-системе для spectrum тот недостаток, что она в параметрах стека использует как минимум слова, в то время как при программировании на асме наиболее часто приходится работать с байтами.Вот да, это действительно так.
Я насчитал 12 игр для спектрума на обероне по ссылке Олега. Есть вполне пристойные: болдердаш и рогалик.Справедливости ради: Bolder наполовину на асме, но зато есть версия, работающая на Спеке 16K. Игра на ЯВУ - на Спеке 16К. А рогалик, увы, не совсем законченный и без исходников.
то есть про команду FORGET и отличие CONTEXT от CURRENT ты не слыхал?Слыхал. Но я прихожу в уныние от понятия "кусок памяти, в котором словари, данные и код вперемешку".
просто ты не знаешь и не понимаешь азов ФортаДа ладно? Я ещё в 1996-м сделал свой транслятор Форта.
проще говоря, по рельсам ехать пассажиром тебе комфортнее, чем осваивать вождение вездеходаПроще говоря, я люблю получать удовольствие от программирования. А тут, скорее, ехать на самокате надо, притом вниз головой. Успокаивая себя тем, что освоил прогрессивное мышление, а остальные как дураки продолжают ездить вверх головой. :v2_dizzy_punk:
- - - Добавлено - - -
Lethargeek, хорошо, ты при помощи FORGET забудешь все слова, загруженные после указанного. Это, по-твоему, удобно? Это как-то напоминает модульность или динамическую загрузку? Форт вместо строгих лаконичных интерфейсов и скрытых реализаций даёт просто лапшу из слов, в которой можно путаться веками.
Lethargeek
11.07.2022, 17:36
Слыхал. Но я прихожу в уныние от понятия "кусок памяти, в котором словари, данные и код вперемешку".
а что, в модулях не вперемешку код с его служебными данными?
Да ладно? Я ещё в 1996-м сделал свой транслятор Форта.
в мире Форта "свой транслятор" это уровень начинающих))
Lethargeek, хорошо, ты при помощи FORGET забудешь все слова, загруженные после указанного. Это, по-твоему, удобно?
...а потом залезу в исходник FORGET и догадаюсь, как можно удобнее забывать
Это как-то напоминает модульность или динамическую загрузку? Форт вместо строгих лаконичных интерфейсов и скрытых реализаций даёт просто лапшу из слов, в которой можно путаться веками.
специально для любителей лаконичности: https://theforth.net/package/modules/current-view/README.md
Oleg N. Cher
11.07.2022, 17:51
а что, в модулях не вперемешку код с его служебными данными?Видишь ли, что я хотел сказать. Что модуль в моей голове это отдельная единица. А слова или даже словари Форта - нет.
в мире Форта "свой транслятор" это уровень начинающих))Хорошо, я начинающий.
...а потом залезу в исходник FORGET и догадаюсь, как можно удобнее забыватьА не надо забывать "всё после" растущей лапши из слов. Надо манипулировать модулями и сущностями внутри. Это значительно более удобно. По аналогии с электроникой: модули это блоки, реализующие законченные функции, предоставляющие интерфейсы для входов и выходов. А Форт предлагает делать всё насыпью навесным монтажом без явной декомпозиции.
Для win32 качнул без подписки, только не понял урезанная версия или по таймеру вырубится
Кажется понял. Он не оплаченный .exe не сохраняет. Но вот здесь вроде есть "таблетка" от этого (http://www.imho.ws/showthread.php?t=48989). В раньшие времена конечно можно было бы и 17 евро за годовую подписку заплатить, но теперь платежи заблокированы. Против Oberon-а ничего не имею. Но это совсем другой язык для профессионалов. Форт же насколько мне помнится из переводных книжек советских времен выдумал какой-то чудак-астроном для своего телескопа.
И исходя из принципа Мао "пусть расцветают все цветы", почему бы и с Фортом не побаловаться? Почему эти чудаки из MPE обошли своим вниманием процессор z80 и платформу zx spectrum, но поддержали архитектуру z8 совершенно непонятно.
Oleg N. Cher
11.07.2022, 21:48
Точно, andrews. Вот и я побаловался с Фортом, но очень уж он тяжёл на голову.
Может я плохо объяснил, но смотрите: грузим исходник на Форте, транслируем. Он ложится в память с адреса HERE (свободный кусок памяти). Теперь для каких-то нужд заказываем себе массив, допустим, на 100 элементов. Он будет размещён уже после словарей снова в куске свободной памяти. Теперь нам понадобилось выгрузить, т.е. "забыть" загруженный "модуль", т.е. словарь. Мы его забываем командой FORGET - и вуаля - наш массив тоже забыт, так как находился после модуля. Т.е. там даже нет штатной возможности выделить память произвольно и произвольно освободить - всё привязано к HERE.
Может я действительно не очень хорошо понимаю Форт, но представление у меня о нём достаточно хорошее. И Ноздруновым и Барановым я зачитывался в своё время. И мне достаточно этого, чтобы понять: базовые абстракции Форта слишком уж отличаются от тех понятий, которые бы хотел иметь я. Это конечно не значит, что нельзя реализовать свои любые понятия. Но штатно их нет, стандартными они не будут. И пользоваться ими будет ровно один человек - их автор. Если будет.
"Таблетка" не помогла. Может я затупил. .exe-ники не появляются.
Олег Вы профи, я ну правда сейчас просто интересующийся пенсионер. Ваши аргументы серьезны. Для сложного проекта безусловно это очевидно неудобно и PASCAL и OBERON лучше для этой цели подходят.
Я же от другого отталкиваюсь. Если его FORTH портировали чуть ли не на первые телефоны без операционки и различные микроконтроллеры, то почему же он не появился на простых 8 битных компьютерах? Кстати форум по FORTHу был у покойного знаменитого Ивана Макарченко (http://fforum.winglion.ru/). Теперь уж мне совсем непонятно, почему он не был портирован на z80 и zx spectrum?
Oleg N. Cher
11.07.2022, 22:10
Отсюда риторический вопрос: почему программист должен мыслить категориями вроде "свободных областей в памяти между словарями A и B" вместо нормальных проверенных временем и удобных абстракций типа модуля? Это моя основная претензия к Форту. Но как концепция, да ещё и при маленьком объеме ОЗУ - выше всяких похвал. Очень жаль, что его не шили в ПЗУ микрокомпьютеров вместо Бейсика.
- - - Добавлено - - -
andrews, я тоже интересующийся пенсионер и к тому же "восхищённый на всю голову" оберонщик ;)
Почему же он не появился? Появился. Ведь даже для Спектрума сколько реализаций. И даже для БК'шки есть. И всяческих клонов Радио 86РК. Да практически на каждой ретромашинке были реализации Форта. Вопрос в другом - почему его не использовали массово для разработки. Но может именно из-за неудобных абстракций.
И пользоваться ими будет ровно один человек - их автор. Если будет.
Видимо Вы вдосталь с ним наигрались. Я же очень давно почитал Ноздрунова да так на большее и не сподобился. Слишком сильный негативный тогда был для момент "польская обратная запись". Да и за всю жизнь( а я программистом поработал в 6 конторах) С/С++ был везде, ассемблер был везде, по одному разу были PASCAL, Modula и PL/M. Forth-а даже близко нигде не было.
- - - Добавлено - - -
Почему же он не появился? Появился. Ведь даже для Спектрума сколько реализаций
я про кросс-компилер интересуюсь. Чтобы он на выходе выдавал исполняющийся на целевом железе код, возможно со встроенным исполнителем своего кода. Я боюсь ошибиться, но помнится, он промежуточным кодом процесс трансляции завершает? Но чтобы и на pc при других опциях код выполнялся. Такой Вам попадался? Ну последнее конечно слишком уж...требование.
Просто на эмуляторах с проектом даже простейшим работать удовольствие ниже плинтуса, тем более для пенсионера.
Oleg N. Cher
11.07.2022, 22:29
Были Форты с трансляцией в натив. У Черезова был точно. GP-Forth Ларионова тоже имел слово для целевой компиляции. В целом этот момент вполне реализуем. Но чаще всё-таки шла Форт-система, а внутри неё уже приложение. Такой подход более естественен для Форта. (Как, кстати, и для Оберон-систем)
А может просто, прочитаем первый пост.... А то уж начали сраться ни о чем.....
И да кому нужны эти ваши обероны, борели и паскали и иже с ним ними, если на них ничего путного написать под zx не вариант??????
Spectramine
12.07.2022, 00:21
Очень жаль, что его не шили в ПЗУ микрокомпьютеров вместо Бейсика.
Шили же. Создатели Спектрума Альтвассер и Викерс, уйдя от Синклера, создали комп Юпитер Эйс, с Фортом в ПЗУ. Увы, комп, по сравнению даже со Спектрумом, был шагом назад - ч/б, мало памяти, псевдографика, и даже Z80 на меньшей частоте.
Форт хорош компактностью, быстродействием (по сравнению с интерпретируемыми языками), и самораскруткой, а плох нечитабельностью и ограниченностью языковых средств. В наше время его достоинства востребованы в очень узкой нише, а недостатки делают его неконкурентоспособным в мэйнстриме. Писать на нем для ретромашин дело ещё более на любителя, чем обычно.
Я бы сказал, Форт это скорее легко расширяемая операционная система, чем язык программирования.
Oleg N. Cher
12.07.2022, 01:00
кому нужны эти ваши обероны, борели и паскали и иже с ним ними, если на них ничего путного написать под zx не вариант??????А на каком языке, кроме асма, вариант написать что-то путнее под ZX?
(подсказка: я бы смотрел в сторону PL/M, но... для Z80 его нет, только для 8080. Но - тоже архаичный язык).
А почему на бореле нельзя? На конкурс "Твоя игра" была представлена игра на бореле, притом очень приличная (название сейчас не помню). Понятно, что там кодовые вставки, но куда ж без них. И на z88dk можно вполне хорошие игры делать. Но не такие крутые как Dizzy 8.
Оберон же я никогда не позиционировал как супер-пупер-язык для ретроплатформ. Но с кодовыми библиотеками он вполне вкусен для макетирования и экспериментов. Впрочем, на нём даже можно попробовать написать что-то приличное. Ведь был мэйлер Lara Croft на Си. Притом это был HiSoft C, если я правильно помню. А это очень неэффективный компиль, практически все кросс-компиляторы его превосходят по качеству кода.
Вопрос в требованиях к средству. Если писать на нём Dizzy 8 или подобную игру, выжимающую всё из платформы, то нет. Но для начинающих в качестве вводного в разработку для ретро средства - вполне. Для многих других применений тоже.
Если же немного углубиться в полезные фичи Оберона (не киллер-фичи) - это попытка с его помощью преодолеть сложность современных IT-технологий, кроме того - это компилируемый в натив язык со сборкой мусора, а во времена появления Ada или C++ такое было в новинку. Также Оберон является принципиально более безопасным языком - никаких сегфолтов никогда, поскольку он распространяет строгий механизм статической безопасности типов на динамические записи.
Форт же - очень опасный язык, где самая невинная операция с переменной (слова ! и @ работают с адресами) может привести к краху системы. Проверки же сильно убили бы производительность. Вот моя претензия №2 к Форту.
Smalovsky
12.07.2022, 04:52
LW, много на компиляторах пишут. На бореле написали 71 игру. На z88dk официально 20 игр( неофициально около 30). На z88dk написали известную игру Ninjajar. Помню, много людей в нее заигрывались. Игра была взрывным хитом. На бореле тоже есть свои хиты. Д. Бэглей( автор Vade Retro) свои ранние игры писал на бореле. Для Некста есть на бореле рпгшка.
Ведь был мэйлер Lara Croft на Си. Притом это был HiSoft C, если я правильно помню. А это очень неэффективный компиль, практически все кросс-компиляторы его превосходят по качеству кода.
Это был ZED (https://zxart.ee/rus/soft/prikladnoe-po/domestic/zed/).
Форт же - очень опасный язык, где самая невинная операция с переменной (слова ! и @ работают с адресами) может привести к краху системы. Проверки же сильно убили бы производительность. Вот моя претензия №2 к Форту.
Nicolas Rodionov. Еще раз о настоящих программистах (https://nrodionov.livejournal.com/9895.html)
Каким надо быть высокомерным идиотом для того, чтобы изобрести обучающий язык таким, как Паскаль.
Все ученики и последователи Никлауса Вирта будут великолепно читать комментарии и понимать, что BEGIN значит НАЧАЛО, а END - КОНЕЦ. На большее потянуть они не смогут.
Если уж кому-то в голову пришло, что программированию надо учить на языках высокого уровня, то для этой цели можно использовать ФОРТ, в крайнем случае СИ (если не выделять в нем приемы структурного программирования). В этом случае, по крайней мере, придется приложить мозговые усилия для решения той или иной задачи. Язык программирования, который своими средствами не способен вывести из строя систему, не может считаться гибким и не должен считаться языком программирования вообще.
;)
Smalovsky
12.07.2022, 10:12
creator, слова Раидионова справедливы для эпохи компьютеров на которых любые проблемы решались кнопкой "сброс". В эпоху больших ОС, личных данных и интернетмагазинов, его слова носят бредовый оттенок.
- - - Добавлено - - -
creator, слова Раидионова справедливы для эпохи компьютеров на которых любые проблемы решались кнопкой "сброс". В эпоху больших ОС, личных данных и интернетмагазинов, его слова носят бредовый оттенок.
Lethargeek
12.07.2022, 10:16
Видишь ли, что я хотел сказать. Что модуль в моей голове это отдельная единица. А слова или даже словари Форта - нет.
абаснуй - с чего это не отдельная?
А не надо забывать "всё после" растущей лапши из слов.
структурируй в разные словари, и в отлаженной программе "лапши" не будет
Надо манипулировать модулями и сущностями внутри. Это значительно более удобно.
наиболее удобно лишнее вообще не делать, чем быть вынужденным делать (пусть и "удобно")
По аналогии с электроникой: модули это блоки, реализующие законченные функции, предоставляющие интерфейсы для входов и выходов. А Форт предлагает делать всё насыпью навесным монтажом без явной декомпозиции.
ты же тут требовал инкапсуляцию для Форта - так её можно сделать даже древним FORGET при вложении словарей
а по ссылке выше пример более продвинутого решения (но при этом экономного и простого)
так что Форт предлагает полную свободу в реализации, просто надо не лениться немножко думать
Может я плохо объяснил, но смотрите: грузим исходник на Форте, транслируем. Он ложится в память с адреса HERE (свободный кусок памяти). Теперь для каких-то нужд заказываем себе массив, допустим, на 100 элементов. Он будет размещён уже после словарей снова в куске свободной памяти. Теперь нам понадобилось выгрузить, т.е. "забыть" загруженный "модуль", т.е. словарь.
во-1, в силу компактности Форта выгрузка может не понадобиться вообще
во-2, возможно, забыть можно до заказа массива
Мы его забываем командой FORGET - и вуаля - наш массив тоже забыт, так как находился после модуля. Т.е. там даже нет штатной возможности выделить память произвольно и произвольно освободить - всё привязано к HERE.
в-3, не забыт, если он в другом словаре (и да, это АЗЫ)
а вообще, чем возиться с надуманной "модульностью" и прибитой к ней гвоздями функциональностью, на Форте, наверно, проще и намного полезней общий сборщик мусора запилить, если уж без динамической модели кюшать не можется
Форт же - очень опасный язык, где самая невинная операция с переменной (слова ! и @ работают с адресами) может привести к краху системы.
потому что это системный уровень) абстрагируйся повыше, и будет щастье
так-то и спектрум-бейсик весьма опасен, можно всё похерить невинным POKE :D
Проверки же сильно убили бы производительность. Вот моя претензия №2 к Форту.
интересно, к Си такие же претензии у тебя? а в Обероне, значит, не убивают?
Smalovsky
12.07.2022, 10:28
Читаю защитников форта и офигеваю. И все они знают, и все парадигмы программирования могут реализовать, и мышление у них другое. Только почему-то на спектруме на форте написана только одна игра. А где ж эти повелители матрицы раньше были? Где их игры или программы?
"Товарищи, товарищи, цигель, товарищи" Бог с ними с претензиями на самый-самый! Я выше в треде ссылку давал на сайт покойного Ивана Макарченко(SPRINTER если кто вдруг забыл). Там и сегодня матерые фортмены и весьма активные. Даже форт-процессор железный сами мастерят! И там даже про 64 битный FORTH реклама. Качать не пробовал, у меня desktop c Windows7 32 бит. Но для меня это свидетельство, что похороны FORTH в середине 2000-х были явно преждевременны. Раз кто-то его в новый 64 битный мир с собой берет. И правильно ли я понял, что превратить OPEN SOURCE FORTH в кросс-инструмент задача вполне реальная?
- - - Добавлено - - -
Где их игры или программы?
ну, не у всех было время и возможности. Вообще сейчас молодые это больше "про бабки зарабатывать". Причем самым доступным способом. Кто-то на FORTHе смог заработать?
Lethargeek
12.07.2022, 12:05
Только почему-то на спектруме на форте написана только одна игра.
нету времени, а если есть, то для спека лучше сразу ассемблер, который для фортера не сложнее
форт же может применяться при отладке и прототипировании, а в игре от него какие-то обрезки могут остаться
Приветствую всех.
В былое время выпускались процессоры с FORTH на борту 65F11 и 65F12.
Достать так и не удалось.
Можно было бы на сегодня с эмулировать, для интересу.
Smalovsky
12.07.2022, 14:16
Lethargeek, а почему у других время было? Почему на бореле около 70 игр, а на z88dk около 30? Дело не во времени и ассемблере. Значит, у форта есть серьезные недостатки. Как так вышло что у фортеров время было только на одну игру, а оберонщики нашли время на целых 12?
В былое время выпускались процессоры с FORTH на борту 65F11 и 65F12.
До известных событий могли с легкостью привезти вот отсюда (https://www.ebay.com/itm/353500389707?hash=item524e43e14b:g:p1sAAOSwRjZgoc6 1).Если есть интерес и возможность оплатить от юрлица, могу у наших китайских поставщиков попробовать запросить. Но куда Вы их втыкать будете? Плата есть?
А вот ребята с вышеупомянутого мною сайтадо чего доковырялись (http://fforum.winglion.ru/viewtopic.php?f=3&t=3322&sid=e0721e51c672d64bd843c65ed963130b&start=195") правда, черти, на Xilinx-овских платах, но можно попробовать и на Alter-овскую спортировать их ядро для прототипа.
- - - Добавлено - - -
Как так вышло что у фортеров время было только на одну игру, а оберонщики нашли время на целых 12?
да полно игр на FORTHе! Не ленись только портировать. Непонятно, почему возле Ивана Макарченко покойного группа не сформировалась фортмэнов. Начальство его кинуло не вовремя. Потому что у нас в России не принято вокруг сложившегося бизнеса ниши других бизнесов заводить. По своим возможностям в 1998-м Петерсы могли себе это позволить. А про программистов Путин и правительство вот только сейчас засуетились. 30 лет псу под хвост!
Трудно представить что знатоки форта для целевых машин будут портировать уже имеющиеся игры.
Интересная или не очень игра уже существует, переделать её на другом языке станет только прогер из спортивного
интереса, для "пробы пера".
Придумать интересную игру, расписать сценарий могут не все, скорей всего все.
А воплотить в коде уже смогут многие прогеры на любом знакомом языке программирования и на Форте в том числе.
Нужны интересные примеры (где взять и кто напишет?) на Форте под целевые машины, которые подогреют интерес.
Время от времени на разных площадках ведётся затухающая полемика о Форте без наглядных примеров.
Lethargeek
12.07.2022, 15:41
Lethargeek, а почему у других время было? Почему на бореле около 70 игр, а на z88dk около 30? Дело не во времени и ассемблере.
именно во времени и в ассемблере, я ж сказал
который для фортера не сложнее
поскольку форт стандартный к железу принципиально ближе
а вот бейсикисты асм ниасиливают (агэдисты часто ниасиливают и бейсик))
а кто мог бы, у того нет времени заниматься (я на спекомпутинге как-то спрашивал)
Smalovsky
12.07.2022, 17:05
В общем, форт бесполезен для разработки игр, так как годится только для прототипирования, сложность программирования сопастовима с ассемблером, требует много времени. Нафига такой форт нужен?
- - - Добавлено - - -
Кто не согласен - проды на форте в студию! Нет продов?! Тогда начинайте их писать!!!
В общем я закачал себе под Win7 pforth
В консоли
git clone https://github.com/philburk/pforth
а далее в директории pforth\platform\win32\vs2017 нашелся нужный файл для того, чтобы построить
pforth.exe
У меня он переместился в pforth\fth так как я не стал замарачиваться с правильными настройками своей VS2019. Нашел его поиском в Total Commander-е
Потом в соответствии с этой инструкцией (https://www.mnlist.ru/blog/2020/pforth-exercise)построил словарь командой pforth -i system.fth
и после запуска pforth без параметров набрал простейшее
2 3 + .
Форт оказался живым :) Теперь надо как-то подключить графику SDL2 и можно приступать кодить гейм.
Ну поскольку исходники, надеюсь, не фуфло и интернет пока не вырубили, может удастся сделать шаги в сторону кросс-компиляции для какого-то железа, отличного от x86 32 бита.
- - - Добавлено - - -
форт бесполезен для разработки игр
"Движенья нет, сказал мудрец брадатый.
Другой смолчал и стал пред ним ходить.
Сильнее бы не мог он возразить;
Хвалили все ответ замысловатый"
Oleg N. Cher
12.07.2022, 18:29
Это был ZED (https://zxart.ee/rus/soft/prikladnoe-po/domestic/zed/).
Nicolas Rodionov. Еще раз о настоящих программистах (https://nrodionov.livejournal.com/9895.html)
;)Лихой бред лихого мамкиного кулхацкера. Зачем им Паскаль, если им надо стрелять себе в ногу.
абаснуй - с чего это не отдельная?Я обосновал. Дырки между словарями. Отдал память под массив выше словарей, хрен уже что-то забудешь. Словари это мусор. Хороший язык будет чётко оперировать интерфейсами. А там даже параметры слов описываются в комментах. Рай для бандита.
во-1, в силу компактности Форта выгрузка может не понадобиться вообщеТут, скорее, не в силу компактности, а в силу того, что у тебя 4 Кб ОЗУ и прога в ПЗУ. Так да, я соглашусь.
во-2, возможно, забыть можно до заказа массиваТы пойми главное - у тебя в Форте массив не просто сущность, а грязное пятно на белой памяти. И другим словам надо крепко подумать, чтобы его не затронуть. А в Обероне - вызвал NEW для массива и отдал ссылку на него куда угодно. И не паришься.
а вообще, чем возиться с надуманной "модульностью" и прибитой к ней гвоздями функциональностью, на Форте, наверно, проще и намного полезней общий сборщик мусора запилить, если уж без динамической модели кюшать не можетсяНаверно проще будет удавиться, чем запилить, или даже придумать зачем он там нужен.
Модульность - не надуманное понятие, а вызванное жизнью. Ты модульно живёшь в своём жилище. А не делишь кухню с соседом. (Я надеюсь). Форт это делить кухню, бритву, унитаз и презерватив с соседом, и зависеть от того, насколько он адекватный. А в реальном мире с этим плохо.
интересно, к Си такие же претензии у тебя? а в Обероне, значит, не убивают?Переменные по ссылке в Си - те же адреса. Оберон даёт более герметичные абстракции.
Kakos_nonos
13.07.2022, 08:29
Ну что ж вы спорите, ребята, не надо. Форт хороший, мне нравится обратная польская запись, и есть много кому нравится. И когда перемнные-адреса, мне это тоже нравится, хоть и небезопасно.
И таких вещей много, не всё программирование ограничивается "эффективно/не эффективно безопасно/не безопасно", там более в спеке. Тут надо ориентироваться "кайф/не кайф". :v2_dizzy_coder:
Если конкретизировать для ZX Spectrum-а, то вообще удобно. Привязывать слова FORTH к конкретным адресам ПЗУ и затем использовать в своих программах. И точно так же можно "присосаться" к любой игре и доделать к ней свой интерфейс, который тем самым изменит и саму игру. Почти так поступал и создатель FORTH со своим телескопом. Вводил, например, ориентацию на созвездие, используя придуманное им слово и ву-аля, смотрите и наслаждайтесь тем, что заказали.
Lethargeek
13.07.2022, 13:59
Я обосновал. Дырки между словарями. Отдал память под массив выше словарей, хрен уже что-то забудешь.
Не обосновал, поскольку заявление твоё ложно. Забывается прекрасно всё, что угодно. Настоящую проблему (впрочем, разрешимую) не назвал.
Словари это мусор. Хороший язык будет чётко оперировать интерфейсами.
Интерфейсы это шоры. Хороший язык обязательно навешивать их не будеть.
А там даже параметры слов описываются в комментах. Рай для бандита.
для бандита в голове шизофреника?
Ты пойми главное - у тебя в Форте массив не просто сущность, а грязное пятно на белой памяти. И другим словам надо крепко подумать, чтобы его не затронуть. А в Обероне - вызвал NEW для массива и отдал ссылку на него куда угодно. И не паришься.
Угу, и "где угодно" с этой ссылкой сделают что угодно. Или не смогут? Ой, но тогда же это "убивает производительность"!!1!11
Наверно проще будет удавиться, чем запилить, или даже придумать зачем он там нужен.
Для того же, где и не там, вестимо - чтобы память не текла при динамическом выделении.
Кстати, а как в оберонах с утечками? Как там с "дырками" при динамически перезагруженных модулях?
Модульность - не надуманное понятие, а вызванное жизнью. Ты модульно живёшь в своём жилище. (Я надеюсь). Форт это делить кухню, бритву, унитаз и презерватив с соседом, и зависеть от того, насколько он адекватный. А в реальном мире с этим плохо.
Нет, я живу там без надуманных и лишних понятий, и не достаю весь сервиз из шкафа ради стакана. В реальном мире это глупо.
Переменные по ссылке в Си - те же адреса. Оберон даёт более герметичные абстракции.
"убивающие производительность" (c)
не "даёт", а "заставляет"
в отличие
Smalovsky
13.07.2022, 15:32
На обероне 12 игр. На форте одна. Вопросы есть?
Lethargeek
13.07.2022, 15:43
На обероне 12 игр. На форте одна. Вопросы есть?
на ассемблере over 9000 игр
вопросы есть?
Smalovsky
13.07.2022, 15:56
Lethargeek, ассемблер не яву. Сравнивать надо два яву. Оберон побеждает форт по сл. пунктам:
1. Количество игр
2. Есть действующее оберон сообщество для спектрума
З. Удобство\ скорость\ легкость разработки
4. Внедрение инноваций и непрерывное развитие
Lethargeek, ассемблер не яву. Сравнивать надо два яву. Оберон побеждает форт по сл. пунктам:
1. Количество игр
2. Есть действующее оберон сообщество для спектрума
З. Удобство\ скорость\ легкость разработки
4. Внедрение инноваций и непрерывное развитие
Вопрос про инновации раз уж тут легкое удобное средство.
Можно мне чтонибудь инновационное на обероне посмотреть?
Smalovsky
13.07.2022, 16:23
Хватит ломать комедию. Никто в данный момент на форте ничего для спектрума не пишет, и вряд ли кто захочет это делать. А если и захочет, то по форту для него нет сообществ спектрумистов и кросскомпилятора. И что интересно, раньше ведь форт тоже не был популярным и проигрывал компиляторам бейсика.
Lethargeek
13.07.2022, 16:54
Lethargeek, ассемблер не яву.
"а оберон не стековый" - в том же духе
Сравнивать надо два яву
...и участвовать в специальной олимпиаде)))
все яву на слабых восьмибитниках - инвалиды
нужны были только как загрузчик и калькулятор
от форта по крайней мере чуть больше проку
но ассемблер всё равно пригодней для игр
(если посложнее крестиков-ноликов)
Оберон побеждает форт по сл. пунктам:
1. Количество игр
на количество (а особенно такое ничтожное) вообще накласть, важно качество
2. Есть действующее оберон сообщество для спектрума
и какой от него толк, собс-но? очернение предполагаемых конкурентов?
З. Удобство\ скорость\ легкость разработки
4. Внедрение инноваций и непрерывное развитие
не доказано
Smalovsky
13.07.2022, 17:03
Факт: популярность форта на спектруме равна нулю. Вопросы есть?
Lethargeek
13.07.2022, 17:08
Факт: популярность форта на спектруме равна нулю. Вопросы есть?
факт: ты нагло врёшь, выдавая свои личные наблюдения и предпочтения за абсолютную истину
Smalovsky
13.07.2022, 18:19
Lethargeek, сейчас кто-то на форте игру на спектрум пишет? Какой кросскомпилятор использует? А проды за последние десять лет где можно посмотреть?
- - - Добавлено - - -
jerri, насколько я знаю, есть разные стандарты оберон 1, оберон 2 и пр. Олег в своей иде их поддерживает. Он еще добавляет разные библиотеки, в основном, графические.
Oleg N. Cher
13.07.2022, 18:40
Интерфейсы это шоры. Хороший язык обязательно навешивать их не будеть.Нет. Интерфейсы это те правила и законы, которые вынужденно вырабатывает любое сообщество для взаимодействия, даже племя индейцев.
Давай так. Если мы говорим про серьёзную разработку больших и сложных проектов, то Форт нам не пригодится. Его можно использовать, но матерясь и испытывая суицидальные порывы при любых малейших изменениях в проекте. У нас нет никакой иерархии или разграниченый. Рай для мамкиных кулхацкеров.
Вы знаете, я даже подумал, что Форт-программисты самоутверждаются так. Дескать, у них "крутое нестандартное мышление", а все остальные им в подмётки в этом смысле не годятся. Только вот результатов кот наплакал.
Угу, и "где угодно" с этой ссылкой сделают что угодно. Или не смогут? Ой, но тогда же это "убивает производительность"Если захотел - отдал, делайте что хотите. Это всё равно что вынести наружу ненужный шкаф, пусть забирает кто хочет. А можно и лимитированно отдать. И в Обероне это сделать проще некуда.
Кстати, а как в оберонах с утечками? Как там с "дырками" при динамически перезагруженных модулях?По-всякому. Есть несколько видов сборщиков мусора. В целом, консервативный сборщик работает не идеально. Но категориями "дырок" мы чаще не мыслим, мышление идёт более высокоуровневое.
"убивающие производительность" (c)
не "даёт", а "заставляет"
в отличиеРазница в адресах Форта на стеке и в VAR-параметрах Оберона разительная. Только в первом кулхацкерский рай, а люди ошибаются всё время. А во втором компилятор следит и не допускает ничего опасного.
Оберон побеждает форт по сл. пунктам:
1. Количество игр
2. Есть действующее оберон сообщество для спектрума
З. Удобство\ скорость\ легкость разработки
4. Внедрение инноваций и непрерывное развитиеДавайте не сравнивать Оберон с Фортом, ладно? Или, тем более, с ассемблером.
Насчёт действующего сообщества я бы посомневался. Есть пара человек, которые иногда что-то пишут на Обероне для Спектрума в свободное время. Они не претендуют на то, чтобы заткнуть за пояс всех игроделов.
Но сильная сторона у Оберона всё же есть - он сглаживает процесс разработки для разных ретро-платформ, делая его более однородным. Но это при условии, чтобы всё это активно юзалось и развивалось программистами под эти платформы, чего у нас не наблюдается. Я сделал, что смог. Уж звыняйте. Даже для РК, MSX, NES, SegaMD и GameBoy.
Можно мне чтонибудь инновационное на обероне посмотреть?jerri опять начинает ёрничать. Оберон такой крутой язык, что даже преодолевает клэшинг. Ты это хочешь услышать?
Да, покажи мне что-то грандиозное на ЯВУ вообще. Но желательно не для Эвы и Next'а. Для классики. Можно для Спека 16К.
А что-то иновационное в плане удобства и скорости разработки для асма есть? Или всё также кропают в муках отладки?
Kakos_nonos
13.07.2022, 18:53
На PL/M всего одна игра под рк86 написана. Получается, PL/M плохо подходит под рк86?
А на самом деле нет, это самый качественный компиль под 8080. Просто мало людей с ним знакомо. Так же и с фортом. Не надо его поносить, это хороший язык, на нём можно было б хорошо что написать.
Просто инерция мышления давит.
Вон, сколько было фортов на 8080 процессоре, для cp/m и прочих компов. Больше только бейсиков. Если б он нафик никому не был нужен, то его не делали б. А они делали. Что-то писали, может не игры, но писали же.
То есть, количеством игр не определяется уровень крутости языка.
Smalovsky
13.07.2022, 20:13
Kakos_nonos, доказывать надо не словами, а делами. Возьми напиши на форте что-нибудь, а потом покажи на чем-то готовом преемущества форта для спектрума. Хочешь развивать форт для спектрума? Организуй сообщество, портируй популярные библиотеки( например, splib2 для z88dk). Но только не трепись.
Насчет количества фортсред. Писались они,скорее всего, из спортивного интереса без расчета на дальнейшее использование. Я уже убедился в особом уме фортеров. Для них фортсистема - среда разработки и конечный продукт одновременно.
jerri опять начинает ёрничать. Оберон такой крутой язык, что даже преодолевает клэшинг. Ты это хочешь услышать?
А он преодолевает?
Ты лучше к Оберону Core (https://github.com/Jerri1977/___core48)примотай.
больше толку будет.
Да, покажи мне что-то грандиозное на ЯВУ вообще. Но желательно не для Эвы и Next'а. Для классики. Можно для Спека 16К.
конечно есть
вот выбирай.
https://spectrumcomputing.co.uk/list?group_id=4007
чего только SOULS (https://spectrumcomputing.co.uk/entry/28172/ZX-Spectrum/Souls)стоит
А что-то иновационное в плане удобства и скорости разработки для асма есть? Или всё также кропают в муках отладки?
конечно есть.
IDE со всеми наворотами.
Лучьше бы ты свою IDE нормально развивал.
А не пиарил Оберон с умным видом.
Kakos_nonos
13.07.2022, 20:38
Я б запросто написал на форте для спека, было б свободное время)
По поводу создания сообщества, сейчас это достаточно трудно, так как приход новых лиц в zx очень мал, но вполне возможно. Если будет удобная IDE с библиотеками и документацией.
>> Писались они,скорее всего, из спортивного интереса без расчета
А это врядли. Раньше написание программ было сложнее и никто не стал бы писать кучу асм кода "просто так". И вообще, почему форт до сих пор жив, если он такой плохой? Вон про алгол никто не вспоминает, а про форт - постоянно. Значит что-то в нём есть))
Oleg N. Cher
13.07.2022, 21:21
А он преодолевает?Не смешно. Движки BiFrost и Nirvana[+] вызываются из Оберона не хуже, чем из бориеля.
Ты лучше к Оберону Core (https://github.com/Jerri1977/___core48)примотай.
больше толку будет.Не вижу проблемы, "примотать" дело минутное, было бы зачем.
конечно есть
вот выбирай.Спасибо. Ну значит ЯВУ на Спеке не совсем бесполезны.
Лучьше бы ты свою IDE нормально развивал.Никогда не хотел заниматься разработкой IDE. Скучно. Куча готовых. Но спасибо хоть не предлагаешь писать оптимизирующий компиль Оберона. ;)
И всё-таки меня привлекает идея кросс-транслятора Форта с целевой компиляцией для различных ретро-платформ. Может быть даже глубоко в душе ручки чешутся что-то поприкидывать в этом направлении. Но кто будет этим пользоваться? Если более "традиционных" Оберон-программистов для ретро-платформ чуть больше, чем 0, то что сказать про количество фортеров.
Я для себя точно решил, что на Форте программить мне неинтересно. Форт не выглядит для разработки как больших систем, так и малых, так же вкусно, как Оберон.
А на самом деле нет, это самый качественный компиль под 8080 PL/M80 согласен, PL/M51 значительно хуже. На PL/M86 не доводилось работать.
Но это под CP/M, ISIS и RMX. Не надо путать процессор 8080 и его реальное окружение. Операционка поддерживает все драйверами и системными библиотеками. Голый компилятор малоинтересен.
- - - Добавлено - - -
А это врядли. Раньше написание программ было сложнее и никто не стал бы писать кучу асм кода "просто так".
Согласен. Просто на 8080 была куча коммерческих платформ и стоили они тогда не гроши а несколько тысяч долларов, да и доллары тогда были не чета нынешним. У людей была интересная, вполне себе достойно оплачиваемая работа. У нас на работе был комплекс КРАМ (аналог американского Intellec MDS Series II на 8080) c двумяя 8 дюймовыми флопповодами(можно было подключить до 4-х), под управлением ISIS-II внутрисхемным эмулятором ICE-80( кишка втыкалась в целевую систему вместо процессора 8080 на сокете) и программатором( сменные колодки от РТ4/5 до к573РФ4) так на нем перестроение кода на 1500 строк PL/M80 занимало полчаса! Подозреваю, что люди лепили инструментальный софт все же на кроссах более мощных чем сам 8080 компьютеров. Туда же портировали PASCAL и FORTRAN москвичи. А вот FORTH не догадались. А ведь это могло ускорить разработку! Целевая система тоже была на 8080 МСУВТ В7 разработчик московский ВНИИЭМ, изготовитель АЭМЗ г. Александрия Кировоградской( ныне Кропивницкой) области. Там в большую корзинку на 12 плат MULTIBUS можно было воткнуть для параллельной работы до 4 процессорных плат! Только никто этого не делал, так как на PL/M80 ну очень долго флопповоды щелкали, а электронный флоппи-диск никому в голову не пришло сделать. Сейчас это легко. И кросс PL/M80 есть и все летает со скоростью звездолета.
Lethargeek
13.07.2022, 22:03
Lethargeek, сейчас кто-то на форте игру на спектрум пишет? Какой кросскомпилятор использует? А проды за последние десять лет где можно посмотреть?
без понятия, мне интереснее, что получилось, а не на чём, а получается обычно интереснее на ассемблере
когда игру пишут не ради игры, а ради применения языка - это мало что говорит об игропригодности языка
Тогда уж в кодах...самомодифицирующих я :) ни один ассемблер такого сделать не даст.
Не смешно. Движки BiFrost и Nirvana[+] вызываются из Оберона не хуже, чем из бориеля.
но почему-то не вызываются, почему же?
Не вижу проблемы, "примотать" дело минутное, было бы зачем.
А ну да, вот в чем проблема.
Спасибо. Ну значит ЯВУ на Спеке не совсем бесполезны.
Никогда они не были бесполезными.
Никогда не хотел заниматься разработкой IDE. Скучно. Куча готовых. Но спасибо хоть не предлагаешь писать оптимизирующий компиль Оберона. ;)
дело твое.
И всё-таки меня привлекает идея кросс-транслятора Форта с целевой компиляцией для различных ретро-платформ. Может быть даже глубоко в душе ручки чешутся что-то поприкидывать в этом направлении. Но кто будет этим пользоваться? Если более "традиционных" Оберон-программистов для ретро-платформ чуть больше, чем 0, то что сказать про количество фортеров.
Я для себя точно решил, что на Форте программить мне неинтересно. Форт не выглядит для разработки как больших систем, так и малых, так же вкусно, как Оберон.
ну да ну да...
а вот люди не заморачивались и программили. (https://spectrumcomputing.co.uk/entry/2543/ZX-Spectrum/Iron_Lord)
возможно им хватало интереса.
ни один ассемблер такого сделать не даст.
Э, не понял. Чего не даст? Кусок кода на языке ассемблера MACRO-11:
;
; Routine to move byte fields
;
PROCEDURE BMOVE
BEGIN
LET BMC2 := #^O<MOVB+2120> ; Set a MOVB (R1)+, (R0)+
GOTO BMC1
END BMOVE
PROCEDURE BCLEAR
BEGIN
LET BMC2 := #^O<MOVB+0120> ; Set a MOVB R1, (R0)+
$GOTO BMC1
END BCLEAR
PROCEDURE BMC1
BEGIN
JSR R4, SAV04 ; Saver Regs 0-4
LET R0 := (R5)+ ; Get dest addr
LET R1 := (R5)+ ; Get source
LET R2 := (R5)+ ; Get count
REPEAT
BMC2:
.WORD 0
LET R2 := R2 - #1 ; One byte less
UNTIL RESULT IS EQ ; Until done
GOTO UPKNM1
END BMC1
.....
PROCEDURE RESR5
BEGIN
ENTRY UPKNM1
CALL RST04 ; Restore regs 0-4
RTS R5 ; Done, return
END RESR5
Lethargeek
13.07.2022, 22:49
Нет. Интерфейсы это те правила и законы, которые вынужденно вырабатывает любое сообщество для взаимодействия, даже племя индейцев.
например https://americanbutler.ru/ru/polezno/lifestyle/glupye-zakony-ssha :D
Давай так. Если мы говорим про серьёзную разработку больших и сложных проектов,
ужос, как мы раньше жили без интерфейсов? и как без них до сих пор обходятся языки с проектами в миллионы строк?
то Форт нам не пригодится. Его можно использовать, но матерясь и испытывая суицидальные порывы при любых малейших изменениях в проекте. У нас нет никакой иерархии или разграниченый. Рай для мамкиных кулхацкеров.
у ВАС если нет, так только потому, что ниасилите написать - слишком долго вас Никлаус Вирт за ручку водил :p
Рай для мамкиных кулхацкеров.
смешно просто при насквозь проэмулированной платформе осуждать "кулхацкерство" в языках
Если захотел - отдал, делайте что хотите. Это всё равно что вынести наружу ненужный шкаф, пусть забирает кто хочет. А можно и лимитированно отдать. И в Обероне это сделать проще некуда.
По-всякому. Есть несколько видов сборщиков мусора. В целом, консервативный сборщик работает не идеально. Но категориями "дырок" мы чаще не мыслим, мышление идёт более высокоуровневое.
Так и фортеру никто же не запрещает навернуть абстракции до небес. Повышать легко, невозможно ниже спуститься. И вот здесь у Форта как раз серьёзное преимущество (особенно в контексте слабых платформ), ибо базовый уровень абстракции ниже некуда.
Разница в адресах Форта на стеке и в VAR-параметрах Оберона разительная. Только в первом кулхацкерский рай, а люди ошибаются всё время. А во втором компилятор следит и не допускает ничего опасного.
нет, со временем люди меньше повторяют те же ошибки
и приобретённая осмотрительность также понижает вероятность совершить новые
А во втором компилятор следит и не допускает ничего опасного.
Угу. И решает за человека - что опасно, а что нет. Добро пожаловать в законопослушный мир. Только эта. Патенты тоже нельзя нарушать. А то а-я-я-я-йка придёт
Oleg N. Cher
13.07.2022, 23:06
но почему-то не вызываются, почему же?Потому что никто не вызывает.
А ну да, вот в чем проблема.Именно. Мне не нужно IDE, мне хватает XDev и Sublime с подсветкой Оберона. Тебе надо - ты делай. Заморачиваться на много лет какой-то хиромантией - это увольте. Мы здесь каждый пилим что по душе.
Делали. Заметь, не только программировали, а и рисовали, писали музыку. Если бы вопрос разработки хороших игр был только в кодинге...
ужос, как мы раньше жили без интерфейсов? и как без них до сих пор обходятся языки с проектами в миллионы строк?"Шарик, ты балбес".
В Форт-слове @ ( --> ) этот самый комментарий и есть интерфейс, показывающий что один параметр снимается со стека. Даже наш язык для общения это тоже интерфейс, потому что мысли ты читать не умеешь.
у ВАС если нет, так только потому, что ниасилите написать - слишком долго вас Никлаус Вирт за ручку водил :pДа что Вы. А где же Ваши тонны гениального Форт-кода, может изволите-с?
Вирта ругать не надо, он прав в своих взглядах на то, что хорошо, а что нет. И время это вполне доказало. А куда идут кулхацкеры это понятно. К хаосу.
смешно просто при насквозь проэмулированной платформе осуждать "кулхацкерство" в языкахТебе смешно, а мне нет. А выхлоп от "насквозь проэмулированной платформы" (если ты про ZXDev) получше, чем у любого Форта.
- - - Добавлено - - -
Угу. И решает за человека - что опасно, а что нет. Добро пожаловать в законопослушный мир. Только эта. Патенты тоже нельзя нарушать. А то а-я-я-я-йка придётНу беда невелика. В псевдомодуле SYSTEM есть опасные средства для удовлетворения кулхацкерских желаний стрелять себе в ногу.
На минуточку.. Есть такой компьютер ZS-SCORPION, и без пяти минут пять в его модификации ПрофПЗУ есть отладчик... Т.е. он работпет не на базе не оберона, не базезе бореля.... а на базе форт системы. И Это реально круто, но есть печалька это всё очень хреново документировано со стороны разработчиков. А по факту этот анализатор на базе форт системы вполне может поспорить с эмуляторами...
Oleg N. Cher
13.07.2022, 23:10
В ZS-SCORPION, в Спринтере, где-то ещё. Но не массово, господа, не массово. И в ПЗУ его массово не шили, а я именно об этом. Ведь Форт лучше Бейсика. И в плане производительности, и в плане расширяемости. Но в плане мозгодробильности - хуже.
А ваш "оберон" шили куда???? А уж ваську не трогайте, тут уж либо все, либо ничего...
Spectramine
13.07.2022, 23:24
а вот люди не заморачивались и программили.
возможно им хватало интереса.
А что, игра написана на Форте?
А что, игра написана на Форте?
А что есть игры уровня диззи на обероне??? Или на другом ЯВУ????
Ну конструкторы в расчет не берем.
Oleg N. Cher
13.07.2022, 23:37
А ваш "оберон" шили куда????Оберона в лихие 80-е ещё не было. А Паскаль не шили, потому что это компилируемый язык. Да, интерпретаторы были, но...
А уж ваську не трогайте, тут уж либо все, либо ничего...Вот "благодаря" такому фанатизму в отношении Бейсика его пихают куда ни попади - от Тауона и до ZX Next'а. Да, Васики там шикарные, и от Васика там только название.
И конкурсы игр, опять же. Хоть на интерпретаторе, зато греющий душу Васик. Нет бы на компилируемых ЯВУ, было бы экзотичненько.
Lethargeek, я под интерфейсом понимаю просто набор соглашений по взаимодействию различных частей программы. Видел в шапке подпрограмм на асме описывается: что на входе, что на выходе, какие регистры нарушает, какой режим прерываний использует? Вот это и есть интерфейс. И зачатки интерфейсов есть даже в Форте. А модули только для бОльшего удобства придуманы.
- - - Добавлено - - -
А что есть игры уровня диззи на обероне???На Обероне точно нету. Но могли бы быть, если бы кто-то занялся. Нет ничего невозможного. Тем более для 128К+.
Вот "благодаря" такому фанатизму в отношении Бейсика его пихают куда ни попади - от Тауона и до ZX Next'а. Да, Васики там шикарные, и от Васика там только название.
Вы реально не понимаете? Или прикидываетесь? На спектруме залог совместимости это неприкосновенность васика и иже с ним связано...
Spectramine
13.07.2022, 23:40
Покопался щас, вот уже одну игру на Форте для Спектрума нашел: http://programandala.net/en.program.tron_0xf.html
Ещё нашел целую систему для написания игр на Форте: http://www.forth.org/lightning.html , наверняка какие-то игры на ней были сделаны.
upd: "Was White Lightning ever used in commercial games? If so, please send email.
(update: answer is yes)" - отсюда:
http://www.jimbrooks.org/archive/programming/forth/WhiteLightningFORTH_BasicLightning_LaserBasic_Oasi sSoftware.php
Но могли бы быть, если бы кто-то занялся. Нет ничего невозможного. Тем более для 128К+.
Если бы кто-то да кабы... А по факту накуй он никому не нужен.
Диззи на обероне... Чисто поржать в обсуждении....
Oleg N. Cher
13.07.2022, 23:43
Зря ржёте. Мог бы получиться вполне приличный Диззи на Обероне. Но не уровня Диззи 8, разумеется.
Оопс, а на каком уровне??? Слайд шоу???
Oleg N. Cher
13.07.2022, 23:54
Вы реально не понимаете? Или прикидываетесь? На спектруме залог совместимости это неприкосновенность васика и иже с ним связано...А требование совместимости когда возникло? Уже когда всё было зашито, даже с ошибками в ПЗУ. Их пришлось оставить для совместимости. Накуй такую совместимость.
- - - Добавлено - - -
Оопс, а на каком уровне??? Слайд шоу???Ну почему же. Вывод графики-то всё равно на асме.
- - - Добавлено - - -
P.S. Я бы щас может даже выложил свой порт Дурака (c) Copperfeet на Обероне. Но вы ведь просто поржёте, что он недоделан, так что ну его. Вернее, ну вас.
Накуй такую совместимость.
Оопс... Как часто это уже звучало... Но Тем не менее Васик есть де-факто....
Ну почему же. Вывод графики-то всё равно на асме.
Тю на вас вас... Сами себя же дискредитируете....
А накой нужны обвязка в виде недооберона?????
- - - Добавлено - - -
Но вы ведь просто поржёте, что он недоделан, так что ну его. Вернее, ну вас.
А может просто нехватает мощей????
Oleg N. Cher
13.07.2022, 23:57
Оопс... Как часто это уже звучало... Но Тем не менее Васик есть де-факто....Васик есть потому что Васик уже есть, потому что он уже в ПЗУ, потому что это первое что мы увидели и никак не можем забыть звук загружаемой (в Васике) программы и полоски на бордюре. Заколдованный круг, не находите? А Оберон накуй нужен потому что его никто не использует, потому что нигде его нет, и всё тут. Тоже заколдованный круг. Примитивная психология, но это так работает.
Поэтому и де факто.
А накой нужны обвязка в виде недооберона?????Вам не надо, мне надо.
А может просто нехватает мощей????Мощей чего? Ну Форт возьмите, Си накрайняк, или асм. Кто лично Вас заставляет юзать недооберон?
Васик есть потому что Васик уже есть, потому что он уже в ПЗУ, потому что это первое что мы увидели и никак не можем забыть звук загружаемой (в Васике) программы и полоски на бордюре. Заколдованный круг, не находите? А Оберон накуй нужен потому что его никто не использует, потому что нигде его нет, и всё тут. Тоже заколдованный круг. Примитивная психология, но это так работает.
Вы дурной или прикидываетесь????
Кто лично Вас заставляет юзать недооберон?
Мне лично он не сдался ни на дюйм.... Предпочитаю асм.... А Вы???? Все еще думаете что оберон рулит????
Spectramine
14.07.2022, 00:10
Достаточно эффективной графической библиотеки, а логику игры можно писать хоть на Форте, хоть на Обероне, хоть даже на Бейсике (скомпилировав потом). Форт может оказаться круче ассемблера в плане экономии памяти - на шитом коде, при минимальном проигрыше в быстродействии - цепочки вызовов процедур в Форте упакуются в цепочки их адресов; да и в плане игровой логики Форт может быть экономичнее по программному коду, за счет использования более сложных языковых абстракций.
А Оберон дает Спектруму преимущества современного ЯВУ - развитые языковые средства, скорость разработки, читабельность программ.
Просто, чтобы начать использовать что-то новое, нужно напрячь извилины и преодолеть порог вхождения, построив новые нейронные связи, а это без особой необходимости очень лениво. Поэтому и пишут для Спектрума на асме те, кто привык на нем писать. А вовсе не потому, что ничего путного на ЯВУ для Спектрума не напишешь. AGD и иже с ним доказывают обратное.
А Оберон дает Спектруму преимущества современного ЯВУ - развитые языковые средства, скорость разработки, читабельность программ.
Оберон дает спекртруму чуть меньше нуля....
Просто, чтобы начать использовать что-то новое, нужно напрячь извилины и преодолеть порог вхождения, построив новые нейронные связи, а это без особой необходимости очень лениво
это шутка надеюсь...
Oleg N. Cher
14.07.2022, 00:22
Вы дурной или прикидываетесь????Оставим этот вопрос на Вашей совести. Что, взгляды слишком отличаются от того, к чему Вы привыкли? Так это ничего ещё не значит, может это кто-то другой дурной? ;)
А Вы???? Все еще думаете что оберон рулит????Конечно он рулит, и притом рулит везде, даже в браузере. И коммерческий современный софт на нём делают вполне успешно. И даже сайты.
- - - Добавлено - - -
Spectramine настолько хорошо всё объяснил, что мне практически нечего добавить.
И да, я слишком хорошо знаю реакцию местной публики на то, что им не по вкусу.
Кажется Jerri писал.... Нас асме овер 9000 икгр.... Что есть на обероане.....Адеккватного????
Сам себе отвечу: хрен целых, хрен десятых....
Ну ни в коем разе
для кого-то, надеюсь, шутка, а для большинства, включая меня, суровая правда жизни.
не сомневаюсь в вас...
Ну только не надо проецировать свою жизнь на данное хобби.
Oleg N. Cher
14.07.2022, 00:45
Нас асме овер 9000 икгр.... Что есть на обероане.....Адеккватного???? то мне напомнило плодотворную дискуссию Паниковского и Шуры Балаганова в духе "а ты кто такой?" ;)
если кому-то нужно объяснять преимущества ЯВУ
Преимущества ЯВУ сводитяся на нет на платформе 8 biit
ффтопом - а вы в свою Элиту играете?
Нет, это вчерашний день. Там мне скучно.
Ну разве что в рамках теста... Но на форуме есть участник djim
Ему особая благодарность в тестировании... При том он видел и оттестировал версию которой еще нет в доступе.....
Ну(блин, напишите платформер на ЯВУ...(для ZX) без вставок ассемблденрных....
Уровень DIZZY 7-8 осилите?
Вы не различаете эффективность ЯВУ для написания программ и эффективность транслятора с ЯВУ для перевода этих программ в машинный язык. Писать платформер на ЯВУ куда проще, чем на ассемблере
Примеры в студию
Теоретически хороший транслятор с ЯВУ может внезапно оказаться эффективнее лобового кодинга на ассемблере.
Мечты
Лично я под Спектрум вряд ли что-то буду писать, на него и так уже написано достаточно, по-моему. Можно ли в принципе написать игру уровня Диззи 7-8 на ЯВУ? Можно, с использованием графической библиотеки на ассемблере (любой ЯВУ опирается на библиотеки, и на самом низком уровне они написаны на ассемблере). Хороший оптимизирующий транслятор при этом сведет на нет преимущества ассемблера.
Пример в студию...
- - - Добавлено - - -
Это ваша типичная ошибка...
ЯВУ под ZX и яву под PC они даже рядом не стот....
Smalovsky
14.07.2022, 01:35
На бореле мне запомнилис игры:
Maritrini - зельдообразная игра от Мохонов( Мохоны иногда писали на бореле!) про маленькую девочку;
Robo-stalker - игра участник конкурса Яндекса;
The Tales of Grupp - игра рпгшка про рыцаря.
А теперь внимание! VADE RETRO от J.B.G.V. написана на бореле... Теперь для многих мир уже не будет прежним( для krt17 точно).
для krt17 точно .... давайте вместе поржем
Smalovsky
14.07.2022, 01:49
LW, ты вообще игры на компиляторах для спектрума видел? Или только в теории о них знаешь?
- - - Добавлено - - -
Возвращаясь к форту, хочу сказать, что потенциал у форта на спектруме есть. Все сложности с фортом на спектруме связаны не с фортом, а с фортерами. Они ничего не хотят делать.
ты вообще игры на компиляторах для спектрума видел? Или только в теории о них знаешь?
Видел. Убого и скучно в подавляющем большинстве.
Spectramine
14.07.2022, 01:55
Кстати, предполагаю, что из 9000 тысяч игр "на асме" значительная часть написана на ЯВУ с использованием кросс-средств разработки - то есть написаны на ЯВУ и оттранслированы в Z80-код на более мощных компьютерах.
Ну думать вам никто не запретит... А вот уметь думать....
Smalovsky
14.07.2022, 02:13
Spectramine, ну, меньше чем на асме было игр на компиляторах. Игры делали тогда на компиляторе мкодер2. От Шау Бразерс, на пример, много игр на мкодере вышло.
Smalovsky
14.07.2022, 03:21
Spectramine, я про компиляторы яву.
Ну беда невелика.
Но она есть.
И если сравнить, сколько софта написано на (плохих) C и C++, а сколько на (хорошем) Обероне, то выводы напрашиваются
Но могли бы быть, если бы кто-то занялся.
Так можно сказать про любой язык, в том числе, внезапно, про Forth
Господа и товарищи! Зачем пытаться делить сжимающиеся ресурсы внимания к платформе вместо того, чтобы попытаться увеличить их? Кто-то считает, что часть публики во внешнем по отношению к ZX-Spectrum-у мире, узнав, что на нем по прежнему используют FORTH для разработок приложит руку к умножению потенциала FORTH. Аналогично и энтузиасты Oberon-а уже это делают достаточно активно и пытаются еще нарастить свою активность. Вот только приверженцы ассемблера. Их "профи" ASM86 или ARM или PDP вынужден будет начинать на z80 практически с нуля! Хотя "мастерство не пропьешь" и прежние навыки конечно тоже помогут. Особенно если они изучали уже несколько разных архитектур и писали на их ассемблерах.
Про приверженцев ассемблера можем констатировать, что есть только кросс-ассемблеры z80, конвертеров с других ассемблеров нынче не пишут. Библиотек хоть графических, хоть каких тоже.
А почему же вообще должен появиться такой интерес к платформе ZX Spectrum среди новых на ней людей? Об этом лично я уже писал десятки, сотни раз всюду и везде. Что знать досконально, как устроен ZX Spectrum и как современный десктоп и ноутбук "это две большие разницы"! Аналогично и временные и финансовые затраты на новые проекты. Правда можно надеется, что в большом компьютерном мире финансовая отдача несоизмермо выше. Но ведь там и конкуренция и уровень вхождения и куча всего другого, да и просто обратить на себя внимание сообщества шансы падают почти до нуля на первых шагах Восхождения. Поэтому да, повторю вслед за всеми "Работайте, братья!" А название этого треда действует как бы от противного. В результате дискуссии выяснили, что мудрое изречение Мао "Пусть расцветают все цветы!" актуально и для этой сферы.
И поскольку тут вся дискуссия была сфокусирована на разработке игр. Чтобы написать интересную игру быть крутым кодером недостаточно. Это как в кино. Иногда и актеры крутые и оператор и продюссер мощный, а на выходе "шедевр", который забывается всеми уже через пять лет. А в творчестве важно иногда лучше ничего не сделать, чем сделать вот так!
Lethargeek
14.07.2022, 10:15
"Шарик, ты балбес".
В Форт-слове @ ( --> ) этот самый комментарий и есть интерфейс, показывающий что один параметр снимается со стека. Даже наш язык для общения это тоже интерфейс, потому что мысли ты читать не умеешь.
шарик, комментарий к параметру - это комментарий к параметру, а интерфейс - вполне определённое понятие ооп
если же под "интерфейсом" понимать любое взаимодействие компонентов, "чётко" им можно "оперировать" в любом языке
Да что Вы. А где же Ваши тонны гениального Форт-кода, может изволите-с?
ну, не тонны, но полезного ранее достаточно наклепал
пусть и не на спеке, но в интересах спека
утилиты, прототипирование быстрое
Вирта ругать не надо, он прав в своих взглядах на то, что хорошо, а что нет. И время это вполне доказало. А куда идут кулхацкеры это понятно. К хаосу.
время доказало, что был не прав, перегнув с академичным оквадрачиванием колеса
Тебе смешно, а мне нет. А выхлоп от "насквозь проэмулированной платформы" (если ты про ZXDev) получше, чем у любого Форта.
я про спектрум и другие ретрокомпы :D
- - - Добавлено - - -
Вы не различаете эффективность ЯВУ для написания программ и эффективность транслятора с ЯВУ для перевода этих программ в машинный язык. Писать ПРОСТЕНЬКИЙ платформер на ЯВУ куда проще, чем на ассемблере.
FTFY
Писать платформер на ЯВУ куда проще, чем на ассемблере. Вот насколько эффективно будет скомпилирована программа на ЯВУ в машинный код - это другой вопрос, и он упирается в качество транслятора.
не всё сводится к эффективности компиляции, на ассемблере доступны всякие трюки, экономящие память и/или время
код, вроде бы неэффективный локально, может дать положительный глобальный эффект, если вероятности посчитать
Теоретически хороший транслятор с ЯВУ может внезапно оказаться эффективнее лобового кодинга на ассемблере.
~ теоретически хорошее может оказаться лучше плохого :D
Я не говорю о том, что на ЯВУ легче можно добиться алгоритмической оптимизации.
не на всяком - так, макроассемблер структурнее синклер-бейсика
Smalovsky
14.07.2022, 10:16
andrews, вот что-то один цветочек расти совсем не хочет. А вместо аромата дает вонь на всю округу и считает себя самым крутым.
Лично я не люблю змей. Но тоже ведь Божьи Твари.
Spectramine
14.07.2022, 13:39
Писать ПРОСТЕНЬКИЙ платформер на ЯВУ куда проще, чем на ассемблере.
FTFY
Сложный платформер ПИСАТЬ на ЯВУ ещё проще, чем простенький (по сравнению с написанием их на ассемблере). Вот втискивать в ограниченную память может оказаться сложнее, с недостаточно эффективным транслятором.
Lethargeek
14.07.2022, 15:29
Сложный платформер ПИСАТЬ на ЯВУ ещё проще, чем простенький (по сравнению с написанием их на ассемблере). Вот втискивать в ограниченную память может оказаться сложнее, с недостаточно эффективным транслятором.
в ограниченные такты тоже сложнее
Oleg N. Cher
14.07.2022, 17:22
шарик, комментарий к параметру - это комментарий к параметру, а интерфейс - вполне определённое понятие оопНет, интерфейсы это не только ООП. Я рассматриваю это понятие шире.
Но поэтому и сказал, что в Форте интерфейсы могут быть описаны только в комментариях.
если же под "интерфейсом" понимать любое взаимодействие компонентов, "чётко" им можно "оперировать" в любом языкеРазумеется. Но в Форте и асме есть только зачатки интерфейсов. Ну и они конечно нифига не высокоуровневые.
время доказало, что был не прав, перегнув с академичным оквадрачиванием колесаВирт практически в одиночку писал операционные системы, компиляторы, крутой "умный" софт. Это и есть разница между Виртом и теми, кто лихо его ругает.
я про спектрум и другие ретрокомпы :DТы сказал, что XDev "насквозь проэмулирована". Это уже говорит об абсолютно неадекватном представлении о XDev. Я вообще хочу сказать, что у большинства здесь свои какие-то представления о XDev, слабо связанные с реальностью. Где там эмуляция? В твоём эмуляторе Спектрума больше эмулированности, чем у XDev. Там есть нативная себе программа, которая из Оберона генерирует исходник на Си, а потом вызывает опять же нативный компилятор Си. И SDCC точно так работает, только вместо "Оберон->Си" там "Си->асм". И FreePascal точно так же работает. И многие другие компиляторы. Даже на CP/M были компили, генерящие обширное промежуточное представление. Насколько я знаю, так работает компилятор Ada для CP/M. Так что нет там никакой "насквозь проэмулированности". А выхлоп как от чистого Си, закодированного ручками. Никакого оверхеда.
Вирт практически в одиночку писал операционные системы, компиляторы, крутой "умный" софт.
Да да да, конечно. И практически и в одиночку
Modula-2 system
The Modula-2 system is an implementation of the programming
language MODULA-2 on the PDP-11 computers. The system has been
developped by a group under the direction of Prof. N. Wirth at
the Institut fur Informatik of the ETH Zurich.
The responsibilities for the different parts of the system were
divided in the implementors group as follows:
Resident system : Christian Jacobi
Compiler : Leo Geissmann
Anton Gorrengourt
Christian Jacobi
Svend Erik Knudsen
Linker, Loader : Anton Gorrengourt
Christian Jacobi
Hans Heinrich Naegeli
Acknowledgement is also due to Urs Ammann, who contributed at
the compiler in the earlier stages of the project and to Andrea
Ventura, the author of the debugger module.
The author of this memo is Leo Geissmann.
Institut fur Informatik, ETH
CH-8092 Zurich
Ну и для примера
(****************************************
* *
* MODULA-2 Multi-Pass Compiler *
* **************************** *
* *
* PDP11 Implementation *
* *
* *
* M2CP1: *
* *
* Pass 1 *
* Syntactical analysis *
* *
* Version M23 of 24.05.83 *
* *
* Institut fuer Informatik *
* ETH-Zuerich *
* CH-8092 Zuerich *
* *
****************************************)
MODULE M2CP1; (* SEK / LG *)
(****************************************
* *
* MODULA-2 Multi-Pass Compiler *
* **************************** *
* *
* PDP11 Implementation *
* *
* *
* M2CP2: *
* *
* Pass 2 *
* Declaration analysis *
* *
* Version M23 of 24.05.83 *
* *
* Institut fuer Informatik *
* ETH-Zuerich *
* CH-8092 Zuerich *
* *
****************************************)
MODULE M2CP2; (* LG / UA *)
А что, игра написана на Форте?
сложно сказать. но игра представляет собой плеер некоего скрипта.
полностью игру я не разбирал, но сам код довольно компактен.
Oleg N. Cher
14.07.2022, 21:27
И что это доказывает? Что Вирт не программил практически в одиночку компиляторы? Программил. Много. И книги писал. Кстати, отличные.
И что это доказывает?
Что заявление
Вирт практически в одиночку писал операционные системы, компиляторы, крутой "умный" софт.
слишком громкое
- - - Добавлено - - -
И да - исходник компилятора, написанного в одиночку Виртом. И операционки. В студию.
Oleg N. Cher
14.07.2022, 21:53
http://projectoberon.com/
Я сказал "практически в одиночку". А ты грубо передёргиваешь. Конечно вокруг него ошивались аспиранты и прочие студенты, не считая коллег. И всем было интересно увидеть своё имя возле имени Вирта.
В любом случае, без Вирта этого всего наследия не было. И да, время показало, что взгляды Вирта на то, что в программировании хорошо, а что плохо, были очень адекватны ещё со времён Algol-W. И Оберон не смотрится архаично.
- - - Добавлено - - -
Ты когда-то добровольно обещал не ввязываться в мои темы по УКНЦ. Можешь меня игнорировать. Всё равно ничего хорошего не скажешь.
http://projectoberon.com/
Я сказал - ссылку на исходник. Сайт - это не исходник
Я сказал "практически в одиночку"
И всем было интересно увидеть своё имя возле имени Вирта.
Да? И где там фамилия Вирта? Поздравляю, господин Соврамши, грубо передергиваешь пока ты
не ввязываться в мои темы по УКНЦ
Эта тема не про УКНЦ
накину на вентилятор.
1. в левом углу ринга ASM , в правом "Супер ЯВУ".
За ASM: Вседозволенность, можно комбинировать двадцать способов умножения, вплоть до примерных вычислений, без проверок "правильности значений указателей" итд итп.
Против ASM: куча ручной работы, распределение каждого байтика в памяти, танцы с бубном по раскладу "пасьянса регистров", если меняется алгоритм - то начинай всё сначала. Цикл создания продукта длителен.
За "Супер ЯВУ" не паришься за способы умножения, все указатели гарантированно правильные, типы аргументов совпадают, не паришься если поменял алгоритм (да хоть десять раз) итд итп. Скорость разработки максимальна.
Против "Супер ЯВУ" - результат компиляции будет стремиться к ASM-варианту, но никогда не достигнет его. так ближайшие 20 лет (пока не придумают ИИ) компилятор будет работать по шаблону (не будет разбираться как реализовать в конкретном месте алгоритм умножения - тк у него нет к примеру даннах о возможном диапазоне значений и требуемой точности). До кучи всякие проверки на границы массивов, указателей тоже вносят накладные расходы.
Другими словами реализовать на платформе ZX Elite на ASM можно, а на "Супер ЯВУ" будет слайд шоу. А Болдердаш можно быстро собрать "Супер ЯВУ". На ASM тоже можно но потребуется время "на ручную компиляцию" исходного алгоритма.
Между ASM и "Супер ЯВУ" расположены все остальные языки.
ПС: не надо путать "красивые" и "фичастые" ЯВУ с "мейнстримом" - в производстве заправляет тот язык, на который можно найти много "дешёвой раб силы". Т.Е. язык Си С++ Java PhP итд но никак не форт, паскаль, оберон идр.
Smalovsky
14.07.2022, 23:14
У них( фортеров) на спектруме всего две незамысловатые игры, и они еще важничают. Интересно было б посмотреть алгоритм сортировки массива( любым методом) на форте и обероне. На форте будет зашквар по сравнению с обероном.
- - - Добавлено - - -
AlexG, на спектруме сейчас востребованы борель и агд. Спектрум не писи.
- - - Добавлено - - -
AlexG, на спектруме сейчас востребованы борель и агд. Спектрум не писи.
Oleg N. Cher
14.07.2022, 23:14
Зашквар будет в плане читаемости исходников. На Форте мозг сломаешь пока что-то поймёшь. Ну и если Форт в шитом коде, то производительность присядет. Кстати, вот мысль: а почему бы не компилировать в шитый код с Си или Оберона?
Не удивлюсь, если ряд классических игр были написаны на Форте или на чём-то подобном. Т.е. не на чистом асме.
Я сам когда-то ковырял игру Mr. Wong's Loopy Laundry (https://www.youtube.com/watch?v=wg0N4hVgnbA), в ней очень рыхлый прикладной код с кучей лишних команд. Очень похоже было на грубый порт с 6502. А вот графический вывод был уже совсем в другом стиле. Т.е. такую игру на Обероне сделать вполне можно.
Я сказал - ссылку на исходник. Сайт - это не исходникШо - не хватило ума нажать на первую попавшуюся ссылочку? Или то так хотелось? Ну на тебе на исходник: https://people.inf.ethz.ch/wirth/ProjectOberon/Sources/Files.Mod.txt
Да? И где там фамилия Вирта?Ты нашёл компиль без фамилии Вирта и на основании этого утверждаешь, что Вирт не писал компилей? И кто тут передёргивает?
aGGreSSor
15.07.2022, 02:22
Ох.. Скажем так. В старые-добрые времена, у нас в Питере водилось определённое кол-во авторитетных любителей Форта и Вы их всех знаете. Поэтому Вы можете найти IS-DOS FORTH, поэтому в проф. ПЗУ Scorpion ZS 256 зашит Forth, поэтому даже амижников зацепило Фортом (хотя никто кроме Михайлова так не понял что это такое и нахрен нужно). За Forth прилетало даже (кажется) от RDC (хотя он вообще, москвич). Однако, у всех сложилось стойкое впечатление что Forth это - ого-го! и когда будет время (когда вырасту) обязательно им займусь. И тогда Мир изменится окончательно и необратимо. Время прошло, все выросли, а Forth никто так и не занялся. Поэтому помимо 2-3 перечисленных реализаций нигде, и ни в каком виде он больше применительно к Спектрум не встречается. Статьи написанные в 90-е до сих пор читаются и как следствие до сих пор будоражат сознания.
Imho, это полностью аналогично (пример в сторону) такой ОС как Plan 9 (кстати, Ларченко считал что и Forth - это фактически ОС). Очень красивая в теории ОС, с одним маленьким недостатком: неконтролируемо течёт памятью и сколько теорий на этот счёт не создавалось, всё равно у запущенной ОС один финал. Сегодня считается что это неисправимо либо вообще, либо пока не найдётся гений который исправит сей маленький недочёт, и вот тогда человечество отправится в будущее оттолкнувшись от Plan 9.
На выходе и то, и другое является объективным тупиком. Хотя если у Вас есть запасная жизнь - Вы можете заняться популяризацией Forth. Или Plan 9. Или чего-то ещё.
Oleg N. Cher
15.07.2022, 04:08
поэтому даже амижников зацепило ФортомАмижников, кстати, зацепило и Обероном:
https://zx.oberon.org/forum/viewtopic.php?f=29&t=234
(кстати, Ларченко считал что и Forth - это фактически ОС).Ой, Forth это и ОС, это и интерпретатор, и компилятор, и утилита командной строки, и ассемблер на Форте пишется в страницу кода. Встроенный Форт-Паскаль или Форт-Бейсик выглядят также компактно. Так что Форт замечательная штука в этом смысле.
Спасибо Вам за интересный пост. Меня Форт тоже будоражит. Поэтому и участвую в обсуждении.
Вирт практически в одиночку писал операционные системы, компиляторы, крутой "умный" софт.
Ты нашёл компиль без фамилии Вирта и на основании этого утверждаешь, что Вирт не писал компилей? И кто тут передёргивает?
Оказывается, не в одиночку. И кто тут передёргивает?
И где я утверждал, что не писал? Второё передёргивание.
- - - Добавлено - - -
Ну на тебе на исходник: https://people.inf.ethz.ch/wirth/Pro.../Files.Mod.txt
Это полный исхолник компилятора или операционки?
Smalovsky
15.07.2022, 09:42
Вообще, топик о яву для спектрума. На спектруме с фортом ситуация плачевная. Современного кросскомпилятора для форта нет, существующие компиляторы на самом спектруме морально устарели, нет форт-клуба по аналогии с оберон-клубом для спектрума. И важне всего вот что - никто ничего делать на форте для спектрума не будет, будут только важничать "форт это круто".
никто ничего делать на форте для спектрума не будет
Так обычная ситуация - нормального современного нет, поэтому интереса нет, а поскольку интереса нет - что бы сделали нормальное современное - нужен интерес. И пока не появится кто-то, кто его сделает (по любой причине) - замкнутый круг
Lethargeek
15.07.2022, 11:55
Но поэтому и сказал, что в Форте интерфейсы могут быть описаны только в комментариях.
и был как всегда не прав, ибо -
Разумеется. Но в Форте и асме есть только зачатки интерфейсов. Ну и они конечно нифига не высокоуровневые.
нет, там есть зачатки плавной и "бесшовной" расширяемости до любых высокоуровневых абстракций
другое дело, что высокоуровневые абстракции на слабой хобби-ретро-платформе нафиг не нужны
Вирт практически в одиночку писал операционные системы, компиляторы, крутой "умный" софт. Это и есть разница между Виртом и теми, кто лихо его ругает.
мало ли кто чего писал в одиночку (вплоть до фрика автора TempleOS))
Ты сказал, что XDev "насквозь проэмулирована". Это уже говорит об абсолютно неадекватном представлении о XDev.
:v2_dizzy_facepalm: я с тебя худею, что ты несёшь? я там даже и не думал про твой XDev
отмотай назад и перечитай, что на самом деле сказано было, а потом уж о неадекватности заикайся
Oleg N. Cher
15.07.2022, 16:32
Оказывается, не в одиночку. И кто тут передёргивает?
И где я утверждал, что не писал?Ты изо всех сил дискредитируешь Вирта. А у него надо учиться, а не важничать. Пользы больше будет.
Это полный исхолник компилятора или операционки?Я взял первый попавшийся, чтобы показать тебе автограф Вирта. Там по другим ссылкам есть исходники операционки (ETH Oberon), которую, в основном, писал Вирт. Но не будем принижать и Юрга Гуткнехта, он тоже крут (AOS/Bluebottle/A2).
отмотай назад и перечитай, что на самом деле сказано былоТогда $л@ выражайся яснее, и с учётом того, что каждый на своей волне. Я мысли тоже читать не умею.
Скатываемся в оффтоп :(
Я предлагаю успокоится, разойтись по разным тредам и представить пользователям нечто полезное в соответствующих областях.
Ты изо всех сил дискредитируешь Вирта
Это только у тебя в голове такой вывод
А у него надо учиться, а не важничать. Пользы больше будет.
Как нибудь сам решу
Andrew771
21.07.2022, 22:25
Почему бы не сравнить кросскомпиляторы? Кросс версию форта, z88dk, борель, оберон, zxлайкпаскаль.
Тест все покажет. А есть кросс форт для теста?
Vitamin делал прогон тестов и сравнение компиляторов Си в уже далеком 2006-м году, с этого поста и ниже: https://zx-pk.ru/threads/4110-yazyki-programmirovaniya.html?p=65499&viewfull=1#post65499
Надо Форт и Оберон с Паскалем также прогнать. Правда, Оберон работает на SDCC, а не самостоятельно. Так что, тест SDCC под него подходит.
На спектруме с фортом ситуация плачевная. Современного кросскомпилятора для форта нет, А зачем нужен кросскомпилятор Форта? Чем он лучше нативного Форта?
...существующие компиляторы на самом спектруме морально устарели... В чём они устарели по-вашему? В курсе что Форт - язык расширяемый, и если вам чего-то в нём не хватает, это легко добавить?
Емнип, для обычного Спектрума существуют 2 версии Форта, одна целочисленная, другая с запятой. Если вы думаете только о создании игр, целочисленной достаточно, она быстрая и компактная...
P.S. вероятно вас удручает ограниченный текстовый режим спека? Совершенно несложно переделать любой компилятор Форта под расширенный экранный режим, для этого достаточно заменить одно слово в базовом словаре...
P.P.S. базовый словарь Форта занимает не более 2 килобайт, вся остальная память в вашем распоряжении... Ну и конечно же вы можете оперировать расширенной памятью 128-го Спека и более, добавив соответствующие слова в словарь...
Oleg N. Cher
22.07.2022, 02:17
Правда, Оберон работает на SDCC, а не самостоятельно. Так что, тест SDCC под него подходит.В последнее время я использую ZSDCC (сборка SDCC от разработчиков z88dk), который порождает более хороший код. Надо делать новый тест.
Lethargeek
22.07.2022, 09:10
А зачем нужен кросскомпилятор Форта? Чем он лучше нативного Форта?
ну как бы тебе сказать, при отладке - примерно всем
(как сосбс-но и кросскомпилятор лбого другого яву)
Kakos_nonos
22.07.2022, 13:18
Удобством пользования, редактированием кода в современных редакторах.
inozemcew
07.08.2022, 16:54
В стародавние времена попытался использовать форт для написания GUI. Помучившись неделю, понял, что это абсолютно бесполезное занятие. Этот дурацкий язык не может никак ни в структуры данных, ни в управление памятью. Вменяемые строки - отсутствуют, вменяемые массивы - отсутствуют, структуры - из ассемблера легче с ними работать чем из форта. Контроля типов - нет, контроля границ - нет, контроля хоть чего-то - нет, вообще непонятно, почему это чудо называют "языком высокого уровня"? Кроме того, в форте напрочь отсутствует понятие контекста. Каждое "слово" форта - это не более чем "CALL xxxx", в отличие от других ЯВУ, где каждый оператор или операция анализируется и исполняется в контексте или выдается синтаксическая ошибка, если контекст не соответствует оператору. В форте даже нет понятия "синтаксическая ошибка", любая билиберда - это валидная форт-программа. Даже асм в этом плане более высокоуровневый - там хотя бы местами проверяется соответствие операндов оператору.
Короче, лично я абсолютно не понимаю, зачем нужен этот недоассемблер, ну разве что рассматривать, как красиво у него уложены "кишочки".
Это все-равно, пардон муа, что дам делить на "дам" и "не дам". Не понравился Форт? Ну и забудьте о его существовании.
Самый лучший инструмент это тот, который всю черновую работу делает за Вас сам. А Вам остается только ставить перед ним цели и корректировать достигнутые им результаты. Правда компьютеры пока сами по себе этого не умеют делать. Увы! И к счастью для программистов, нанимающихся в компании за приличные деньги.
Любой ассемблер от такого чудо-инструмента заведомо дальше всех остальных наличествующих! Он заставляет проектанта прежде всего выучить само "железо". И то, если проект для голого железа, а не под какой-нибудь биос, пзу или ось. Форт уже имеет слова, использующий все это скрыто от Вас. Только если нет аналогичного Форта под другое железо, которое вам интересно, приходится с этим разбираться.
А как Вы, не имея исходника другого компилятора, сможете его переделать для другой среды исполнения? В Форте же достаточно реализовать несколько новых слов, не трогая всего остального.
inozemcew
07.08.2022, 18:56
Ну, с дамами оно понятно "чего, куда и как" вне зависимости от понравилась/не понравилась. С инструментами ситуация посложнее. Если инструмент выдает плохой результат - возможны два варианта: либо инструмент используется неправильно, либо инструмент негодный. Как правильно использовать форт - я хз. Как ЯВУ? - нет, в нем нет абсолютно ничего, что нужно языку высокого уровня. Как продвинутый ассемблер? - нет, ибо обычный ассемблер быстрей, удобней, да и фичастей будет. Как кроссплатформенный ассемблер? - нет, для современного железа он не нужен, а для 8битного - бессмысленен, ибо ни графику, ни звук, ни все остальное на 8ми битном железе нельзя сделать кроссплатформенным, ибо любая прокладка (по типу SDL) съест всю производительность.
Так для чего хорош инструмент под названием "форт", кроме любования его "кишочками"?
Практически 100% дам существуют в статусе "дам, но не вам". И это правильно, иначе бы мир рухнул! Энтропию никто не отменял. Самопроизвольно она всегда возрастает, а задача человечества, роботов и программ хотя бы немного ее уменьшать что-то вокруг себя упорядочивая и организуя. Желание улучшить породу своего потомства это тоже стремление сделать детей счастливее и энтропию мира уменьшить.
Сравнивать языки между собой, в особенности несравнимые бессмысленно и абсурдно! Чем хорош китайский язык, а русский, а суахили? А эсперанто, английский, тумбу-юмбу или язык отдельно взятого младенца, которого понимает в основном его мама?
Так и языки программирования. Чем ассемблер удобней для того, кто не знает железа, для которого он предназначен?
Он удобней для того, кто это железо изучил и изучил всю мнемонику( а у CISCа любого это еще-то траханье мозга).
В 23 года в 1983 году в Ленинграде, когда я пришел на первую свою работу, мне дали железный ящик с мембранной клавиатурой и семисегментными индикаторами под названием МСУВТ В7. Мне показалось это что-то совсем близкое к программируемому калькулятору Б3-21, на котором я больше года считал курсовики себе и своим друзьям-одногруппникам. Но потом оказалось, что это другое. Во-первых, при включении питания я попадал в загадочный "монитор", а во- вторых, чтобы увидеть хоть какой-то осмысленный текстовый вывод, приходилось включать телетайп. Это не просто электрическая печатная машинка, но еще и перфоратор на бумажную ленту и перфоввод с бумажной ленты.
Чтобы написать свою первую программу, приходилось изучить архитектуру его ЦП ( а это был Intel 8080) и изучить действие его команд. Потом прочитать описание архитектуры микро-ЭВМ, и понять как что-то вывести на индикаторы и зажечь лампочки, и как обработать нажатие мембранной клавиши. К счастью, все эти функции были в программе мониторе и к ним было можно обращаться по адресам с параметрами. Нашлись и процедуры для работы с вводом/выводом на бумагу и ленту телетайпа.Чтобы тупо не вводить каждый раз на мембранной клавиатуре коды своих программ, пришлось освоить вывод этих кодов на бумажную ленту телетайпа и ввод с нее.
Потом уже я узнал, как мне подключить электронно-лучевой монитор с клавиатурой и как проделывать все то же самое на нем. Потом удалось понять как подключить кассетный магнитофон и перестать хранить свои программульки на бумажной ленте. А потом выяснилось, что в ППЗУ платы расширения памяти прошиты редактор и ассемблер. А я к тому времени все набирал в машинных кодах и до сих пор помню, что JMP это 0xC3, а RET это 0xC9. Я еще и на листочке программульки свои перемещал по памяти с заменой вручную адресов. Потом нашел нужную функцию в программе монитора и дизассемблер встроенный. После чего сперва свою программу отдизассемблил, а потом и программу монитора. И распечатал ее на рулоне телетайпа, потом ее "гармошкой" сложил и занумеровал и оглавление сделал. Ведущий специалист в моей группе с ассистенткой в Александрию Кировоградской на АЭМЗ ездили. Там у них был советский аналог Intellec MDS Series II. С операционкой дисковой и двумя 8 дюймовыми флопами. А на них куча компиляторов: PL/M-80, FORTRAN-80, PASCAL, ну и разумеется макроАссемблер и экранный редактор CREDIT. У меня же этого ничего не было. Редактор был примитивный, построчный.
Но программы тестовые по заданию завлаба я свои успешно написал и ушел от них в соседнюю группу на Искра-226. А там как включаешь питание сразу в Бейсике оказываешься. Там проц был на секционных микросхемах аналог hp-2100 по-моему, а вот модули ввода/вывода на 8080. И там мне знание кодов 8080 хорошо помогало. Но с бейсиком я почувствовал себя "белым человеком". АЦП к нужным датчикам подключал, а на графическом экране Искра-226 что надо отображал. Ну а если бы там не бейсик, а форт встроенный оказался( там и магнитофон был управляемый и диски 8 дюймовые и даже 5 мбайт ный винчестер в виде большого белого блина). Думаю и с фортом бы подружился.
Ассемблер при разработке это всегда большие трудозатраты, даже когда библиотеки нужные и свои уже есть и макросы ты свои уже понаписал. А еще очень нужны комментарии. Иначе через полгода-год не вспомнить нифига, и чтобы другой человек твои проги сопровождал и модернизировал, да он тя на каждом шагу материть будет!
Если переходишь со своим опытом на другой процессор - начинай не с нуля конечно, но осваивай все по новой. Любой ЯВУ тебе жизнь облегчает! Форт в том числе. Потому что бережет он тебя от железа. А в нем часто всякие "подлянки" встречаются. Хотя и его код Форта комментировать не повредит. А сделал его создатель, как известно, первоначально для управления своим телескопом. Если бы мне этот подвиг было повторить, у меня бы установка для захоронения радиактивных отходов с свч - установкой управлялась бы от него. Очень удобно. Специализированный словарь создаешь и процесс пошел. А кому бы моего не хватило, свой бы мог легко добавить.
К игроделию его тоже, есть подозрение, удобно можно приспособить. Ну а управление графикой не знаю, наверное действительно лучше на ассемблере написать.
Lethargeek
07.08.2022, 22:14
В стародавние времена попытался использовать форт для написания GUI. Помучившись неделю, понял, что это абсолютно бесполезное занятие. Этот дурацкий язык не может никак ни в структуры данных, ни в управление памятью.
это ты скорее в поиск не смог (хотя в очень стародавние времена были объективные трудности)
https://www.complang.tuwien.ac.at/forth/objects/structs.html
http://www.figuk.plus.com/articles/jb/struct.htm
Контроля типов - нет, контроля границ - нет, контроля хоть чего-то - нет,
нет - найди, не нашёл - добавь
как уже говорилось, всё реализуемо или даже реализовано
просто мало кому нужно, особенно в ретрокомпутинге
вообще непонятно, почему это чудо называют "языком высокого уровня"?
потому что сам даёт возможность безграничного расширения
кстати, там забавная ремарка по ссылке выше, с Обероном связанная как раз :p
This feature is also known as extended records [wirth88]. It is the main innovation in the Oberon language; in other words, adding this feature to Modula-2 led Wirth to create a new language, write a new compiler etc. Adding this feature to Forth just requires a few lines of code.
Oleg N. Cher
07.08.2022, 23:09
Хрень Вы процитировали, уважаемый. Ох уж мне эти восторги про "реализуется парой строк".
"Покупая" Оберон, Вы получаете безопасный язык из коробки, который будет заботливо отслеживать все возможные огрехи работы программы, в т.ч. и в рантайме.
"Покупая" Форт, Вы будете парой строк костылировать одну свою безопасную абстракцию, а большинство слов Форта именно опасные в плане надёжности. И костылировать, и костылировать, и сами не заметите, как строк станет дофига, а программа превратится в бордель и гадюшник. А потом и сами не заметите, как создадите новый другой язык.
- - - Добавлено - - -
Любой ЯВУ тебе жизнь облегчает! Форт в том числе. Потому что бережет он тебя от железа.Форт не бережёт. Разве что на уровне вывода в консоль при помощи . и EMIT, а захочется сделать что-то слегка посложнее, велькам ту лоулевел.
Lethargeek
08.08.2022, 01:40
Хрень Вы процитировали, уважаемый. Ох уж мне эти восторги про "реализуется парой строк".
"Покупая" Оберон, Вы получаете безопасный язык из коробки, который будет заботливо отслеживать все возможные огрехи работы программы, в т.ч. и в рантайме.
хрень - это переписывать компилятор, когда можно не переписывать компилятор :v2_sick:
ох уж эти восторги по поводу лжебезопасности "из коробки", получаемой ценой выкручивания рук
и особого значения не имеющей при развитых средствах эмуляции и отладки
"Покупая" Форт, Вы будете парой строк костылировать одну свою безопасную абстракцию, а большинство слов Форта именно опасные в плане надёжности. И костылировать, и костылировать,
расширять, а не "костылировать" - там, где нужно, и насколько нужно "купившему"
а не как раз и навсегда решил вумный дядя за неспособных мыслить самостоятельно
и сами не заметите, как строк станет дофига, а программа превратится в бордель и гадюшник.
опыт мне подсказывает, что даже "дофига" на форте будет скромненько по меркам других яп
стало быть, на них сразу изначально будет бордель с гадюшником))
А потом и сами не заметите, как создадите новый другой язык.
в той же степени, в какой любая библиотека
inozemcew
08.08.2022, 10:59
https://www.complang.tuwien.ac.at/fo...s/structs.html
http://www.figuk.plus.com/articles/jb/struct.htm
Вот примерно такое и велосипедил тогда. Но как концепт оно вроде да, а на практике - геморрой поболее, чем с просто ассемблером.
нет - найди, не нашёл - добавь
А не получится добавить контроль типов ни в каком виде. Каждое "слово" форта - вещь в себе. Оно понятия не имеет, что перед ним положили на стек - целое, вещественное, символ, указатель на что-то? Да хрен его знает.. Следовательно и проконтролировать соответствие типов нет абсолютно никакой возможности. Вот вам и "добавьте если надо".
andrews,
Я правильно понял, что форт нужен там, где есть неизвестный науке процессор, и ничего другого кроме форта нет. В остальных случаях (8080/z80, 6502, 8086, 68k) от этого чуда враждебной человечеству технологии лучше держаться подальше.
Да вовсе нет. Энтузиасты где его только не применяют. Особенно классно, когда пзу-шка какая-то над железом есть, или биос. И нужно не очень большой проект попробовать быстро склепать и затем понемногу расширять.
Вот если к примеру игра, можно оставить возможность пользователю ее модифицировать под себя. Хотя жадные Silmarils такой возможности играющим в их Metal Мutant не оставили.
Есть разумеется и "нижняя граница", где его не применишь. Например, какой-нибудь микроконтроллер, подобный 8751 без внешней памяти. Ну, а его неудобство для непривычных...ну это как китайский для русского. Согласен, это определенный языковой барьер.
- - - Добавлено - - -
геморрой поболее, чем с просто ассемблером.
просто ассемблер в роли форта - никак, от слова совсем. Нужен исходник, или дизассемблер, если код чужой. Если код свой, заново ассемблировать,перестраив ть и загружать. Тот чувак, изобретатель форта, со своим автоматизированным телескопом тоже ведь под него ассемблер имел.
Можно сравнивать форт с бейсиком, и то не со всяким.
inozemcew
08.08.2022, 12:06
просто ассемблер в роли форта - никак, от слова совсем.
Скорее это форт в роли ассемблера - это никак от слова совсем. Ибо попытки свести 8ми битные компы к общему знаменателю обречены на провал просто из-за недостаточной мощи ретрожелеза. И 8ми битные асмы на массовых железках уже изучены вдоль и поперек, так что особого "импортозамещения" для них не требуется, тем более на такую сомнительную вещь как форт. А на современном железе оно даром не нужно.
Вот если к примеру игра, можно оставить возможность пользователю ее модифицировать под себя.
Без наличия исходников модифицировать шитый код форта? Ну-ну.. Тут уже не эротикой пахнет, а садомазохизмом.
Да и с исходниками еще бабушка надвое сказала, какую программу проще поправить - ассемблерную или фортовую.
Без наличия исходников модифицировать шитый код форта?
а в интерфейс игры вынести? поскольку форт-система, то при исполнении кода все в наличии.
А ассемблерный код, поскольку не интерпретируемый как вынести в интерфейс игры? Только если через данные, да и то прога должна суметь, что-то на основании этих данных сгенерить или задействовать избыточную часть кода. Но это опять таки только в тех рамках, что автор кода в нее заложил. А иногда вместо драйвера случается заглушка. Я однажды из-за такой фигни работу денежную потерял.
Ничего своего как код добавить не получится. Возвращайся к инструменту с исходниками.
- - - Добавлено - - -
Да и с исходниками еще бабушка надвое сказала, какую программу проще поправить - ассемблерную или фортовую.
а это сильно зависит от структуры кода, правда и для форта тоже. Ассемблер вот тут и проигрывает ЯВУ, что связи проследить от главного цикла до исполняемого кода и их взаимосвязи через данные без комментариев это уже даже не садомазохизм, а между фанатизмом и лунатизмом. Много найдется охотников сопровождать чужой ассемблерный код? Многие дизассемблировать сами предпочтут, гоняя через отладчик.
- - - Добавлено - - -
попытки свести 8ми битные компы к общему знаменателю обречены на провал просто из-за недостаточной мощи ретрожелеза
используйте кроссы с симуляторами(эмуляторам) если надо корежить основной словарь. Можно и поверху своим кодом его крыть. Лучше конечно если часть кода все же умеет разбирать на каком она железе запущена и в каком окружении. Но согласен, это от языка не зависит. Это от программиста зависит.
Да, технологию можно освоить и на десктопе x86 или x64 что там у Вас сейчас под рукой.
Десктоп -> эмулятор(симулятор) -> реальное железо ( последний шаг, если есть место в доме/офисе и на столе)
Хотя и на ассемблере такой ( модифицируемый/активируемый пользователем) код любопытно было бы увидеть.
Smalovsky
08.08.2022, 13:06
Назовите продвинутые игры на форте. Можно не для спектрума. Максимум по железу - амига 500 или айбиэм со 186( цга, ега) Желательно скриншоты. Игры типа змейки или трона не считаются. Игры для юпитерэйса не считаются.
Lethargeek
08.08.2022, 13:31
А не получится добавить контроль типов ни в каком виде. Каждое "слово" форта - вещь в себе. Оно понятия не имеет, что перед ним положили на стек - целое, вещественное, символ, указатель на что-то? Да хрен его знает.. Следовательно и проконтролировать соответствие типов нет абсолютно никакой возможности. Вот вам и "добавьте если надо".
:v2_dizzy_facepalm: у тебя любой код может в ходе компиляции выполняться, но возникающих возможностей ты не видишь
в противном случае говорил бы, что лень пилить, но не "невозможно ни в каком виде"
- - - Добавлено - - -
Назовите продвинутые игры на форте. Можно не для спектрума. Максимум по железу - амига 500 или айбиэм со 186( цга, ега) Желательно скриншоты. Игры типа змейки или трона не считаются. Игры для юпитерэйса не считаются.
ты бы гуглить попытался хоть иногда
вот что, например, нашлось на первой странице
https://pmig96.wordpress.com/starflight_home/
Smalovsky
08.08.2022, 13:58
Lethargeek, ничего гуглить я не должен. Я критикую форт. Я заинтересованное лицо. Я могу нагуглить плохих игр и написать:" какое г..но на форте было".
Ты если защищиешь форт, сам должен привести примеры качественных игр.
inozemcew
08.08.2022, 14:47
а в интерфейс игры вынести?
Не представляю, как это может выглядеть. Можете привести пример, желательно в контексте спектрума. Ну и зачем такое нужно разработчику, тоже непонятно.
Ассемблер вот тут и проигрывает ЯВУ, что связи проследить от главного цикла до исполняемого кода и их взаимосвязи через данные
Но как мы выяснили, форт - не ЯВУ, и отследить там акробатику со стеком данных, стеком возвратов, данными, запихнутыми в шитый код, данными во всяких мутных буферах и глобальных переменных ничуть не легче, чем разбираться с ассемблером. А если в фортовом сорцкоде не описаны входные и выходные параметры для "слов", то зачастую такой код проще выкинуть и написать заново, чем разбираться, что же он делает.
у тебя любой код может в ходе компиляции выполняться, но возникающих возможностей ты не видишь
Я не вижу, каким образом выполнение кода в ходе компиляции поможет определить тип данных, что уже лежат на стеке.
- - - Добавлено - - -
используйте кроссы с симуляторами
А вот это хорошая идея, сделать кросс компилятор. Сразу можно будет выкинуть дурацкий встроенный интерпретатор/компилятор. Словарь, как он есть, становится не нужен, имена и прочие служебные данные во время исполнения не нужны. Куча вспомогательных "слов" также идет лесом. Не нужна "обратная бесскобочная", кросс-компилятору ничего не мешает разбирать нормальные выражения. Добавить еще контроль параметров, типы переменных, строки, записи, массивы. Раз есть строки, то добавить работу с кучей и вместо дурацких "буферов", сделать нормальную работу с файлами. Вот тогда будет отличный язык высокого уровня. :v2_thumb:
PS. 'BEGIN' и 'END' можно не добавлять, использовать фигурные скобки.
Lethargeek
08.08.2022, 15:21
Lethargeek, ничего гуглить я не должен. Я критикую форт. Я заинтересованное лицо. Я могу нагуглить плохих игр и написать:" какое г..но на форте было".
Ты если защищиешь форт, сам должен привести примеры качественных игр.
ничего я приводить не должен, и никто здесь не должен тратить своё время вместо тебя
информация легко находится беглым поиском, и понятно, что ты даже не попытался
подтверждается, что ты был здесь заинтересован только потролить
- - - Добавлено - - -
Я не вижу, каким образом выполнение кода в ходе компиляции поможет определить тип данных, что уже лежат на стеке.
а кто сказал, что для "добавления контроля типов в каком-то виде" это нужно обязательно будет делать? :D
Я уже приводил в пример игру Silmarils, написанную на Форте- Metal Mutant.
- - - Добавлено - - -
форт - не ЯВУ,
форт-система, все в одном и явно не ассемблер, значит ЯВУ
- - - Добавлено - - -
А вот это хорошая идея, сделать кросс компилятор
так уже вроде есть, правда не под спектрум. Где-то на специализированных форумах пошукайте.
- - - Добавлено - - -
Ну и зачем такое нужно разработчику, тоже непонятно.
чтобы юзеры не доставали его предложениями, что-то там улучшить или переделать. А заодно не тупо играли, но при желании почувствовали себя сопричастными.
Когда-нибудь и с кино так будет, а с книгами и сейчас было бы можно, если бы авторы на это соглашались.
Smalovsky
08.08.2022, 20:42
Немного прочитал про современные форт-языки. Мало кто сейчас на чистом форте программирует. Сейчас получают развитие форт-производные языки, в которых есть типизация данных и ООП. Я узнал об одном из таких языков как Factor из википедии. Этот язык придумал Слава Пестов. Неплохо бы сравнить фактор и оберон.
inozemcew
08.08.2022, 20:49
а кто сказал, что для "добавления контроля типов в каком-то виде" это нужно обязательно будет делать?
Ну, потому, что передача данных через стек - это основной способ передачи параметров между "словами" форта.
явно не ассемблер, значит ЯВУ
Никак не значит. Есть немало языков, которые и не ассемблер и не ЯВУ. MSIL (https://en.wikipedia.org/wiki/Common_Intermediate_Language) например.
так уже вроде есть, правда не под спектрум.
Ну есть и под спектрум. Вот например. (https://z88dk.org/site/) Всю ненужную фортятину убрали, массу полезного добавили - получился вменяемый язык и приличный кросс-компилятор. ;)
чтобы юзеры не доставали его предложениями, что-то там улучшить или переделать.
Для этого есть опенсорц и все такое.
Как юзеры могут создавать доп.контент в игре из фортовой консоли, да еще и на спеке - лично я совершенно не представляю. Да и у вас, похоже, с идеями на счет такого - не густо.
А меня приколол FALSE (https://strlen.com/false-language/)
Пример программы:
"Hello, World!
"
функция вычисления факториала
[$1=$[\%1\]?~[$1-f;!*]?]f:
правда ни одной реализации компилятора просто на С пока не попалось. Есть на ассемблере 68000 и на Standart ML. А так вроде сверхкомпактный компилятор, а какой код генерит пока не знаю.
- - - Добавлено - - -
Как юзеры могут создавать доп.контент в игре из фортовой консоли, да еще и на спеке - лично я совершенно не представляю. Да и у вас, похоже, с идеями на счет такого - не густо.
хорошая задачка, не правда ли?
Я уже приводил в пример игру Silmarils, написанную на Форте- Metal Mutant.
а из чего сделан такой вывод ?
Из дизассемблера. Я тогда на форуме не помню каком ссылку кидал, а мне сказали, что шитый код и FORTH.
Oleg N. Cher
08.08.2022, 23:23
хрень - это переписывать компилятор, когда можно не переписывать компилятор :v2_sick:А на Форте если надо сделать прогу посложнее HelloWorld, уже надо дописывать компилятор, заодно и интерпретатор.
ох уж эти восторги по поводу лжебезопасности "из коробки", получаемой ценой выкручивания рукЭта "лжебезопасность" реально помогает при отладке огромных проектов. И важно то, что Вирт это понимал уже в 60-х, когда городили Алголы-68 и прочие Си. А руки никто не выкручивает: есть модуль SYSTEM - импортируй и стреляй себе в ногу. В компиляторе обычно есть опции отрубания проверок, которые, впрочем, всегда есть смысл держать включенными.
и особого значения не имеющей при развитых средствах эмуляции и отладкиИмеющей. Безопасность и надёжность может плохо продаваться, но имеет значение всегда.
расширять, а не "костылировать" - там, где нужно, и насколько нужно "купившему"Если в основе костыль, то поверх него только костыли.
а не как раз и навсегда решил вумный дядя за неспособных мыслить самостоятельноЗато не очень вумные дяди как нагородят на Форте "проверок", так сами потом убьются апстену, пока отладят и будут поддерживать.
Вы поймите, что проверки, которые предлагает Оберон - адекватны, а не чрезмерны. Они реально помогают. Но если Вы анархист с дебаггером в руках, и это стиль жизни, тогда конечно что-либо доказывать бесполезно.
Я так смотрю, что в Спектрум-кругах считается хорошим тоном лишний раз упомнить и обосрать Оберон. Нехорошая тенденция. Я Форт стараюсь критиковать объективно, имея опыт работы и на Обероне, и на Форте.
Я Оберона не касаюсь. Просто больших проектов у меня нет, а на экзотике проще выехать. Это как в боксе. Легковесов дополна и скольких надо побить прежде чем до финала доберешься. А если ты полутяж, то пару боев и ты уже в финале. Сделай что-то из ряда вон и тебя отметят. А на некоммерческих проектах, чем меньше трудозатраты и чем проще за тобой последовать - тем привлекательней для других.
- - - Добавлено - - -
А на Форте если надо сделать прогу посложнее HelloWorld, уже надо дописывать компилятор, заодно и интерпретатор
да Вы ж сами и показывали, как на Форте ПЗУ Zx Spectrum-а использовать. Мне понравилось.
Oleg N. Cher
08.08.2022, 23:55
andrews, к Вам претензий нет)
Но важное уточнение: Оберон хороший язык для разработки больших и сложных систем. Юзать его для ретро это я сгоряча придумал ;-)
Ну если с нормальным IDE, эмулятором и отладчиком и справочной системой на десктопе, то почему бы и нет? Главное примеров побольше и автоматизации. Чтобы первые простенькие проекты можно было сделать максимум за полчаса-час. "Большую и сложную систему" без мотивации(финансирования) вряд ли кто-то станет делать. Разве что у человека денег девать некуда. И нужно после себя что-то оставить. Впрочем я могу ошибаться. Я не социалист и не альтруист ведь.
Oleg N. Cher
09.08.2022, 00:20
Ну, может и не с нормальным IDE и отладчиком (я имею в виду, для ретрокодинга), но как-то справляемся. Хобби ведь.
Я заметил, что мотивация в Спектрум-кругах - это превзойти то, что уже кем-то сделано.
А у меня была другая идея: помочь начинающим без знания ассемблера и Си, с минимальным знанием Паскаля, получить первый опыт программирования для разных ретро-платформ. Потом выяснилось, что подход обещает гораздо более широкое применение.
Но чтобы добиться итоговой цели, нужны специалисты по ретро-платформам, которые захотят развивать подсистемы. Пока так.
zx_gamer
09.08.2022, 10:29
Вот это странно, что C++ тоже медленнее FORTH. Или он тут наоборот, среди тех немногих, которые не вошли в группу "превосходит почти все существующие языки программирования"?
У высокоуровневого кода на C++ слишком много оберток. "Умный" компилятор их может оптимизировать, но если компилятор транслирует программу "как есть", то С++ очень неэффективный язык.
Вот например как на С создать строку (на куче)?
char* string_name = malloc(sizeof(char)*LENGTH);
if(!string_name) {
perror("Malloc error");
exit(1);
}
А как это сделать на С++?
std::string string_name;
При ручном управлении памятью (на С) вы просто выделите память, при использовании контейнера std::string (в С++) вы вызовите конструктор класса, который выделит память. У этого контейнера есть методы, которые позволяют "дописать" что-то к строке. (это метод operator+), позволяют узнать длину строки и т.д. и т.п.
Безусловно, это удобно, но это несет накладные расходы, потому что при "добавлении" чего-то к строке у вас вызовется реаллокатор памяти.
Конечно, вы можете писать на С++ как на С. Но какой смысл тогда использовать С++?
Если интересно, вы можете посмотреть какой ассемблер вам выдаст компилятор С++ с оптимизацией и без таковой. Разница в длине ассемблера (а значит и размера исполняемого файла) будет кратной.
Lethargeek
09.08.2022, 11:17
Ну, потому, что передача данных через стек - это основной способ передачи параметров между "словами" форта.
у кого основной, а у кого и нет, ты никак не въедешь, что в форте нет жёстких ограничений
никто же не запрещает, например, передавать между процедурами только ссылки на объект (ОДИН тип)
никто не запрещает навернуть парсер, чтобы пропускал только безопасный код, а небезопасный сам генерировал
- - - Добавлено - - -
Я Форт стараюсь критиковать объективно, имея опыт работы и на Обероне, и на Форте.
Нет, субъективно, принимая некоторые свойства языков (типобезопасность "искаропки", конкретная реализация модульности) за абсолютную сверхценность всегда для всех. А это не так, кому-то важнее эффективная небезопасная работа ближе к железу, причём, как уже отмечал, если навернуть любых абстракций при желании нет принципиальных препятствий, то вот спуститься ниже практически невозможно. Этот недостаток - неустраним.
Впрочем, замечание про ретро может говорить о том, что ты прозреваешь))
А у меня была другая идея: помочь начинающим без знания ассемблера и Си, с минимальным знанием Паскаля, получить первый опыт программирования для разных ретро-платформ. Потом выяснилось, что подход обещает гораздо более широкое применение.
Ууу, это надо после школы или ВУЗа лет так 20 не иметь дела с актуальным программированием вообще, но при этом и Паскаль не забыть. Много ли таких "начинающих"?
inozemcew
09.08.2022, 15:42
никто же не запрещает, например, передавать между процедурами только ссылки на объект (ОДИН тип)
Никто не запрещает, но это мало что меняет. На этапе компиляции все равно нельзя проверить: ссылку на правильный или неправильный объект положат на стек перед вызовом процедуры.
Что делать со стандартными "словами" форта, коих дофига и все они "небезопасные"? Писать обертки на каждое? Что делать с теми "словами", что сами парсят ввод на этапе компиляции, ведь никакой вложенности для таких вещей не предусмотрено? Их как оборачивать?
Все эти улучшения потому и не приживаются, что они локальны, могут быть применены лишь к отдельным "словам". Глобальную кривизну форта ими не исправить.
никто не запрещает навернуть парсер
Опять же никто не запрещает. Можно навернуть парсер так, что он будет брать на входе нормальную программу на паскале или сишке и компилять в нативный код. Вот только вопрос: сколько усилий на это понадобится, какая будет итоговая производительность и нафига здесь вообще нужен форт?
Ну и для 8ми битных машинок все эти попытки добавить в форт фичи из нормальных языков - это как приварить к велосипеду кабину от самосвала.
Lethargeek
09.08.2022, 16:36
Никто не запрещает, но это мало что меняет. На этапе компиляции все равно нельзя проверить: ссылку на правильный или неправильный объект положат на стек перед вызовом процедуры.
и опять "раз я не представляю как того добиться, ЗНАЧИТ НЕЛЬЗЯ"
так, по имени в стек их может положить сама процедура (а точнее, код этапа компиляции, формирующий код этапа выполнения в словаре)
если уже в стеке, значит, это передача по ссылке, которая и в традиционных языках не гарантирует безопасности
но можно запилить рантаймовые проверки, даже в сам объект их встраивать при желании
Что делать со стандартными "словами" форта, коих дофига и все они "небезопасные"?
ну и не делай с ними ничего, если так страдаешь за безопасность))
один раз отладь все применения и забудь для верхнего уровня
Писать обертки на каждое? Что делать с теми "словами", что сами парсят ввод на этапе компиляции, ведь никакой вложенности для таких вещей не предусмотрено? Их как оборачивать?
и опять ты не понимаешь, как работает фортовская компиляция
парсинг может быть перехвачен компилируемой программой в любой момент
Все эти улучшения потому и не приживаются, что они локальны, могут быть применены лишь к отдельным "словам". Глобальную кривизну форта ими не исправить.
просто потому что в основном форт нужен людям именно за то, что ты посчитал кривизной
ты исходишь из ложных предпосылок, считая самоцелью и самоценностью всего лишь средства
но цель - допускать ошибок меньше, писать быстрее, она может достигаться другими способами
Опять же никто не запрещает. Можно навернуть парсер так, что он будет брать на входе нормальную программу на паскале или сишке и компилять в нативный код. Вот только вопрос: сколько усилий на это понадобится, какая будет итоговая производительность и нафига здесь вообще нужен форт?
достаточно брать на входе безопасные выражения, это не потребует сверхусилий
но даже в полностью неузнаваемом виде форт останется как минимум в способах взаимодействия с программистом (та же диалоговая отладка)
Ну и для 8ми битных машинок все эти попытки добавить в форт фичи из нормальных языков - это как приварить к велосипеду кабину от самосвала.
так и нативные версии "нормальных языков" для восьмибитных машинок из-за слабости железа все заведомо не совсем нормальные и урезанные
(форт как раз тут в выгодном положении, меньше требует и производительности, и памяти)
а для кросс-трансляторов не проблема
Oleg N. Cher
09.08.2022, 16:55
у кого основной, а у кого и нет, ты никак не въедешь, что в форте нет жёстких ограниченийЕсть там жёсткие ограничения. Наличие стека. Чтобы уйти от стека - тебе надо нагородить огород из кучи своих слов. Наличие повсеместной адресной арифметики. Корявая работа с памятью только через растущий выделяемый буфер. И так во всём. Всё гнилое, всё надо переделывать.
никто не запрещает навернуть парсер, чтобы пропускал только безопасный код, а небезопасный сам генерировалХаха, "навернуть". Можно навернуть, а можно и не навернуть. Скорее всего, не навернут. Поленятся. Зачем наворачивать что-то безопасное поверх языка, в котором половина оперируемых словами значений на стеке это адреса?
Вот уж блин теоретик. Я тоже в чём-то люблю подход Форта. Но я даже не готов сформулировать, в чём именно. Мне нравится одна биологическая аналогия: дождевой червь очень гибкий, но не может стоять вертикально. У человека и близко нет той же гибкости, но он за счёт грамотного устроения костей может многое такое, на что неспособен червь. Это и есть разумная жёсткость, которая просто необходима в программировании. Оберон даёт грамотные абстракции: модуль, ссылка, процедура со строгой проверкой типов параметров. На Форте всё это надо изобретать. Абстракции Форта не человеческие, а машинные.
Так что Вирт известен в программировании тем, что определил чёткий базовый минимум именно человеко-ориентированных абстракций, удобных для программирования. Он вывел основу, базис. А Мур просто хитро запрограммировал телескоп на компе с минимумом ОЗУ ;)
Я сейчас разрабатываю и поддерживаю большую систему на Компонентном Паскале, сотни модулей. Язык бережно помогает мне в отладке, находит и позволяет на ранней стадии выявить всевозможные косяки. Но самое важное: я оперирую и мыслю абсолютно прикладными категориями. Высокий уровень в полной красе. Чтобы получить такое на Форте, надо вообще убрать весь Форт и построить на его базе другой язык. А Форт оставить только крутиться в качестве ядра, да и то.
Так что здесь меня поймут те, кто разрабатывал крупные проекты на Java и C#, но Оберон более близко к железу и без виртуальных машин. Это чистый натив. Даже если сборщик мусора не нужен - отключи да и всё.
Нет, субъективно, принимая некоторые свойства языков (типобезопасность "искаропки", конкретная реализация модульности) за абсолютную сверхценность всегда для всех. А это не так, кому-то важнее эффективная небезопасная работа ближе к железу, причём, как уже отмечал, если навернуть любых абстракций при желании нет принципиальных препятствий, то вот спуститься ниже практически невозможно. Этот недостаток - неустраним.Категорически не согласен. От проверок, которые предлагает язык, откажется только мамкин кулхацкер, гордый своими подвигами в отладке. Даже при разработке для слабенького контроллера проверки экономят много времени и сил, а потом легко отрубаются. Надёжный Оберон не отрицает небезопасной работы с железом и даже предусматривает для этого специальный псевдомодуль SYSTEM, в котором сосредоточены все опасные средства. Зато если ими не пользоваться - количество узких мест сильно сокращается. Не полностью, но очень значительно. Мы легко спускаемся из Оберона на низкий уровень. Это из C# или Java не так просто сделать, ибо не натив и всё равно тянет виртуальную машину. А на Обероне легко.
Впрочем, замечание про ретро может говорить о том, что ты прозреваешь))Я знаю, что на ретро проверки неэффективны, а чтобы выдавить из машинки всё - надо работать только на асме, притом с трюками. Но чтобы выжать из железа всё - тут даже Форт будет не так уж и хорош.
Ууу, это надо после школы или ВУЗа лет так 20 не иметь дела с актуальным программированием вообще, но при этом и Паскаль не забыть. Много ли таких "начинающих"?Паскаль это основа, там есть всё, чтобы программировать. И, в то же время, он достаточно прост.
Smalovsky
09.08.2022, 21:44
Спор оберонщика и фортера:
-Уважаемый, тут грязь а не повидло.
-А кто сказал, что повидло лучше грязи?!
Скорее уж:
О: а давайте я вам трактором ваши 2 сотки на даче вспашу?
Ф: простите, а мои любимые елки вам не помешают?
О: конечно помешают. Давайте я вам и елки прежде выкорчую.
Ф: спасибо. Уж я лучше лопатой сам все сделаю. А если лопаты недостаточно, у меня и тяпка(мотыга) имеется, и грабли.
Lethargeek
09.08.2022, 23:41
Есть там жёсткие ограничения. Наличие стека. Чтобы уйти от стека - тебе надо нагородить огород из кучи своих слов. Наличие повсеместной адресной арифметики. Корявая работа с памятью только через растущий выделяемый буфер. И так во всём. Всё гнилое, всё надо переделывать.
Сам себе противоречишь, хотя сам же пишешь "чтобы уйти" (это значит - МОЖНО уйти, а раз можно, то и не ограничение никакое). Не обманывай себя, в Обероне под капотом тоже стек и адресная арифметика, но ты этого НЕ можешь видеть и явно пользоваться. Раз не можешь - это ОГРАНИЧЕНИЕ. Всё гнилое, надо именно ВСЁ именно ПЕРЕДЕЛЫВАТЬ (а не дополнять и расширять, как с фортом)
Хаха, "навернуть". Можно навернуть, а можно и не навернуть. Скорее всего, не навернут. Поленятся. Зачем наворачивать что-то безопасное поверх языка, в котором половина оперируемых словами значений на стеке это адреса?
Не поэтому. Незачем, когда перестал допускать ошибки, или их цена становится не высокой, а скорость разработки и эффективность кода и так растут.
Вот уж блин теоретик. Я тоже в чём-то люблю подход Форта. Но я даже не готов сформулировать, в чём именно. Мне нравится одна биологическая аналогия: дождевой червь очень гибкий, но не может стоять вертикально. У человека и близко нет той же гибкости, но он за счёт грамотного устроения костей может многое такое, на что неспособен червь. Это и есть разумная жёсткость, которая просто необходима в программировании. Оберон даёт грамотные абстракции: модуль, ссылка, процедура со строгой проверкой типов параметров. На Форте всё это надо изобретать. Абстракции Форта не человеческие, а машинные.
пфф, суперчервяк Джим смотрит на твою аналогию как-то недовольно, свирепо, и в то же время грустно и с недоумением))
https://3dnews.ru/assets/external/illustrations/2012/07/19/632569/earthworm_jim.jpg
Так что Вирт известен в программировании тем, что определил чёткий базовый минимум именно человеко-ориентированных абстракций, удобных для программирования. Он вывел основу, базис. А Мур просто хитро запрограммировал телескоп на компе с минимумом ОЗУ
Всё с ног на голову, а на деле ровно наоборот. Как раз Мур показал пример именно минимальной базы, притом максимально годной для дальнейшего расширения. А главная заслуга Вирта - его "закон")))
Категорически не согласен. От проверок, которые предлагает язык, откажется только мамкин кулхацкер, гордый своими подвигами в отладке.
фу, какая примитивная демагогия
Даже при разработке для слабенького контроллера проверки экономят много времени и сил, а потом легко отрубаются
мне-то про контроллеры не втирай, я с ними работаю, есичо
от слишком строгого контроля типов в ST лично мне больше неудобства чем пользы
куча лишних телодвижений и писанины с явными конверсиями
Я знаю, что на ретро проверки неэффективны,
так только мамкиным кулхацкерам не нужны или есть объективные причины от них отказываться?
ты бы уж определился, шизофренично же
а чтобы выдавить из машинки всё - надо работать только на асме, притом с трюками. Но чтобы выжать из железа всё - тут даже Форт будет не так уж и хорош.
смотря для чего - для оптимизации размера при умеренном проседании производительности форт будет лучше
Надёжный Оберон не отрицает небезопасной работы с железом и даже предусматривает для этого специальный псевдомодуль SYSTEM, в котором сосредоточены все опасные средства. Зато если ими не пользоваться - количество узких мест сильно сокращается. Не полностью, но очень значительно. Мы легко спускаемся из Оберона на низкий уровень. Это из C# или Java не так просто сделать, ибо не натив и всё равно тянет виртуальную машину. А на Обероне легко.
даа? ну например, как "легко" на Обероне реализовать такой низкоуровневый трюк как самомодифицируемый код?
и не перегрузками целых модулей, а с точностью до произвольного отдельного оператора, как на форте или в машинном коде
Паскаль это основа, там есть всё, чтобы программировать. И, в то же время, он достаточно прост.
ниачом, можно даже про машинный код так сказать (в ретро он к тому же проще любых яву))
- - - Добавлено - - -
Спор оберонщика и фортера:
-Уважаемый, тут грязь а не повидло.
-А кто сказал, что повидло лучше грязи?!
скорее, что лучше - кусок мяса или котлетный фарш
у куска есть таки неоспоримое преимущество
из него и котлеты тоже можно приготовить, и шашлыки
а фарш невозможно провернуть назад
Oleg N. Cher
10.08.2022, 00:52
Не обманывай себя, в Обероне под капотом тоже стек и адресная арифметика, но ты этого НЕ можешь видеть и явно пользоваться.А вот как раз именно могу, но это не нужно! И "расширять" через *опу тоже ничего не нужно. То, что под капотом, и должно остаться под капотом. Пусть туда лезут механики, если им надо. Если ты сам механик, то лезь туда. А водитель будет управлять рулём и педалями. Это ограничение, что нельзя крутить колёса руками? Да, ограничение. И без бензина не поедешь. Но задумка автомобиля не в том, чтобы крутить колёса руками.
когда перестал допускать ошибки, или их цена становится не высокой, а скорость разработки и эффективность кода и так растут.Люди никогда не перестанут допускать ошибки. Они бывают невнимательными, плохо сконцентрированными, невыспанными. А работать всё равно нужно. Код писать. Форт это минное поле. А Оберон круизный лайнер. Но сапёру может больше нравиться минное поле, ему за это деньги плотют.
Всё с ног на голову, а на деле ровно наоборот. Как раз Мур показал пример именно минимальной базы, притом максимально годной для дальнейшего расширения. А главная заслуга Вирта - его "закон")))Главная заслуга Мура в том, что он решил поставленную перед ним задачу за разумное время разумными силами. Пусть кулхацкерски и головотяпно, но всё же решил. А на наследии Вирта сейчас работают все языки программирования. Глупо этого не признавать.
от слишком строгого контроля типов в ST лично мне больше неудобства чем пользыЗначит ты мамкин кулхацкер, и на работу я тебя не возьму)))
так только мамкиным кулхацкерам не нужны или есть объективные причины от них отказываться?Нет никаких объективных причин отказываться от ремней безопасности, боксёрской капы, налокотников, мотоциклетного шлема. Пусть ты даже крутой боксёр и круто водишь. Мало ли чего. Все эти средства ограничения? Да. И с капой ты не красавец. Но без зубов ты ещё более не красавец ;)
смотря для чего - для оптимизации размера при умеренном проседании производительности форт будет лучшеВот уже теоретизировали об этом кучу постов, сломали кучу копий. А кто реально воспользовался этим, так сказать, преимуществом, чтобы впихнуть в ретро-игру побольше контента? То-то же. Я поэтому и сказал, что ты теоретик.
даа? ну например, как "легко" на Обероне реализовать такой низкоуровневый трюк как самомодифицируемый код?А зачем это бывает нужно? Это тебе надо виртуозно стрелять себе в ногу, а другие без этого спокойно обойдутся. Но, в любом случае, встроенные кодовые процедуры и асм-вставки никто не отменял. Если главное преимущество Форта в возможности делать самомодифицируемый код, то это мало где нужно и явно того не стоит, чтобы мириться со всеми остальными косяками Форта. Лучше взять что-то более годное.
Короче говоря, ты рассуждаешь как абсолютно низкоуровневый кодер, который никогда не работал с большими системами. Не порицаю, но мне, в общем-то, пофиг, что ты думаешь про Оберон. Но ты явно не умеешь его готовить и никогда не научишься. Что до Форта, то лично мне вообще не улыбается брать гнилую заготовку и при помощи говна и палок (местных абстракций) делать поверх другой, пригодный для любых вменяемых целей язык.
"Пусть расцветают все цветы". И Оберон хорош, и Форт - если мыслить позитивно, а если негативно, то все наоборот. Просто использовать оба сразу не слишком удобно, хотя есть же и полиглоты, которые и на инглише шпрехают и на китайском.
А про капу, как бывший боксер могу вспомнить, что когда тебе сбили "дыхалку" и у тебя риск пропустить от противника нокаутирующий удар, то капу выплевываешь за канаты. Перчатками в бинтах под ними сложно выбить зубы, а вот травмировать печень, солнечное сплетение, челюсть, разбить нос - хотя последнее пустяки - вполне реально. Про перчатки. Незря перед боем рефери их проверяет у каждого боксера на вес.
inozemcew
10.08.2022, 12:21
так, по имени в стек их может положить сама процедура
Как она сможет это сделать, если, например, параметры для одной процедуры - это результаты выполнения другой процедуры? Проверка типов - это не только про переменные, это еще и проверка того, что процедура ’А’ возвращает тип допустимый в процедуре ’В’.
передача по ссылке, которая и в традиционных языках не гарантирует безопасности
Шта?? Вот классический паскаль передача по ссылке:
procedure A(var x:integer);
поробуйте передать в x строку, сильно удивитесь.
ну и не делай с ними ничего, если так страдаешь за безопасность))
Ага, чтобы сделать проверку типов в выражении "x y +", надо все переписать с нуля.
Ну в общем понятно, все как обычно - в теории можно сделать все, на практике - придется все выкинуть и написать заново.
просто потому что в основном форт нужен людям именно за то, что ты посчитал кривизной
Нет, тут я как раз согласен, что попытки приделать форту фичи нормальных языков - это как попытки надеть на корову седло.
Я другого не пойму - чем форт лучше простого ассемблера (оставим "кроссплатформенность" в стороне, для 8ми бит она явно нежизнеспособна)? Ладно 70е годы, когда из юзерских интерфейсов был только модем в 300 бод, тогда форт-системы имели какой-то смысл. Но уже любой, даже нативный спековский ассемблер из 90х с полноценным редактором и отладчиком предоставляет куда более комфортную среду для разработки. Какие-то фичи, которые делают написание программ на форте удобнее чем на ассемблере? Опять нет. Тот же sjasmplus даст прикурить по удобству работы с данными.
Вот реально, чем форт лучше просто ассемблера?
Я уже приводил в пример игру Silmarils, написанную на Форте- Metal Mutant.
а из чего сделан такой вывод ?
Из дизассемблера. Я тогда на форуме не помню каком ссылку кидал, а мне сказали, что шитый код и FORTH.
амижники (убравшие из игр от Silmarils проверку паролей) говорят что там C+
Lethargeek
10.08.2022, 16:08
А вот как раз именно могу,
можешь явно стеком пользоваться системным?
но это не нужно! И "расширять" через *опу тоже ничего не нужно. То, что под капотом, и должно остаться под капотом. Пусть туда лезут механики, если им надо. Если ты сам механик, то лезь туда. А водитель будет управлять рулём и педалями. Это ограничение, что нельзя крутить колёса руками? Да, ограничение. И без бензина не поедешь. Но задумка автомобиля не в том, чтобы крутить колёса руками.
Зато задумка мотовелосипеда, в том, что можно экономить силы, а можно и ногами крутить педали. А вот на мотоцикле без бензина ты и правда далеко не уедешь.
Люди никогда не перестанут допускать ошибки. Они бывают невнимательными, плохо сконцентрированными, невыспанными. А работать всё равно нужно. Код писать. Форт это минное поле. А Оберон круизный лайнер. Но сапёру может больше нравиться минное поле, ему за это деньги плотют.
Я ж не зря упомянул про цену ошибки (что ты предпочёл предусмотрительно не заметить, но я напомню). Если сапёр пересекает минное поле вместе с разминированием быстрее, чем лайнер огибает полконтинента, то и нафиг такой лайнер, проще пешком. Я когда-то сделал несколько утилит для спектрума на пц, так вот на громоздком паскале потратил бы времени больше только на писанину, чем на форте в целом со всей отладкой и написанием собственной версии форта перед этим))) А потом свой самый первый эмулятор встроил в неё же, причём форт использовался как консольный скриптовый язык, и это мне вообще не стоило времени.
Главная заслуга Мура в том, что он решил поставленную перед ним задачу за разумное время разумными силами.
...и заодно показал пример действительно МИНИМАЛЬНОЙ базы :v2_dizzy_roll:
А на наследии Вирта сейчас работают все языки программирования. Глупо этого не признавать.
и тут создатели Алгола, Лиспа, Си, Фортрана такие: ну да, ну да, пошли мы нахер :v2_rolley
Значит ты мамкин кулхацкер, и на работу я тебя не возьму)))
сам тогда мамкин формошлёп :v2_tong2:
Нет никаких объективных причин отказываться от ремней безопасности, боксёрской капы, налокотников, мотоциклетного шлема. Пусть ты даже крутой боксёр и круто водишь.
я тебя, возможно, удивлю, но мотоциклетный шлем на боксёрском ринге несколько неуместен)
Вот уже теоретизировали об этом кучу постов, сломали кучу копий. А кто реально воспользовался этим, так сказать, преимуществом, чтобы впихнуть в ретро-игру побольше контента? То-то же. Я поэтому и сказал, что ты теоретик.
то есть теоретизировали вы, а теоретик почему-то я? ахахах! :v2_laugh:
А зачем это бывает нужно?
например, я на спеке делал полуфреймовую полноэкранную прокрутку через генерацию (крайний случай самомодификации) шитого кода
Это тебе надо виртуозно стрелять себе в ногу, а другие без этого спокойно обойдутся.
ну как обойдутся, Sea Dragon (фон которого я взял для примера) на более классическом ассемблерном движке таки местами подтормаживал
Но, в любом случае, встроенные кодовые процедуры и асм-вставки никто не отменял.
ты обещал "легко" - а на форте это легче делать, чем даже в асме
к тому же речь была о самомодификации конструкций самого языка
Если главное преимущество Форта в возможности делать самомодифицируемый код, то это мало где нужно и явно того не стоит, чтобы мириться со всеми остальными косяками Форта. Лучше взять что-то более годное.
это иллюстрация полноценности работы на низком уровне, вполне годная (и выгодная) в том числе для игровых применений
Короче говоря, ты рассуждаешь как абсолютно низкоуровневый кодер, который никогда не работал с большими системами. Не порицаю, но мне, в общем-то, пофиг, что ты думаешь про Оберон. Но ты явно не умеешь его готовить и никогда не научишься. Что до Форта, то лично мне вообще не улыбается брать гнилую заготовку и при помощи говна и палок (местных абстракций) делать поверх другой, пригодный для любых вменяемых целей язык.
не офтопь, я рассуждаю в рамках ретрокомпутинга (хотя можно и за рамками поспорить, но уж слишком много времения заняло бы)
- - - Добавлено - - -
Как она сможет это сделать, если, например, параметры для одной процедуры - это результаты выполнения другой процедуры?
так результаты непременно в стек необязательно помещать же
Проверка типов - это не только про переменные, это еще и проверка того, что процедура ’А’ возвращает тип допустимый в процедуре ’В’.
парсинг на префиксный переключи
Шта?? Вот классический паскаль передача по ссылке:
Код:
procedure A(var x:integer);
поробуйте передать в x строку, сильно удивитесь.
дык A(integer(SomeString)), не?
да, глупо, но как процедуре-то защититься
Ага, чтобы сделать проверку типов в выражении "x y +", надо все переписать с нуля.
ну в таких простых и незачем проверять (впрочем, оно может только выглядеть как простое, а в контексте там объекты и все проверки))
Нет, тут я как раз согласен, что попытки приделать форту фичи нормальных языков - это как попытки надеть на корову седло.
Я другого не пойму - чем форт лучше простого ассемблера (оставим "кроссплатформенность" в стороне, для 8ми бит она явно нежизнеспособна)? Ладно 70е годы, когда из юзерских интерфейсов был только модем в 300 бод, тогда форт-системы имели какой-то смысл. Но уже любой, даже нативный спековский ассемблер из 90х с полноценным редактором и отладчиком предоставляет куда более комфортную среду для разработки. Какие-то фичи, которые делают написание программ на форте удобнее чем на ассемблере? Опять нет. Тот же sjasmplus даст прикурить по удобству работы с данными.
Вот реально, чем форт лучше просто ассемблера?
странный вопрос - очевидно же, тем, чего нет в ассемблерах (даже в кроссах, а не то что в нативных)
диалоговый режим = бесплатная программируемая консоль, мониторинг и поиск по условию любой сложности
мощная условная компиляция (втч по результатам выполнения части кода!) - макросы с дефайнами нервно курят
никакой простой ассемблер с отладчиком и рядом не стоял по мощности и удобству, при всём уважении к sjasmplus
амижники (убравшие из игр от Silmarils проверку паролей) говорят что там C+
вряд ли у меня IDA в этом случае бы обломался на коде 80286-го. Есть у них дизасм?
вряд ли у меня IDA в этом случае бы обломался на коде 80286-го
ты наверно файлы напрямую изучал (там-же всё запаковано)
ты наверно файлы напрямую изучал (там-же всё запаковано)
Наверное распаковщик-то хотя бы IDA в exe-нике мог найти? Хотя с другой стороны и следы ФОРТа должны были бы отыскаться. Надо бы конечно еще раз попробовать современными средствами.
Smalovsky
10.08.2022, 19:37
Краткий итог:
1. Игр на форте написано ничтожно мало вообще. Форт непродуктивный язык.
2. Сами фортеры предпочитают ассемблер форту для спектрума. Это писец и нонсенс.
Что и требовалось доказать. доказать.
inozemcew
10.08.2022, 20:42
парсинг на префиксный переключи
И как это поможет, если между первой и второй процедурами может быть двадцать разных "слов", включая условные переходы и не известно даже, попадет результат первой на вход второй или нет.
дык A(integer(SomeString)), не?
Не. Не работает. Illegal type conversion. Фрипаскаль (https://www.onlinegdb.com/B-9YIoi8c). Турбопаскаль 3.3 для MSX - тожсамое.
диалоговый режим = бесплатная программируемая консоль, мониторинг и поиск по условию любой сложности
По факту - никакущий редактор, совершенно идиотская работа с файлами исходников, а что подразумевается под "мониторинг и поиск" - непонятно, ибо и то и другое отсутствует напрочь, как и дебагер, хотябы на уровне древнего MONS.
мощная условная компиляция (втч по результатам выполнения части кода!) - макросы с дефайнами нервно курят
А можно, плиз, аналог директивы ifused, которая есть даже в нативных спековских асмах, чтобы компилялся только тот код, который реально используется? Что нету? Понятно, в наличии только свистоперделки.. Зато мощные.
чтобы компилялся только тот код, который реально используется?
это противоречит концепции ФОРТа. Он не просто компилятор. Убивать слова в базовом словаре в запущенном состоянии он не должен! И поэтому он ЯВУ, а не ассемблер. Вы бы тогда придумали, чтобы у ассемблера была опция отключать некоторые команды(мнемоники) при кодогенерации!
- - - Добавлено - - -
По факту - никакущий редактор, совершенно идиотская работа с файлами исходников,
у других яву редактора нет, если и поскольку они компиляторы, у бейсиков-интерпретаторов или Реrl тоже так себе редактирование и отладчики. А поменять можно только внося изменения в исходники и перестроении. Если это не Linuх, а Windоws, то столько нахлебаться можно при этом перестроении!
Вон я пару часов убил на днях на перестроение MOS ML Language, при котором пришлось и Perl ставить и какие-то библиотеки недостающие ( это в Linux все летает!), плюнул и скачал готовую старую версию, чтобы exe-ники были в наличии и библиотеки все необходимые хотя бы для запуска.
Oleg N. Cher
10.08.2022, 21:50
можешь явно стеком пользоваться системным?А зачем? Ну и да, если надо, то могу. Я упоминал про асм-вставки и кодовые процедуры. Так вот. Оберон-система позволяет сгенерировать текст модуля "на лету", тут же его скомпилировать, загрузить и выполнить. Это ты просто хитрожопое условие поставил: "не на уровне загрузки модулей". А в Обероне код размещается в модулях.
Зато задумка мотовелосипеда, в том, что можно экономить силы, а можно и ногами крутить педали.Но если тебе ехать надо далеко, то пуп развяжется педали крутить ;)
...и заодно показал пример действительно МИНИМАЛЬНОЙ базы :v2_dizzy_roll:Сравнил. У Мура была всратая утилитка для управления телескопом из консоли. А у Вирта полноценная ОС с графическим интерфейсом, поддержкой мыши-клавы, файловой системой, семафорами, потоками и прочим. И ещё куча приложений а-ля графический редактор. Конечно у Мура вышло минимальнее. Но Форт легче только в реализации, а не в работе на нём. Простота Форта уродственна. Простота должна быть такой, как в Обероне.
и тут создатели Алгола, Лиспа, Си, Фортрана такие: ну да, ну да, пошли мы нахер :v2_rolleyВ те древние времена программисты сравнивали Алгол с Фортраном в пользу Фортрана с аргументацией: "ну вот, Фортран поддерживает девятимерные массивы, а Алгол нет". Это мне напоминает твою аргументацию про стеки. И улыбнуло.
Да, Вирт, как минимум, участвовал в работе комитета по стандартизации Algol-60 и разработал сам Algol-W. В Algol-68 его не позвали. Фортран и Лисп были до Паскаля. Си, впрочем, тоже наверно появился раньше. Но современные языки напичканы идеями из Паскаля, Модулы и Оберона, только скобки сишные ;)
я тебя, возможно, удивлю, но мотоциклетный шлем на боксёрском ринге несколько неуместен)Ну так сними его. Но зато он уместен при поездке на мотоцикле, и его надо просто взять с полки готовый, а не клеить из бумаги и слюней. Надеюсь, аналогия понятна?
например, я на спеке делал полуфреймовую полноэкранную прокрутку через генерацию (крайний случай самомодификации) шитого кодаТакое - ну ооочень редко нужно.
это иллюстрация полноценности работы на низком уровне, вполне годная (и выгодная) в том числе для игровых примененийУверен, что если бы для ретроплатформ можно было клепать мощные игрушки на языках высокого уровня, то на асме этого бы никто не делал. Просто деваться некуда.
inozemcew
10.08.2022, 22:55
это противоречит концепции ФОРТа. Он не просто компилятор. Убивать слова в базовом словаре в запущенном состоянии он не должен!
Причем тут убийства в словаре? Речь идет о компиляции исходного текста. Вот есть библиотека в исходниках. При компиляции из нее компилится только то, что реально используется. Ничего не удаляется, не убивается, просто проверяется, использована процедура - компиляем, нет - пропускаем.
у других яву редактора нет, если и поскольку они компиляторы,
Шта? :eek: А турбопаскали, турбоси и прочие квикбесики их тоже никогда не существовало?
- - - Добавлено - - -
Уверен, что если бы для ретроплатформ можно было клепать мощные игрушки на языках высокого уровня,
Даже для игровых платформ на основе 68000 мотороллы, основной язык для игр - ассемблер. Что уже говорить за 8 бит.
Oleg N. Cher
10.08.2022, 23:07
Даже для игровых платформ на основе 68000 мотороллы, основной язык для игр - ассемблер. Что уже говорить за 8 бит.А я слышал другое. Что для Амиги и Sega MegaDrive основным языком разработки был Си. Но, кстати, Оберон и Модула для Амиги тоже есть.
Господа, а ведь Оберон-система появилась на железе немногим круче, чем современные клоны Спектрума. Насколько я помню, там было 1 или 2 Мб ОЗУ, хотя проц всё же походу был 32-битный.
inozemcew
10.08.2022, 23:55
Что для Амиги и Sega MegaDrive основным языком разработки был Си.
За Амигу не знаю, а вот за Сегу народ, в том числе причастный к разработке, в интернетах говорит и пишет, что таки ассемблер на 1м месте. И аркады, коих основанных на 68к немало - таки практически всплошную ассемблер.
Smalovsky
10.08.2022, 23:59
Oleg N. Cher, рабочие станции с процессором риск 5 на обероне раньше продавались. Сейчас не знаю, продаются ли еще.
Это отдельная тема - оберон-железо. У нативного оберон-железа, помню, должен быть процессор риск 5. Не покупал себе нативную оберон-станцию?
Oleg N. Cher
11.08.2022, 01:40
Специально спроектированного Оберон-процессора, насколько я знаю, не случилось. Вирт просто ухватился за первый доступный 32-битный проц, который появился. Та же фигня с ПЛИС (FPGA) - эта самая станция на Spartan 3.
Не, я не очень интересуюсь железом. Но если ПЛИС, то там всё эмулированное. И, кстати, RISC 5 и Виртовский RISC V это совершенно разные архитектуры и системы команд. Последняя проще, можно даже сказать, более учебная. Но чем именно - не готов ответить, надо спрашивать у специалистов по ПЛИС.
Но, кстати, спецы говорили, что не так сложно портировать прошивку со Spartan 3 на какие-то другие FPGA. Тут надо с железячниками говорить. Хотел я как-то попробовать зашить Оберон в ZX Uno, но не случилось...
А турбопаскали, турбоси и прочие квикбесики
это IDE, написанные на них самих, работающие под операционкой, а не на "голом железе".
- - - Добавлено - - -
Причем тут убийства в словаре? Речь идет о компиляции исходного текста. Вот есть библиотека в исходниках. При компиляции из нее компилится только то, что реально используется.
а как по-другому? Или речь про ядро и "покрытие железа"?
- - - Добавлено - - -
Модула
она и для CP/M есть
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot