LINUX.ORG.RU

Возвращение Focal-81

 ,


1

2

Интерпретатор языка программирования Focal-81, который был написан энтузиастами и заброшен ещё в 1995-м году, возвращается.

Исходный код интерпретатора Focal-81 был модифицирован для соответствия современным реалиям. Без этого интерпретатор даже отказывался собираться. Однако, теперь пропатченная версия собирается и работает.

>>> Скачать

★★★★★

Проверено: anonymous_incognito ()
Последнее исправление: anonymous_incognito (всего исправлений: 2)
Ответ на: комментарий от saahriktu
# gmake
gcc -O -g -Wall -DDIR_SUPPORT -DDIRENT   -c -o focal0.o focal0.c
gcc -O -g -Wall -DDIR_SUPPORT -DDIRENT   -c -o focal1.o focal1.c
gcc -O -g -Wall -DDIR_SUPPORT -DDIRENT   -c -o focal2.o focal2.c
gcc -O -g -Wall -DDIR_SUPPORT -DDIRENT   -c -o focal3.o focal3.c
gcc -O -g -Wall -DDIR_SUPPORT -DDIRENT -o focal focal0.o focal1.o focal2.o focal3.o -lm
focal0.o: In function `inject':
/root/focal/focal0.c:663: warning: warning: strcpy() is almost always misused, please use strlcpy()
focal3.o: In function `drand48':
/root/focal/focal3.c:169: warning: warning: rand() may return deterministic values, is that what you want?
focal0.o: In function `type':
/root/focal/focal0.c:712: warning: warning: sprintf() is often misused, please use snprintf()

пофиг на предупреждение - главное, что оно не только в NetBSD, но и в OpenBSD будет :)

buratino ★★★★★
()
Ответ на: комментарий от KRoN73

Наличием краткого синтаксиса напоминает MUMPS (не путать с mumps):

«MUMPS can be made more obfuscated by using the contracted operator syntax, as shown in this terse example derived from the example above:»

GREPTHIS()
      N S,N,T,I,K,Q S I="K",S="11",K="l1",Q="R",T="K"
      I I=T D T
      Q:$Q Q Q
T  I I,S&K S S=S+K Q
Bass ★★★★★
()
Ответ на: комментарий от Bass

Наличием краткого синтаксиса напоминает MUMPS

FOCAL и MUMPS — оба наследники JOSS. И хотя там, вроде, сокращённого синтаксиса не было, весьма вероятно, что при разработке FOCAL поглядывали на MUMPS :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Фокал был раньше. MUMPS появился на PDP-11, а фокал — это такой бейсик для PDP-8 :)

Не исключено, что все это развивалось параллельно и предлагалось соразмерно ресурсам компьютера.

gns ★★★★★
()
Ответ на: комментарий от gns

Фокал был раньше.

Wiki: «Появился в: 1968»

MUMPS: «First appeared: 1966»

«The original MUMPS system was, like Unix a few years later, built on a spare DEC PDP-7.»

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Ну значит так... Вы правы, а я вовсе даже и нет. Извините.

Удивительное дело, как эти мастера внятного ассемблера из DECa придумаи такой малопонятный язык?

gns ★★★★★
()
Ответ на: комментарий от Indexator

Ну вот фокал явно не для людей был создан :)

gns ★★★★★
()
Ответ на: комментарий от anonymous

Allgemeiner Berichts-Aufbereitungs-Prozessor?

Ты это «Берихтс-Ауфберайтунгс» произнести можешь? Я вот — нет. Подозреваю, что язык такой же непроизносимый, как название :)

gns ★★★★★
()
Ответ на: комментарий от buratino

А вот теперь я форкнул сабжевый интерпретатор. Теперь через некоторое время появится Focal-SU16 с рядом дополнительных возможностей, отсутствующих в оригинале. В т.ч. у программ на Фокале появится возможность выполнения внешних команд (уже реализовано).

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

Во-первых, скачивать щелчком левой кнопки мыши - моветон. Либо уж через правую кнопку мыши и «Save as...»

Моветон - это не уметь настраивать веб-серверы. А то что ты пишешь - фантазии воспалённого мозга.

AnDoR ★★★★★
()
Ответ на: комментарий от saahriktu

А я придерживаюсь той предпосылки, что не машина должна подстраиваться под человека, а программист должен ориентироваться на имеющиеся в его распоряжении машинные средства

Вернись тогда в прошлый век, на LOR-е машина времени есть, подкинут.

Скажи честно - это хобби, и получи респектище.

anonymous
()

в качестве хобби - забавно. даже где-то книжка со школы валялась)

zudwa
()
Ответ на: комментарий от Indexator

Язык программирования не более чем инструмент решения задач для людей. Один из.

ranka-lee
()

из фич этого языка запомнил только то, что номера строк можно было FLOAT-ами задавать (скорее, фиксед поинтами).

кто-то ещё заметил что-нибудь ценное?

anonymous
()
Ответ на: комментарий от ranka-lee

Ну ХЗ, тут некоторые говорят что не нужны люди :-) Кому вот верить?

anonymous
()
Ответ на: комментарий от Bass

да-да-да, мы все тоже читали «The Case for MUMPS» на The Daily WTF.

язык странный, но нужно понимать семантику, почему так было сделано. а не только синтаксис:

1) выражения без приоритетов операций (нужно вручную расставлять скобки) — более компактный байткод. а программист может и потрудиться скобки расставить.

2) виртуальная машина с общей памятью глобалов, разными локальными памятями процессов, общими переменными процесса проинициализированными по ходу выполнения, (множественные разные точки входа в процесс), стек для памяти переменных процесса = компактное потребление памяти.

3) кооперативная многозадачность, многозадачность через сопрограммы — быстрое переключение процессов.

4) процедуры через метки процессов, множественные точки входа, контекст с возвращением и без возвращения значения = прообраз модульного программирования.

5) вместо декларативного плана запросов в SQL запросы процедурами вручную, индексы процедурами вручную = предсказуемое поведение при нагрузках.

6) прозрачное подключение си библиотек, телнет текстовая консоль = простое расширение базы данных внешними процедурами на своих языках.

7) в общем и целом благодаря принятым решениям 1-6: стандартное, предсказуемое поведение при ограниченных ресурсах (и более скромное потребление ресурсов) чем SQL.

см. например книгу Е. Каратаева про МУМПС СУБД и его реализацию MiniM.

anonymous
()
Ответ на: комментарий от gns

Иногда мне кажется, что мне пора уже этот кобол выучить :)

или MUMPS. тоже говнокода написано очень много, на века хватит (та же «опенсорснутая» ViSTA например, про автоматизацию госпиталей — сотни мегабайт кода на M, в таком вот стиле :)))

как говорится в форуме по обсуждению той статьи с DailyWTF : «да-да-да, конечно, язык устарел и всё такое, продолжайте его ругать. я вот пишу на MUMPS с 70-го года, работы дофига — вот статейку вашу ругательную прочитал как молодёжь ниасиливает. and keep laughing all the way to the bank»

=))

anonymous
()
Ответ на: комментарий от saahriktu

Сам я планирую потом пописать на нём разных игр.

привет, БК 0010 :)

anonymous
()

Абсолютно забыл его и ни капельки не жалею. Для обучения сейчас лучше выбрать Python.

Evgueni ★★★★★
()
Ответ на: комментарий от anonymous

Сегодняшние — наверное.

Надеюсь, все-таки, что на пенсии я буду писать на С++ и хаскелле. Если доживу до пенсии. :) Ну и на елиспе, конечно. Найду время наконец допилить .emacs :)

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 1)
Ответ на: комментарий от anonymous

Ну вон я же приводил пример тут как-то. В конференцию бывших сотрудников DECа на linkedin этой весной пришел рекрутер с вакансией на канадскую атомную станцию со скиллсетом PDP-11/RSX-11/MACRO-11.

Кандидата нашли за неделю примерно. А срача-то в коментах было....

gns ★★★★★
()
Ответ на: комментарий от saahriktu

А я придерживаюсь той предпосылки, что не машина должна подстраиваться под человека, а программист должен ориентироваться на имеющиеся в его распоряжении машинные средства, плюс любое развитие мысли является реакцией на обстановку

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

парадигма программирования это, возможно, тоже результат программирования какой-то метамашины Турчина (которая осуществляет метасистемный переход) на языках программирования парадигм :))

и так далее, метасистема управляет системой, метамашина машинами, а метапрограммист (ты же вроде верующий) — программистами :)))

и далее эволюция в кибернетическом (скорее, синергетическом, и системноинженерном, как «система систем») смысле — метасистемный переход по Турчину.

системы связаны друг с другом через материю-информацию-энергию, или воплощение(процессов в технической системе)-научный закон и метод, парадигму(в научной — моделей процессов, метамоделей) и информацию (процессов и моделей, по транизитивному замыканию обслуживающих их). или материя-мера-закон где мера это матрица вроде матрицы трассировки, прослеживаемости.

такая вот возникает философия (=система, картина, модель, «система мира») =)))

Поэтому польза от языков не только в том, что они чему-то учат, но и в том, чтобы учиться думать вообще.

причём учить нужно те языки, которые учат думать другим способом, другими моделями и парадигмами

anonymous
()
Ответ на: комментарий от gns

Язык хороший, идея хороша, приложить некуда.

учитывая что XML сейчас практически везде, и статью Турчина про R-выражения для обработки XML — мест куча, вот инструментов и примеров мало

Вокруг языка есть куча фанатиков, но нет культурной среды.

интересной метасредой могло бы быть Literate Programming/ Reproducible Research через Emacs Org-mode babel, хотя бы. плюс всякие изоморфные трансформации из XML в .org (используя DRAWERS в .org как списки свойств/атрибуты/узлы).

есть например, Skribilo — транслятор на схеме между S-выражениями, .org, своим форматом.

а потом на всём этом написать гипертекст изначальный — Xanadu Теда Нельсона, с двусторонними типизированными ссылками и контролем ссылочной целостности.

и вместо браузера HTML писать браузер в духе Applitudes от Теда Нельсона, или в духе компонентов-документов из Project Oberon (и браузера Voyager оттуда).

гипертекстовая CALS метаCASE-среда =) для исполняемых метамоделей, моделей и компонент

вот тогда наконец наступит метамодельное счастье и всеобщее благоденствие =))

anonymous
()
Ответ на: комментарий от saahriktu

Если человеку и так комфортно, то он и не заинтересован в том, чтобы дальше развивать свою мысль.

но если ему некомфортно, то у него возникает стрессовая ситуация: шок, испуг, отказ системы и срыв стека. например, концепция «шока будущего» Элвина Тоффлера говорит про пределы адаптации организма, насильно помещенного в быстроменяющюяся среду, к которой он не успевает адаптироваться. также оттуда наблюдение про ориентированные и адаптивные реакции, и их роль для уровня шока/стресса.

данила медведев уточняет, что шок возникает из-за несоответстия реальности и картины мира индивидума — они находятся на разных уровнях.

элайзер юдковский из трансгуманистов, любитель идеи сингулярности дополнительно вводит идею «уровней шока будущего» — когда он объяснял идеи научной фантастики, то обнаружил закономерность: сложно объяснить концепцию уровня шока n УШ_n человеку ниже уровня шока n, при этом УШ_(n+1) можно обяснить человеку, находящемуся на уровне УШ_(n), но нельзя (возникает шок, испуг, ужос-ужос) при обяснении уровня УШ_(n+2) человеку, находящемуся на уровне УШ_(n).

то есть, похоже что есть какая-то топологическая связность между уровнями понимания, ступеньками понимания из герменевтики, герменевтического круга: нельзя скакать через 2-3 ступеньки.

если успел адаптироваться и ему комфортно, то заинтереснован двигаться дальше по этой лестнице уровней понимания.

то есть, надо «программировать интересы» развиваться дальше.

anonymous
()
Ответ на: комментарий от anonymous

Вот бы я еще понял, что Вы тут написали... :)

интересной метасредой могло бы быть Literate Programming/ Reproducible Research через Emacs Org-mode babel, хотя бы. плюс всякие изоморфные трансформации из XML в .org (используя DRAWERS в .org как списки свойств/атрибуты/узлы).

Перевожу: поелику трансформации чего либо в/из org-моды емакса вне емакса представляют сомнительный интерес, давайте перепишем емакс на рефале....

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

Вам на эту тему с Андреем Столяровым, АКА Крокодилом (http://www.croco.net) поговорить стоит, он вечно ищет для своих студентов какие-то академически-интересные, но оторванные от жизни задачки. И рефал, насколько я знаю, в сфере его интересов.

gns ★★★★★
()
Ответ на: комментарий от anonymous

Те кто говорит «Протух», о себе подумай. Что про тебя люди будут говорить? Был хороший человек, да протух, сгнил..

Врешь! Мой прах развеют по ветру над рекой! :)~

anonymous
()
Ответ на: комментарий от saahriktu

Я планирую изучать и более страшные языки, включая Cobol, Algol 60, Forth и Smalltalk.

Смолток худо-бедно жив, энтузиасты попытались сделать смолток нового поколения, назвав его newspeak (новояз, ага), но кризис их энтузиазм поумерил. Сейчас ребята потихоньку делают https://github.com/0x7CFE/llst - диалект смолтока (little smalltalk) поверх llvm.

Форт? Ну, сильно развивающимся не назовёшь, но и на мёртвый язык не похож. Бестиповый, однако. Как ассемблер, только более-менее кроссплатформенный и расширемый, можно сказать неограниченно расширяемый. Есть ещё Factor - динамический стековый язык, похожий на Форт и немного на Лисп. Фортоподобные языки со статической типизацией есть, но ничего достаточно развитого, одним из первых был StrongForth, хотя сейчас даже авторский сайт его недоступен.

Algol-60 в чистом виде мало пригоден для написания программ - расширенным до полноценного языка диалектом A60 фактически является виртовский Паскаль, ну и все его более поздние потомки. Ну и первый объектноориентированный язык - Simula-67, совсем уж расширенный Алгол-60, его компилятор cim должен быть всё ещё функционален (давно не пробовал).

А Алгол-68 вас никогда не интересовал?

Ну, Кобол - песня особая, о нём умолчу, поскольку не в курсе.

А вообще под подобные проекты нужен особый сайт - a lá живый музей языков программирования, я так думаю.

be_nt_all ★★
()
Ответ на: комментарий от saahriktu

язык и правда похож на MUMPS. транслятор должно быть не сложно написать. интересно, зачем.

ну разве что чтобы любой код под фокал стал работать с базой данных автоматически. ещё можно всё состояние интерпретатора на каждой строке, трассы выполнения автоматически в СУБД сохранять.

есть какой-нибудь интересный код на фокале?

anonymous
()
Ответ на: комментарий от gns

да, Столяров интересный человек. опять же его InteLib интересует. только вот не нравится мне С++, как язык реализации. был у него студент, который на D через CTFE делал, да не доделал. вот это интересно, или на Rust с плагинами компилятору.

или на обероне, — написать компендиум в духе Literate Programming (например, такой вот этой книжки).

специально на обероне чтобы фанатиков С++ которые говорят про «сектантов секты оберон» троллить :))

вообще вирт имхо глубоко неправ что Project Oberon писал не в духе такой вот книжки :)))

тогда надо было бы всего лишь только простые конверторы написать, и в org-mode babel воткнуть.

я вот немного играюсь с прикручиванием MUMPS к org-mode babel.

anonymous
()

ААаа, кто дал ссылку на рефал? Мои глаза, мои кои8?

мНБНЯРХ
яЮИРШ петюк-ДХЮЯОНПШ
петюк

anonymous
()
Ответ на: комментарий от anonymous

Столярову надо было дисер написать. И он знал С++ :) Ну вот так интелиб и получился, вместе с дисером. :) Я вот тоже не очень понимаю, к чему бы этот интелиб приложить. Столяров, по-моему, — тоже. :)

тогда надо было бы всего лишь только простые конверторы написать, и в org-mode babel воткнуть.

А чем не нравится использовать doxygen и его маркап? Вот уж «literate programming для ширнармасс». Нахзрена вся эта экзотика?

я вот немного играюсь с прикручиванием MUMPS к org-mode babel.

Чем только народ не занимается... :)

gns ★★★★★
()
Ответ на: комментарий от Rupricht

да в фокал if был с тремя бранчами. Это как трехцилиндровый двигатель супротив двухцилиндрового.

dilmah ★★★★★
()
Последнее исправление: dilmah (всего исправлений: 1)

К Фокалу БК-0010 прилагается?

Stalin ★★★★★
()
Ответ на: комментарий от saahriktu

Во-вторых, FTP хостингов сегодня маловато будет

нормальный браузер lynx

vcs неудобны

С разморозкой

derlafff ★★★★★
()

Зачем портировать старьё старее первых позвоночных motorola 68000, им же уже никто не пользуется.

HyperCOGENT
()

Помню была игрушка «Президент» на фокале, интересно заработает ли на сабже?

FreeLiver ★★★
()

Будем насиловать труп?

Odalist ★★★★★
()
Ответ на: комментарий от anonymous

Вот почему ты анонимус такой анониус. Мне ж приходится все твои инетресные реплики по крупицам выискивать в темах про оберон, про компилатор Ди, про фокал. И не факт, что я все их нашел.

kremator666
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.