LINUX.ORG.RU

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

 ,


1

2

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

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

>>> Скачать

Осмелюсь показаться ньюфагом, но было бы неплохо написать что это вообще такое и чем оно лучше питона. Я открыл википедию, почитал и, честно говоря, меня оно не впечатлило. В чём фишка?

true_admin ★★★★★ ()

Исходный код интерпретатора Focal-81 был модифицирован для соответствия современным реалиям.

А сам протухал-81 до современных реалий обновили?

devl547 ★★★★★ ()

Фокал и Фекал, это не одно и то же?

anonymous ()

Он просто интерпретирует? В бинари не собирает? А сам интерпретатор на каких ОС пашет (на Linux ясное дело да)?

Не знаю зачем спрашиваю, просто видимо у кого-то ностальгия и хочется позапускать свой старый тёплый ламповый код и пописать на старом язычке...

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от true_admin

В чём фишка?

Осмелюсь тоже показаться ньюфагом и предположить - тёплое ламповое раньше, когда член ещё стоял ностальгия.

mkam ()

На фоне фокала даже пытон - эталонное нужно.

anonymous ()

Позиции Java в энтерпрайзе могут пошатнуться?

Ghostwolf ★★★ ()

судя по ссылке - самопиар

вот если бы его внезапно ISO подхватило и выпустил стандарт 2015 года, тогда да было бы возвращение

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

Позиции Java в энтерпрайзе могут пошатнуться?

Это зависит от выбранной позиции. Колено-локтевая очень устойчивая.

rezedent12 ☆☆☆ ()

На БК0010-01 у фокала были номера строк вещественные и блоки кода выделялись целой частью номера строки. Без этой фишки он мало от бейсика отличается.

Rupricht ()

Мой первый ЯП на десктопе :)

KRoN73 ★★★★★ ()

Из Википедии:

С конца 1980-х годов Фокал не развивается и практически не используется, вышеупомянутые порты Focal-81 были проделаны энтузиастами в целях развлечения.

Чем бы дитя не тешилось...

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

а без этой *фишки* он вообще работать будет? хотя бы блоки и процедуры?

buratino ★★★★ ()

Зачем это нужно, когда есть няшный лисп?

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

номера строк вещественные и блоки кода

Здесь это тоже есть. В обоих интерпретаторах. Стандартный пример из комплекта сабжевого:

> cat sieve.foc
01.10 c Prime numbers using sieve algorithm
01.20 c hacked by Akira KIDA, <SDI00379@niftyserve.or.jp>

10.10 s N = 1000
10.20 s count = 0
10.30 f k = 1, N; s sieve(k) = 1
10.40 f p = 2, N; do 20
10.50 t !, "Number of primes in 2..", %0.0, N, " is ", count, !
10.60 q

20.10 i sieve(p) 20.40, 20.40, 20.20
20.20 t %5.0, p; s count = count + 1
20.30 f k = p, N, p; s sieve(k) = 0
20.40 r

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

не развивается и практически не используется

Ну и что?! Пусть он и не используется в широких масштабах, но рабочие интерпретаторы есть, и ничто не мешает ими пользоваться.

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

Я ж и говорю — чем бы дитя не тешилось... Как упражнение в написании интерпретаторов — годится. :)

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

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

Он просто интерпретирует? В бинари не собирает? А сам интерпретатор на каких ОС пашет (на Linux ясное дело да)?

Фокал всегда был исключительно интерпретируемым языком. В книге по ссылке выше это упомянуто. Сабжевый интерпретатор изначально разрабатывался для MS-DOS'а и Unix'ов. Как там вне Linux'а я не знаю, но в современном Linux'е он уже не собирался. Этот момент я исправил. В остальном пусть тестируют заинтересованные. Авторы оригинальной версии отмечали совместимость с SunOS 4.1.3, Solaris 2.3 и HPUX 8.05. В те времена gcc свежее чем версия 2.6.3, по ходу, и не было.

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

Делать-то с этим что?

Писать программы на Фокале и интерпретировать. Если у кого есть написанные ранее, то можно и их запускать.

