бегло глянув нашёл такие-же процедуры в форте (автор тот-же) вот и решил
Вид для печати
бегло глянув нашёл такие-же процедуры в форте (автор тот-же) вот и решил
goodboy,
Этот точно быть не может. Даже чисто математически. 32470 bytes free - 32768 bytes (которых нет в 16к спеке) = даже без игры этот форт не помещается в 16к машинку.
Да как обычно - immediate часть запустится при компиляции, пропарсит входной поток на имена параметров со всеми нужными ей проверками, скомпилирует выкладку их в стек и вызов скрытой вычислительной части. Разумеется, все параметры (включая функции) должны быть образованы от базового объекта.
сам же дал ссылку на фрипаскаль, и там работает
нет, это автору функции надо верить и надеяться, что её не будут прикручивать к паскалям с подобными расширениями))
теоретически "работает только в отдельных частных случаях, при соблюдении неких обязательных условий"...
теоретически "почти никогда не решают проблемы системно, а только через кучу постылей и подпорок, которая с грохотом падает от малейшего чиха"...
...а практически как всегда: кто не хочет - ищет причины, кто хочет - делает: однократно пишет себе либы по мере надобности и дальше многократно использует (а не ждёт, пока прохвесор переделает компилятор))
именно под спек например https://github.com/programandala-net/solo-forth
но "под" слабую платформу все нативные средства разработки будут каличные
хотя в связке с более мощными машинами еще ладно
во-1, МОЖЕТ БЫТЬ использовано (поскольку достижимость не проверяется)
во-2, сработает, если ранее на то имя скомпилирована заглушка
в-3, а оно вообще-то надо именно так? в том же soloforth свой, с виду более удобный способ (need tool)
хз что там в остальной куче, но ZASM его как следует не умеет, и приходится искать укуренные решения: http://zxpress.ru/zxnet/code.zx/999
Вообще, мое мнение, у форта была в большей степени искусственая популярность. Была волна популяризации и даже, в какой-то степени, пропаганды. Море книг было по форту. Много фортом увлекались. Однако, это волна сошла. Форт был успешен только во время зачаточного развития ЭВМ. Когда компьютеры стали мощнее и программы сложнее, то от форта отказались. Возможно, от форта отказались даже раньше.
Думаю, форт продвигали люди с особым складом ума и состоянием сознания, которые тащились от польской нотации и непохожести форта на другие языки. Эти люди в то время занимали непоследнее место в компьютерном мире, и они сформировали кратковременную популярность форта. Жалко тех людей, которые повелись на это. Но вообще, большинство людей, познакомившись с фортом, теряют к нему интерес. И это нормальная реация на форт людей со здоровой психикой.
Фортом увлекаются люди с измененным сознанием и иным умом. Не стоит им подражать и вестись на их рекламу форта.
OCaml нормальный язык? Безопасный? Только сколько времени придется убить и все мозги себе затрахать, чтобы написать первую более или менее программу. Да и тяжеловес по генерации кода, а по скорости сравнивают уже не с ассемблером, а с С/C++
Можно и про китайский такое сказать "увлекаются люди с измененным сознанием и иным умом" Покойный и небезысвестный спектрумистам Иван Макарченко Фортом увлекался и форум создал, который до сих пор живет.
А ZxSpectrum не сильно изменился по сравнению с IBM PC, так что аргумент про усложнение архитектур и многократно возросшие мощности работает весьма относительно, особенно при отсутствии мощных, специализированных и простых в использовании IDE и инструментов. А желательно еще и интеллектуальных.
И потом.
Кому-то интересно продвигать продвинутое, а кому-то слабопродвинутое. Если речь идет о "писателях", а не "читателях". Есть еще FALSE Languаge. Тоже может быть применен к z80 и 8080.
По факту получится вложеный компилятор с другого языка. Почему бы тогда просто не взять нормальный компилятор для нормального языка?
Могу дать ссылку на стандарт. Там работать не будет.
Посмотрел. Это просто трындец. Это просто не юзабельно от слова совсем. После этого какой-нибудь древний gens или hisoft паскаль - вершины юзер-френдли.
Во-1 важен результат - не используемый код не присутствует в конечной программе.
Во-2 сколько времени займет компиляние этих всех заглушек, и кто потом будет удалять неиспользуемые.
В-3 это работает быстро и не отжирает память. А не так need из soloforth, который ползает со скоростью убитой улитки. На реальном спеке этим просто невозможно пользоваться.
Ну почему, решение как раз в стиле форта - куча неочевидных условий, чтобы оно работало приблизительно как надо.
ну то есть в итоге безопасный оберон не справляется и приходится небезопасно ассемблерить :v2_dizzy_turn:
хде, на спектрумах? это даже на взрослых машина долго получится и памяти потребует еще сколько?
что противоречит основной причине применения таких приёмчиков - экономии
не "хитрожопое", а ключевое для успешных применений на восьмибитках
и потому он для слабых восьмибиток малопригоден :p
мы на спектруме, тут никто уже далеко не едет
шта? где логика? каким образом меньшие ограничения мешают минимизировать? :v2_wacko:
так даже сам Вирт не понимает, как должно быть - то он выкинет из оберонов что-нибудь, то вернёт :v2_unsur:
и какими же? чтоб до этого в других не встречались? а то явно на паскаль походит только всратый structured text
проблема в том, что "ради безопасности" снять его можно только вместе с головой (угу, асм-вставки)
а поклеить можно много разных заранее из чего хочешь - и потом носить или НЕ носить
аж так редко, что сейчас в каждом утюге по jit-компилятору, а смежную задачу предсказания ветвлений и вовсе решают аппаратно
"мощные" сравнительно с чем? на любой платформе доступ к железу без посредников заведомо эффективнее
а просто играбельные аркады на яву на ретроплатформах вполне возможны при опять же в достаточной поддержке железа
как пример - атари с тормозным бейсиком, чуть ли не самым медленным среди всех распространённых восьмибиток
но из него был удобный доступ к возможностям железа - аппаратным спрайтам, видеорежимам, эффектам
и как следствие динамичных игр на бейсике там хватает
для кого поддерживать и зачем, если при отладочных средствах форта и прямых руках сразу норм :v2_dizzy_roll:
если ты на форте увидел простыню, этот код заведомо хреновый и написанный новичком, испорченным "нормальными" языками
не стоит тратить время в этом копаться, лучше поискать нормальный код нормального фортера
- - - Добавлено - - -
повнимательней, ответ на этот вопрос уже был дан выше - с тем, что все его удобные возможности сохраняются
могу повторить про важность веры и надежды для паскалиста :D
ниачом, что конкретно лучше/хуже чего и чем?
использовать "в тексте" и "при выполнении" - вещи разные
как обычно занимает компиляние стандартного заголовка (немного то есть)
так ведь и добавление в ассемблерный исходник метки удлинит время компиляции
а откуда бы им взяться, ведь сам добавил - значит, сам планируешь их использовать
всё оттуда же:
это как? инклуды и таблица меток память не жрут? :v2_wacko:Цитата:
Сообщение от http://zxpress.ru/zxnet/code.zx/999
индекс догадался включить хотя бы? и ничего, что в данном случае он ползал по исходнику размером около 700 кб? да что из "дружелюбного" на реальном спеке вообще способно столько переварить, и за какое время, если способно? ну, то есть, хотя бы как нарезку из кучи файлов из-за ограниченности тырдоса (это к вопросу о "недружелюбности" блочной файловой системы форта)
вот только почему-то как раз на форте такого не требуется, а на дружелюбных асмах зачем-то нужно)))
а причина в том, что костыльны сами директивы типа ifused, и потому для их поддержки нужны уже эти костыли второго порядка :v2_sick:
Это общепринятая практика - писать часть рантайма ЯВУ на асме, не говоря уже о библиотеках, где требуется высокая эффективность. Особенно это актуально для более слабых платформ. Так что это не проблема Оберона. Я думал, ты это понимаешь. Нет? Печалька.
И на Спектрумах тоже, ничто принципиально не мешает использовать подгрузку, распихивание в страницы 128К+, только на Спеке всё будет не так удобно, чем на мощных платформах.
Вот именно, что это даёт экономию в некоторых случаях. Не зря был придуман приём с виртуальной памятью и dynamic link libraries. Сейчас это общепринятая практика.
Нет, не ключевое, а именно хитрожопое. Если в языке единица работы с кодом это модуль, а ты сформулировал вопрос так, чтобы было не на уровне модуля.
Не поэтому. Оверхед от модулей практически нулевой. Просто так в голове удобнее всё раскладывать по полочкам. А не кучей как в Форте.
Тут каждый едет куда может и хочет.
Я бы сказал, что в Форте не меньше ограничений, а больше. Уж для мозгов программиста - так точно.
Просто Вирт не вырезал описание единого для всех и всего языка на скале на миллионы веков, а не считает зазорным адаптировать язык по необходимости к задачам, на нём решаемым, что есть правильно.
Да массой. Уход от GOTO, структурность, некоторые элементы модульности, рекурсия, ссылочная передача параметров. Я не буду утверждать, что всё придумал именно Вирт, оно тогда витало в воздухе. Но многое - уж точно.
Ты не поверишь, раз уж тебя не получилось убедить, что ездить на мотоцикле в шлеме куда лучше, чем без, ты же у нас крутой кулхацкер, зачем тебе. Но асм-вставки я в Обероне не практикую даже для Спека. Это компромиссная мера - то, о чём просили меня юзеры XDev. Я практикую асмовые реализации отдельных процедур, вынесенные в библиотеки. Там спускаешься на уровень ниже, к коду. Так всегда делают. И везде. Ты ничего другого не придумаешь. И тебе бы мой код не понравился, а мне твой.
Ну может при прямых руках, но при ущемлённом самолюбии и кривых вывернутых мозгах, чур меня, ну нафиг.
Не, лучше не искать нормальный код нормального фортера, эта задача бесполезна. Даже короткие слова приходится в уме мучительно распаковывать. А на Обероне я сразу пишу то, что думаю.
В общем, в сухом остатке:
- Для больших и сложных проектов Оберон подходит, Форт нет.
- Для впихивания системы и транслятора в 2 Кб Форт подходит, Оберон нет.
- Для низкоуровневых применений в ограниченных условиях Форт подходит (с оговорками - если нет ограничений на шитый код, критичность по скорости и т.д.), Оберон подходит хуже - просто увеличится количество машкодовых процедур и/или асм-вставок.
- Для высокоуровневого проектирования Оберон подходит идеально, Форт с огромными оговорками (надо делать новые абстракции).
- Для безопасного программирования Оберон даёт средства изоляции опасного кода от безопасного. Форт опасен весь и полностью, даже на безобидном на первый взгляд коде.
Не подФортило.:smile: