March 2026

S M T W T F S
12 34567
891011121314
151617 18192021
22232425262728
293031    

Style Credit

Expand Cut Tags

No cut tags
Thursday, May 5th, 2005 12:10 am
Левенчук пишет, что все серьёзные программисты мечтают программировать на фукнциональных языках. Не знаю, как серьёзные, а у меня лично никогда желания программировать на Лиспе не возникало. Нечеловеческий он какой-то. Пусть ворлоны на нём программируют.
Tags:
Friday, May 6th, 2005 11:34 pm (UTC)
> Если язык Лисп-VM не скрывает сложности этой самой VM, так ли это хорошо?

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

> Или вы скажете, что существует синтаксис, идеальный для описания - чего угодно?

Существует синтаксис, *достаточный* для описания чего угодно. Это - S-выражения. Аналог, ужасно громоздкий и нелепый, но столь же универсальный - XML. Не знаю, на фига XML придумали, когда были S-выражения, ну да ладно...

При этом, такой синтаксис относительно легко воспринимается человеком - он вполне естественный, и, что немаловажно, примитивный, его легко изучить и легко читать.

> А какие, опять же, критерии-то?

- Универсальность - не должно быть конструкций, принципиально невыразимых в этом синтаксисе, и не должно быть конструкций, которые было бы сложно отобразить на такой синтаксис.

- Ортогональность. Не должно быть взаимозаменяемых элементов.

- Минимальность. Лишние элементы только отвлекают.

- Возможности для редактора или IDE проявить немерянный интеллект. Для S-выражений их - полно, для сложных синтаксисов - приходится bovinator-ы всякие рисовать - кошмар...

- Однозначность отображения на внутреннее представление. S-выражения тривиально переводятся в двоичные деревья, и наоборот.


Sunday, May 8th, 2005 08:33 am (UTC)
> Человеком XML воспринимается проще, мне кажется.

человеком с привычкой к HTML'ю, натурально.

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

<+ 1 <* 3 4/>/>

<смайлик direction="left" nosy="false"/>
Sunday, May 8th, 2005 09:20 am (UTC)
а.
я думал, ты с HTML/XML сравниваешь, а они тоже префиксные.

на алгебраическую нотацию таки ни то ни другое не похоже, это да.
Sunday, May 8th, 2005 10:31 am (UTC)
> XML немного больше похож на текст

каким образом, интересно?
там же пунктуационного шума больше в несколько раз.
Sunday, May 8th, 2005 11:11 am (UTC)
то есть ты хочешь сказать, что читать вот подобное:

45

легче нежели:

(+ 4 5)

?

дабы, тыкскыть, apples to apples сравнивать.
Sunday, May 8th, 2005 11:22 am (UTC)
блин, иксемель заискейпить забыл.
<plus><int>4</int><int>5</int></plus>
Sunday, May 8th, 2005 11:42 am (UTC)
я, простите, теряюсь.
мы об что говорим?  об удобстве представления тяжело структурированных данных (к каковым относится program source code), или об удобстве маркапа легко структурированного текста?
это ведь принципиально разные задачи: маркап можно убрать, и смысл приведённого отрывка не потеряется.
критерии оценки маркапа, соответственно, совершенно иные нежели критерии оценки структурирующего синтаксиса.
Sunday, May 8th, 2005 12:23 pm (UTC)
> Дело в том, что S-expression было заявлено как наилучший способ представления _всего_

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

> легко структутированый текст, наоборот - в форме, указаной выше.

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

> снаружи я хочу видеть их так, как мне удобнее думать.

это очень правильно.

> мне неудобно думать в терминах списков и S-выражений. Возможно, это с непривычки - но неудобно.

а зачем думать в терминах списков и S-выражений?  это всего лишь синтаксис, в его терминах думать не требуется (с непривычки приходится, да, но это ненадолго.  причём сие касается любого непатологического синтаксиса, не только S-выражений).

(no subject)

[identity profile] cmm.livejournal.com - 2005-05-10 05:48 pm (UTC) - Expand

(no subject)

[identity profile] cmm.livejournal.com - 2005-05-10 06:29 pm (UTC) - Expand
Monday, May 9th, 2005 06:46 pm (UTC)
Не самое удобное представление для программы. Слишком много разнообразных ненужных синтаксических элементов - они скрывают за собой смысл.

> Возможно, это с непривычки - но неудобно.

Вот именно, что с непривычки. Объективно оно - удобнее некуда.

(no subject)

[identity profile] mauhuur.livejournal.com - 2005-05-10 10:09 am (UTC) - Expand

(no subject)

[identity profile] mauhuur.livejournal.com - 2005-05-10 11:33 am (UTC) - Expand
Monday, May 9th, 2005 06:44 pm (UTC)
Эти две записи не тождественны.

Вариант с S-выражениями (http://ssax.sf.net) будет такой:

(chapter (@ (id "faq.html))
(title First Part of the FAQ)
(titleabbrev First)
(para This is the text)
(para This is second text)
)
Sunday, May 8th, 2005 11:19 am (UTC)
да, и кстати: нафига source code'у нужна верификация?
если стоит задача посылать код по шумным каналам (нафига, собственно?  но предположим, что стоит), то надо для этой цели пользоваться подходящим для этой цели представлением.  на одном конце кодировать, на другом раскодировать.
в качестве шумоустойчивого представления иерархических данных XML тоже, кстати, как бы так мягко выразиться, неоптимален.
Sunday, May 8th, 2005 11:32 am (UTC)
выдуманная по сути проблема с охренительной сложности "решением".
XML at its finest.
Monday, May 9th, 2005 06:41 pm (UTC)
> Человеком XML воспринимается проще, мне кажется.

Это не так. В XML синтаксические элементы скрывают смысл, читать глазами
даже с подсветкой просто невозможно.

> Очевидно, дело привычки, хотя выражения вида (+ 1 (* 3 4)) мне не кажутся естественными.

А мне - кажутся. Не надо напрягаться и думать над приоритетами операций.
Кроме того, никто не запрещает писать и инфиксно, всё равно это останутся S-выражения:

http://www.cliki.net/infix
Tuesday, May 10th, 2005 11:26 am (UTC)
> Нет, не скрывают, а проясняют, и читать гораздо проще, чем лисповский labirynth of parentheses, all alike.


Чушь и полный бред. Учитесь дальше, пока что просветления не наблюдается - сплошной деццкий сад, штаны на лямках.

Я уже привёл пример с XML vs. SXML. Чего ещё надо?

> Однако если вы собираетесь с кем-нибудь общаться - например, писать статью for general audience - то я бы рекомендовал вам всё-таки пользоваться общепринятым языком.

А нет никакого общепринятого языка. Это - миф. С дурацкими наивными детсадовскими мифами - к разработчикам OpenMath, они быстро зачмырят. Не место в науке наивным детям.

> Очевидно, всё-таки запрещает кто-то, потому что все примеры на лиспе, которые я видел, написаны префиксно.

Ссылка на макру infix была проигнорирована. Симптоматично.

Какую же пустую голову надо иметь, чтоб умудриться не догонять - префиксная запись абсолютно никакого отношения к S-выражениям не имеет. Их можно использовать совместно, можно и не использовать - никому от этого кисло не станет.
Tuesday, May 10th, 2005 05:11 pm (UTC)
> Интересно, как вы узнали, что она была - проигнорирована?

опа!
арбатовский синтаксис!