saahriktu ★★★★★ ()

А выложить патченные исходники на нормальный VCS-хостинг религия не позволяет? К языку претензий нет - нехай будет

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

Окей, а как насчёт тарболла на хостинге, который не заставляет некоторые браузеры отображать его как plain-text?

Сервер отдаёт:

Content-Type: text/plain; charset=utf8
Content-Length: 11754

Чо-то судя по расширению tar.lzma я сильно сомневаюсь что там plain text

Pinkbyte ★★★★★ ()
Последнее исправление: Pinkbyte (всего исправлений: 2)
Ответ на: комментарий от saahriktu

Ну вот только что если есть что-то ранее написанное.... Кстати, на каком носителе это что-то сейчас сохранилось?

Писать на фокале не стоит из-за малой выразительности языка. Он был нужен тогда из-за нетребовательности к ресурсам и малого размера интерпретатора. Зачем себя мучить?

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

Во-первых, скачивать щелчком левой кнопки мыши - моветон. Либо уж через правую кнопку мыши и «Save as...», либо через нормальные браузеры или wget. Я в lynx'е скачиваю по нажатию 'd', и у меня всё работает без проблем. Во-вторых, FTP хостингов сегодня маловато будет. Кроме net2ftp.ru я больше не находил.

saahriktu ★★★★★ ()

что-то смутно припоминаю

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

Фокал - инструмент для профессионалов. Он прост, но в отличии от Бейсика, отнюдь не примитивен и рассчитан на хорошо подготовленного пользователя.

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

Во-первых, скачивать щелчком левой кнопки мыши - моветон.

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

вот так скачаешь через save as или wget-ом, а там на самом деле промежуточная страничка

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

вот так скачаешь через save as или wget-ом, а там на самом деле промежуточная страничка

Бывает, да, но это же не проблема.

saahriktu ★★★★★ ()

попытался собрать на OpenBSD 5.8/amd64

ввёл gmake 2> error.log

получил вот это:

