Oberon space

General Category => Общий раздел => Тема начата: valexey от Март 16, 2011, 05:00:25 pm

Название: J теперь GPL
Отправлено: valexey от Март 16, 2011, 05:00:25 pm
Цитата: http://www.linux.org.ru/news/opensource/6018750
Исходный код среды языка J доступен под GPL
Фирма Jsoftware сделала доступным под лицензией GPL v.3 среду J.

J — функциональный векторный язык программирования, наследник и диалект языка APL. Язык программирования J разработан в начале 1990-х Кеннетом Айверсоном и Роджером Хуэем.

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

Вот такая вот радостная новость. То есть теперь J действительно существует. Рыжий бы порадовался :-)
Название: Re:J теперь GPL
Отправлено: valexey от Март 16, 2011, 05:07:37 pm
qsort=: (($:@(<#[) ; (=#[) ,&< $:@(>#[)) ({~ ?@#)) ^: (1<#)
Название: Re:J теперь GPL
Отправлено: valexey от Март 16, 2011, 05:39:22 pm
Словарь языка: http://dr-klm.livejournal.com/81190.html?thread=1098790
Книжка по APL: http://flibusta.net/b/156597
Название: Re:J теперь GPL
Отправлено: kemiisto от Март 16, 2011, 07:07:17 pm
 :o Я считаю, что за такие языки надо расстреливать.
Название: Re:J теперь GPL
Отправлено: vlad от Март 16, 2011, 07:17:51 pm
qsort=: (($:@(<#[) ; (=#[) ,&< $:@(>#[)) ({~ ?@#)) ^: (1<#)

Полный привет. Можно пугать оберонщиков, когда они в очередной раз будут крутить нос от сишного синтаксиса :)
Название: Re:J теперь GPL
Отправлено: valexey от Март 16, 2011, 07:57:55 pm
Не, эти значки это не страшно на самом деле. Фигня это. J очень близок, как я понял, по грамматике и вообще по построению к естественным языкам, когда узнаешь какой значок что значит, чтение этой крякозябры должно оказаться более естественным нежели чтение исходника какого-нибудь оберона.

Страшно (с точки зрения построение парсера) другое:
Цитата: http://ru.wikipedia.org/wiki/J_(язык_программирования)
J позволяет построение нескольких синтаксических деревьев для одной и той же строки кода. То есть описания языка не полны, отсутствует исчерпывающая спецификация. Язык J контекстно-зависимый, и стандартные средства для его описания (например, грамматика в форме Бэкуса-Науэра) не подходят. Понятие абстрактного синтаксического дерева даже теряет своё значение, так как оно корректно лишь в области контекстно-свободных языков.

Кстати, эта реакция вас обоих явственно показывает разницу между восприятием человека и тем, что обычно пытаются считать считая это сложностью языка :-) У человека и машины восприятие сильно разное. То что мешает машине (та самая контекстно зависимая грамматика) может не быть какой-либо проблемой для человека-программиста. И наоборот - с точки зрения парсера нет никакой разницы на что заменить лексемы, можно все их обозначить односимвольными спецсимволами #,&,^,! и так далее (благо в юникоде их полно). Пробелы и отступы убрать вообще. Метрика синтаксиса не поменятся никак вообще, однако человек очень сильно испугается когда увидит текст программы на таком преобразованом, скажем, обероне :-) И явно его за оберон не признает.
Название: Re:J теперь GPL
Отправлено: igor от Март 17, 2011, 03:30:47 am
qsort=: (($:@(<#[) ; (=#[) ,&< $:@(>#[)) ({~ ?@#)) ^: (1<#)
"Птичий" язык.  :D Сродни машинным кодам.
(Машинные коды тоже можно выучить и начать понимать)
Название: Re:J теперь GPL
Отправлено: valexey от Март 17, 2011, 10:56:45 am
qsort=: (($:@(<#[) ; (=#[) ,&< $:@(>#[)) ({~ ?@#)) ^: (1<#)
"Птичий" язык.  :D Сродни машинным кодам.
(Машинные коды тоже можно выучить и начать понимать)
Не, оно совершенно иное нежели машкод.
Машкод (асм) он простой, синтаксис его вырожденый, там нет никаких деревьев вообще, по сути вся грамматика состоит только из терминалов, соответственно вместо дерева имеем простой односвязный список.

У J совершенно иное дело, терминалов там минимум, зато грамматика там контекстно-зависимая. Он находится на другом полюсе нежели асм. J скорее ближе к Алголу-68.
Название: Re:J теперь GPL
Отправлено: igor от Март 17, 2011, 11:09:00 am
У J совершенно иное дело, ...
Он находится на другом полюсе нежели асм.
Да, безусловно. Я хотел лишь подчеркнуть их сходства: очень низкий уровень восприятия для новичка, и высокий порог вхождения. Ещё наверное нужна постоянная практика для того чтобы помнить все эти "крючки" и "закорючки".
Название: Re:J теперь GPL
Отправлено: valexey от Март 17, 2011, 11:14:05 am
Не знаю, как по мне, так у асма как раз низкий порог вхождения (если не брать конечно какой-нибудь современный x86 асм, где команд просто огромадное коликчество). Закорючек нет, проще него что-либо найти довольно сложно. Писать на нем правда что-то большое довольно сложно, но новичок большое и не пишет.
Название: Re:J теперь GPL
Отправлено: igor от Март 17, 2011, 11:42:07 am
у асма как раз низкий порог вхождения
Простите.  :)  Первоначально сравнение было всё же с машинными кодами, а не с асмом.
Название: Re:J теперь GPL
Отправлено: valexey от Март 17, 2011, 11:54:12 am
у асма как раз низкий порог вхождения
Простите.  :)  Первоначально сравнение было всё же с машинными кодами, а не с асмом.
Гм. А чем они принципиально отличаются?
Название: Re:J теперь GPL
Отправлено: igor от Март 17, 2011, 12:52:46 pm
Первоначально сравнение было всё же с машинными кодами, а не с асмом.
А чем они принципиально отличаются?
Машинные коды выглядят как дамп памяти, а исходный код на асме состоит из таких элементов как: мнемокоды, операнды, метки и т.д.
Это что касается вида. И именно он и важен в контексте нашего обсуждения.
Если же говорить о принципиальном отличии, то можно выдвинуть такой тезис. Любая правильная программа на асме гарантированно транслируется в машинные коды. Обратное - не верно. Более подробно можно посмотреть у Криса Касперски.