ПМК будущего: подход к реализации

Несколько раз здесь велось обсуждение ПМК мечты. На вики я даже подытожил своё видение, какой функциональностью он должен обладать. В этой записи попробую очертить внутреннее устройство, что под капотом.

Отчасти предлагаемая архитектура близка к видению Ватника, хотя использует другую терминологию. Лежащая в основе ПМК форт-машина не является «низким уровнем», а основана на высокоуровневых концепциях и доступна пониманию владельца, сравнимого по любознательности с советским школьником. Кто в СССР осваивал «Электронику Б3-34», тот с такой же лёгкостью сможет программировать ПМК мечты прямо на встроенном Форте.

В каком-то смысле проект близок к идее Арбинады переписать Каллисто на Си, для переносимости входного языка. Другое дело, что в ПМК будущего переносимостью будет заведовать не Си, а сам Форт — или Каллисто, как его диалект, адаптированный под отечественные ПМК и выросший из входного языка «Электроники».

Настоящий низкий уровень будет открыт для гиков-«еггологов». При желании и умениях владелец ПМК мечты сможет писать примитивы или даже целые приложения на форт-ассемблере. Конечно, при каждой смене камня (такое впервые произошло в 2007) всю подобную низкоуровневую работу придётся переделывать заново, под новый ассемблер.

Чтобы ПМК при каждой смене технологий не переделывать полностью, операционка и основные приложения будут написаны на Форте. Среди этих приложений могут быть другие языки программирования. Кому они покажутся удобней Форта и форт-ассемблера, могут разрабатывать собственные приложения на них или даже поставить приглянувшийся язык в автозапуск. Здесь можно привести аналогию с Гну-Линуксом. Хотя само ядро Линукса, основные библиотеки и большинство пакетов системы Гну написаны на GCC, никто не мешает установить под этой системой FreePascal и свои программы писать на Паскале.

Развитие Каллисто от отдельной среды на МК-161 до полноценной операционной системы потребует не только более совершенного «железа», но и продуманного совершенствования самого языка. Разработка системы типов и их иерархии. Введение модульности для инкапсуляции слов и типов внутри приложений и библиотек. Разработка API как для математических вычислений, с постепенным переходом к СКМ, так и для управления оборудованием, системой, интерфейса с пользователем.

Такой подход был заложен в Форте с самого начала. Чак Мур сформировал свой язык, пронеся его через множество систем. Неприхотливость Форта позволит по максимуму использовать скромное железо карманного ПМК. В США инициативу у Форта перехватила AT&T, которую можно сравнить по ресурсам и влиятельности с Ростелекомом — написала Юникс на своём Си, внедряла его через университеты. У нас такого щедрого финансирования пока нет, зато достался лучший язык. :-) И много из уже существующего софта под Форт, включая трансляторы других языков, получится перенести на наш ПМК с минимальными затратами.

Комментарии

Я по-прежнему склоняюсь к мысли, что если швейцарцы выкатят "чистый" DM42, который будет дешевле обычного, то это близкое к идеалу железо для ПМК мечты. Потом брать SDK и портировать Каллисто.

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Пожалуй, соглашусь. Но весьма печально. Сама по себе задача не так требовательна к ресурсам и здесь можно было бы разработать ПМК на отечественных микросхемах, а не пользоваться готовым зарубежным изделием.

Ну Арви, как вы могли! Сколько можно одно и то же по кругу! Форт - это язык низкого уровня от слова "НЕ язык высокого уровня", с возможностью наращивания. И то в синтаксическом плане относительно скромными (синтаксически дополнения всё равно неудобные). "Основано на высокоуровневых концепциях" - это пустой слоган из рекламной брошюры, ещё смешнее он выглядел бы на коробке с ассемблером. По остальному позже.
Низкоуровневый - это не ругательство, а оценка объёма вмонтированных в язык абстракций (из коробки). Из коробки в Форте даже структур нет, управление памятью и анализ потоков данных, области действия имён - всё вручную.

Учитель будет вам объяснять азбучные истины, пока вы их не освоите. Низкий уровень это тот, что связан с аппаратурой. Языки 1 и 2 поколения. Форт это высокий уровень, один из первых языков 4 поколения.

Заканчивайте свой юношеский бунт и примите общепринятую терминологию.

Библиотеки, о которых вы говорите, есть в поставках любого коммерческого Форта. Посмотрите, например, SwiftForth, если не забанены в Гугле. Но уровень языка не зависит от имеющихся библиотек. Это независимые понятия, как рост и одежда.