ворнинги, ворнинги...
...
focal1.c: In function 'getsym':
focal1.c:170: warning: type defaults to 'int' in declaration of 'c'
focal3.c: In function 'getlno':
focal3.c:32: warning: type defaults to 'int' in declaration of 'c'
focal3.c:34: warning: type defaults to 'int' in declaration of 'gn'
focal3.c:34: warning: type defaults to 'int' in declaration of 'ln'
focal3.c:67: warning: suggest parentheses around comparison in operand of |
focal3.c: In function 'getnum':
focal3.c:81: warning: type defaults to 'int' in declaration of 'c'
focal3.c:83: warning: type defaults to 'int' in declaration of 'n'
focal3.c: In function 'getnb':
focal3.c:155: warning: type defaults to 'int' in declaration of 'c'
focal0.o: In function `inject':
/root/focal-81_patched_2015/focal0.c:643: warning: warning: strcpy() is almost always misused, please use strlcpy()
focal3.o: In function `drand48':
/root/focal-81_patched_2015/focal3.c:169: warning: warning: rand() may return deterministic values, is that what you want?
focal0.o: In function `type':
/root/focal-81_patched_2015/focal0.c:692: warning: warning: sprintf() is often misused, please use snprintf()
focal0.o: In function `ask':
focal0.c:(.text+0xa2c): undefined reference to `gets'
focal0.o: In function `main':
focal0.c:(.text+0x149d): undefined reference to `gets'
collect2: ld returned 1 exit status
gmake: *** [focal] Error 1

и чё делать?

buratino ★★★★ ()

Никогда не имел дела, но рад за причастных. Не мэйнстримом единым жив человек.

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

Во-первых, скачивать щелчком левой кнопки мыши - моветон.

Без обид - Не рассказывай мне что делать и я не скажу тебе куда идти.

Я понимаю, что ты проделал определенную работу и уважаю тебя за это. Но вот прямо сейчас это выглядит для всех как «нате, жрите». То есть архив, заханыренный где-то непонятно где.

У проекта(а по факту у тебя уже считай что форк) ни сайта(здесь он может и избыточен), ни даже домашней страницы вида «краткое описание что это за хрень/список ссылок скачать». На том же гитхабе такую налабать можно достаточно быстро.

Понятное дело, что минимального стандарта качества в opensource как бы нет - все работают за идею. Но если автору проекта не интересно как его проект выглядит в глазах других людей - то это не характеризует его с лучшей стороны.

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

Я вообще не видел ни одного языка программирования «для любителя». Они все «для профессионалов», кроме тех которые «для обучения профессионалов» (LOGO, напиример).

Если фокал был придуман для PDP-8, то я понимаю, почему он такой. Ресурсов на той PDP-8 было мало, а кроме «профессионалов» к ней и подойти-то никто не мог.

Руководство по OS8 начиналось с описания процедуры загрузки машины с пульта. Коды первичных загрузчиков для трех типов дисков, флоповода и устройства чтения перфолент были приведены там же. :) Для «любителя» сложновато будет, тумблерами-то щелкать и считать в уме в восьмеричке. :)

Разве что сделать программируемый калькулятор с фокалом... И то сомнительно, будет ли на него спрос. Профессионал нонче тоже «балованый» пошел.

Фокал применим ну разве что для расчета лабораторных работ. Ну еще что-то посчитать. И то уже готовая подпрограмма найдется. Не NAG, так «Numerical Recipes»... :)

gns ★★★★ ()
G            B
Мы нe знaли, чтo oн дeлaл c нaми
E            C
Вceм oтpeзaл нoги и зaбpaл нaш мoзг
Oн caдиpoвaл плюшeвыx кyкoл
Изypoдoвaл Бapби и пoджёг лицo
Гдe вoлшeбныe тaблeтки?
Гдe чyдecный элeкcиp?
Ктo иcпpaвит? Ктo излeчит?
Cтpaшный дoктop и вaмпиp!

G           B
Припев:
Cкoлькo мoжнo ждaть? Cкoлькo мoжнo вepить,
E              C
Чтo oн к нaм вepнётcя - Дoктop Фpaнкинштeйн?
Cтpaшный и yжacный - Дoктop Фpaнкинштeйн!
Чтo ты c нaми cдeлaл, Дoктop Фpaнкинштeйн?

Дeти дyмaли, чтo этo шyтки,
Нo пoвepил ктo-тo, чтo вoлшeбник oн
Нoчью в гopoд зaбpeли злoдeи
И yбили вcex звepeй и людeй

Пpипeв

Мы нe знaли, чтo-жe бyдeт c нaми
Oн в кoмпьютep aдcкий зacкaниpoвaл мoзг
Oн caдиpoвaл плюшeвыx кyкoл
Изypoдoвaл Бapби и зaлил в poт вocк

Пpипeв

Cтpaшный и yжacный - Дoктop Фpaнкинштeйн!
Чтo ты c нaми cдeлaл, Дoктop Фpaнкинштeйн?
int13h ★★★★★ ()

Число придуманных человечеством языков программирования превышает 3000 и продолжает расти. Что же, теперь о каждом таком языке на ЛОРе будет новость?

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

Да, gets() я пока не выпиливал, но и в glibc он пока что хоть и deprecated, но вполне ещё присутствует. В версии 2.20 уж точно. Что там дальше - буду смотреть.

Что там с gets() в OpenBSD я не знаю. Может, какие-то библиотеки подключать надо, если они вообще есть. А может и нету там gets().

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

Бейсик тоже не примитивен. А вижуал бейсик так и вообще джаву за пояс заткнет по изощренности.

asaw ★★★★★ ()

Да он даже во времена ЬК-0010 считался шлаком и при первой же возможности заменялся на BASIC.

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

Те, кто так делал, просто не умели его готовить.

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

Фокал применим ну разве что для расчета лабораторных работ. Ну еще что-то посчитать. И то уже готовая подпрограмма найдется. Не NAG, так «Numerical Recipes»... :)

Ещё есть всякие «матлабы» с «математиками», в которых тоже (внезапно) можно программировать :)

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