Здравствуйте, VladD2, Вы писали:
Т>>Давно замечено: то, что сложно парсить, как правило трудно и читать (обратное неверно).
VD>Можно узнать имя этого виликого наблюдателя?
Это настолько очевидное наблюдение, что автора установить столь же сложно, как автора теоремы Пифагора. Если интересуют великие, можно назвать сэра Чарльза Энтони Хоара.
VD>Чтобы опровергнуть это виликое высказывание нужно всего лишь задуматься насколько сложно парсить регулярные выражения, и насколько их сложно читать.
Задумался. Но так и не нашел как вывести опровержение.
VD>Далее можно вспомнить один из самых простых в парсинге языков — С. И сравнить легкость чтения искходников на нем с одним самыми сложными для парсинга C++ и C#.
1. С-далеко не "один из самых простых в парсинге" языков.
2. Поскольку почти любая С-программа также и C++-программа, легкость чтения C++ никак не может быть меньше, чем C.
Здравствуйте, Трурль, Вы писали:
Т>Здравствуйте, bkat, Вы писали:
B>>Здравствуйте, VladD2, Вы писали:
B>>Да чего уж там. B>>Легче все читать тексты на естественных языках. Т>Как насчет "Критики чистого разума", желательно в оригинале?
Здравствуйте, Трурль, Вы писали:
VD>>Можно узнать имя этого виликого наблюдателя? Т>Это настолько очевидное наблюдение, что автора установить столь же сложно, как автора теоремы Пифагора.
Шутку понял. Смешно!
Т> Если интересуют великие, можно назвать сэра Чарльза Энтони Хоара.
VD>>Чтобы опровергнуть это виликое высказывание нужно всего лишь задуматься насколько сложно парсить регулярные выражения, и насколько их сложно читать. Т>Задумался. Но так и не нашел как вывести опровержение.
Дык видимо тяжело опровергнуть действительно очевидные вещи.
На самом деле я тоже не раз задумывался над этим феноменом. Правда на более глубоком уровне. Мне интересно было что является сложностью ЯП и какие критерии влияют больше всего. Одним из выводов было как раз отсутствие четкой зависимости между сложностью восприятия языка и текстов на нем, от сложности его парсинга. Обяснил я этот феномен для себя так — одним из критерив понятности языка является его выразительность (наглядность описания некоторой задачи). Так вот у простых с точки зрения парсинга языков выразительность обычно сильно страдает. А сложность парсинга мнгих простых в восприятии языков как раз появляется в следствии того, что их авторы пытались встроить в язык те или иные выразительные средства.
Т>1. С-далеко не "один из самых простых в парсинге" языков.
Уж извини, но С-ишные парсеры в качестве курсовых на третьих курсах сдают. Проще толькот классический паскаль.
Т>2. Поскольку почти любая С-программа также и C++-программа, легкость чтения C++ никак не может быть меньше, чем C.
1. Далеко не каждая С-программа удовлетвояет требованиям С++. Но это не так важно.
2. Главно, что С++-программа — это в основном далеко не С-программа. Многие идиомы встроенные в С++ на С приходится эмулировать (т.е. они присуствую только в качестве паттернов которые не все соблюдают). А зачастую С-программы вообще обходятся без этих идиом и пишутся в классическом структурном стиле. Все это подкрепляется более слабой типизацией С. В итоге если код не тривиален, мы зачастую получаем программы очень сложные для понимания и развития. Понятно, что тут многое зависит от класса программиста создавшего код, но при прочих равных более сложные в парсинге языки явно выигрывают. Содбсвтенно иначе бы они и не вытеснили С в нишу где важна в первую оченредь простота реализации (переноса) компилятора и совместимость — а именно в область создания драйверов и ядер ОС.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>...Обяснил я этот феномен для себя так — одним из критерив понятности языка является его выразительность (наглядность описания некоторой задачи)...
У каждого свои представления о выразительности, тебя не затруднит привести пару тройку образцовых примеров, того как ты представляешь ее себе?
Утверждение "то, что сложно парсить, как правило трудно и читать" эквивалентно утверждению "если сложно парсить, то трудно читать", которое истинно в 99% случаях (эти проценты появились из-за вставочки "как правило").
Утверждение "если сложно парсить, то трудно читать" эквивалентно "если легко читать, то легко парсить".
Первый "контрпример" про регулярные выражения не подходит: их сложно читать, но технически легко (если владеть соответствующей техникой составления грамматик для lex/yacc) парсить. Их даже тоже можно сложно парсить, и на истинность утверждения этот пример не повлияет.
Второй "контрпример" про Си, Плюсы и Шарп. Видимо ты хотел сказать, что существует код на Шарпе или Плюсах, который легко читается, но офигенно трудно парсится. Существование такого гипотетического кода под большим вопросом, да и в добавок тоже не опровергает это утверждение — ты просто попадёшь в этот 1%.
Третий "контрпример" про всякие простые языки, которые легко парсятся, но трудно читаются. Они могут читаться сколько угодно трудно, но истинности утверждения это не нарушает.
PS: Подсказка для ищущих контрпример: нужно искать что-нибудь лёгкое для чтения, но в то же время трудное для парсера.
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, VladD2, Вы писали:
VD>>...Обяснил я этот феномен для себя так — одним из критерив понятности языка является его выразительность (наглядность описания некоторой задачи)...
СГ>У каждого свои представления о выразительности, тебя не затруднит привести пару тройку образцовых примеров, того как ты представляешь ее себе?
Хорошим примером является описание регулярных выражений в EBNF-форме и в виде регэкспов. Ну, или пример чтения текстовых файлов на C# и Обероне.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.