Можете сколько угодно внушать себе, что Форт это "высокий уровень". Доберусь до дома, распишу снова всё по полочкам.

Ваш личный новояз интересен лишь вашим близким. Термины же существуют, чтобы общаться.

Вы можете годами описывать здесь своё уникальное мировоззрение с цитатками местного пропагандистского говнофильма, о котором 90% программистов планеты Земля даже не подозревают. Но деление на ЯНУ (машинный код, ассемблер) и ЯВУ (Фортран, Алгол, Форт, Лисп, Си и последующие языки) ни ваши комменты на форуме, ни даже расстрел одного-двух несогласных с вами учителей не пошатнёт. :-)

И кто тут "учитель" ? Арви, вы что ли ? И чему вы можете научить? Вот скажите, если даже Питон это язык 3-го поколения, а он на пару порядков удобней для человека, чем Форт, в каком месте Форт является языком 4-го поколения ? Может вы сами давно не читали книги с терминологией, которыми козыряете ? :-) Потом почему при такой опережающей крутости Форт как языка, аж на поколение выше всех самых популярных ЯВУ нашего времени, Форт имеет применение только там, где мало места для развёртывания удобных языков якобы 3-го поколения. Ну и в целом, Лисп причисляют к 3-му поколению, а он намного удобнее и мощнее во всех смыслах чем Форт (в Форте вряд ли есть CLOS и MOP), если речь идёт о применениях при наличии достаточных ресурсов.
Так вот правда заключается в том, что Форт ЯВУ, но не такого же высокого уровня как альтернативы, и его применение оправдано только там, где не влазит что то более удобное, иначе языком статистики или машинного обучения был бы Форт, а не R и Питон ! Нет ни одной ниши на ПК где Форт мог бы составить конкуренцию другим более удобным языкам ! Но стековые машины и сами реализации Форт удобны как бэкенд для языков более высокого уровня, особенно там где нет готовых реализаций и ресурсы ограничены. Писать на самом Форт - это всё равно что хреначить на макроассемблере, не смотря на его могучие средства метапрограммирования. Даже эти средства не спасают положение, ведь при больших изменениях уводящих от идиом базового Форта куда удобнее просто использовать другой язык (речь о ПК) !

Да. Моя профессия — учитель. Так не просто записано в трудовой книжке, таково моё призвание.

ЯВУ это технический термин. Кому-то удобней Питон, в каких-то ситуациях удобней ассемблер — это как раз субъективный фактор. Но ЯВУ это объективная категория. Не зависящая от того, что кому и когда удобно.

ЯВУ появились вместе с Фортаном в 1957 году и позволили программистам писать программы, не зависящие от конкретных ЭВМ и системы команд их процессоров. Языки низкого уровня, к которым относятся машинный код и ассемблер, сильно зависят от архитектуры конкретной ЭВМ. Обычно для программирования на низком уровне надо не просто знать систему команд центрального процессора, но также тонкости аппаратного подключения устройств ввода-вывода, их архитектуру и т.п.

Само названия языка FORTH произошло от слова FOURTH — намерения Чака Мура создать первый язык 4 поколения.

Большинство ЯВУ, начиная с Фортрана, относятся к 3 поколению. 4 поколение языков обычно содержит что-то принципиально новое и важное, в довесок к стандартному набору 3 поколения: циклы, условный оператор, оператор присваивания, функции и т.п.

В Форте это возможность расширять сам язык. Если программист овладел этим навыком (см. книгу Лео Броуди “Thinking Forth”), то строя языковые уровни за уровнем, теоретически он напишет решение задачи за логарифм времени и других затраченных ресурсов, чем программист, формулирующий решение на неизменном языке 3 поколения.

Питон создавался позже и вобрал в себя множество инноваций. Он вполне мог бы считаться языком 4 поколения, но у его авторов меньше понтов и желания делать своё детище предметом бесплодных споров. :-)

При всех этих делах, Форт мне нравится и я ЛИЧНО считаю его равным по мощности Лиспу или даже превосходящим (за счёт низкоуровневости). Неудобство использования очевидно не является препятствием для квалифицированных программистов при достижении определённых целей ! В Лиспе в общем случае у вас нет возможности контролировать низкоуровневые дела, как в Форте, из коробки вы вынуждены пользоваться автоматическим управлением памятью и т.п. Поэтому я и говорю, что относительная низкоуровневость Форта - это скорее комплимент ему, иначе он был бы вытеснен из маленьких систем в никуда как в своё время Common Lisp. На ПМК, который должен сберегать ресурсы и строить систему не небольшом пятачке, я скорее призываю использовать Форт, не думайте, что я фортоненавистник, просто я уже не юноша, чтобы как вы, видеть всё горящим сердцем только с одной стороны. Когда то я был ярым адвокатом Лиспа, тщился доказать, что он мол лучше остальных альтернатив, но его недостатки всё таки становятся довольно очевидны при попытке использовать вне определённых ниш. Теперь я понял, что "серебряной пули нет", и даже метаязыки не панацея. В ограниченном виде панацеей являются машины вроде .NET или JAVA, так как они позволяют органично и довольно эффективно связать разные языки в единой среде. Форт также может служить такой машиной, поверх которой можно накрутить более высокоуровневые языки или какой то более дружелюбный к программирующим юзерам диалект Форта аля самодельный RPL.

Вопрос. Про какой такой "пропагандистский говнофильм" вы говорите ??? Скорее всего я тоже не подозреваю о его существовании. Ни разу не видел фильм с пропагандой языков программирования, очень хотелось бы посмотреть!

«Сила в правде» это прямая цитата из боевика «Брат-2», где быдловатый русский с лицом олигофрена и куриными мозгами (типичный герой путинского времени: Моторола, Захарченко, Гиркин и другие нехитрые убийцы) берёт в руки огнестрельное оружие и убивает, грабит, насилует «тупых американцев», иногда прикрываясь псевдофилософскими рассуждениями. В данном случае:

«Я вот думаю, что сила в правде. У кого правда - тот и сильней.»

Если посмотреть беспристрастно, такая вовремя провозглашённая нехитрая «философия» оправдывает наблюдающийся при Путине разгул «силовиков». Дескать, если насильник берёт что захочет (тот же Крым или ЮКОС, примеров много) — это от того, что за мерзавцем якобы «правда».

лет через 15-20 какими свойствами может быть наделён?
при заявленной тенденции движения в сторону ИИ.
и что останется от текущих мейнстрим языков.

Очевидно, что с применением средств ИИ, что уже было в прошлом, языки должны двигаться в сторону
декларативности и интерактивности. Одним из относительно удачных примеров является Prolog.
Программист в диалоге должен наполнить систему некими определениями-описаниями, руководствуясь которыми система произведёт вычисления (при необходимости сгенерирует нужный код). Вообще диалог с такой "системой программирования", если она и вправду ИИ, может иметь некий неформальный характер (естественный язык, нечёткое восприятие определений и т.п.), но её результат будет детерминированным (аналог программиста-человека). В Прологе был не очень эффективный для общего применения механизм вывода и выполнения, но безусловно за эти коды человечество потеряло человеко-столетия на написания кода, который мог бы тупо выведен из простейших определений, если бы в фазе компиляции работало что то вроде интерпретатора Пролога. Тому же Форту (и другим метаязыкам) повезло, они могут производить вычисления во время компиляции и даже компиляцию могут производить в диалоге, это одна из самых сильных сторон, которую нигде никогда не упоминают окромя горожения всяких макр.

20 лет это уже следующий технологический рывок, при сохранении нашего скромного темпа. То, что придёт на смену МК-161 и будет отличаться также, как МК-161 от МК-61.

В первую очередь, конечно, это тачскрин с вводом математических формул, как в русских учебниках по математике. И таким же выводом результатов символьных вычислений.

ИИ немного не в тему. Конечно, корпорации будут предоставлять карманные терминалы для доступа к корпоративным ИИ, как Siri. Но ПМК это усилитель интеллекта его владельца, а не ИИ.

Обычные ЯВУ останутся, разумеется. На чём-то же должны разрабатываться как терминалы, так и ИИ. Возможно, роль Оберона вырастет, т.к. трансляторы станут менее доходным коммерческим продуктом. Другое дело, что количество вещающих «программирование больше не нужно» сравняется с нынешним количеством невежественных людей, вещающих «ассемблер не нужен».

Итого фортовская прослойка под вводом рукописных формул сохранится на тех же правах, как сейчас в МК-161 существуют команды МК-61. Ввод формул и СКМ будут обрабатываться словами на Форте и, возможно, рукописные формулы будут транслироваться в его код.