Re[30]: Простота грамматик и простота языка
От: AndreyFedotov Россия  
Дата: 16.08.05 12:23
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Здравствуйте, Курилка, Вы писали:


К>>Теперь очень сложный вопрос — смысл читаемого это грамматика или семантика?


СГ>1) Понять что написано — это одно.

СГ>2) Понять, что написанная программа будет делать, как будет делать и почему — это другое.

СГ>Моя фраза относится к пункту (1).


Расшифруй "понять, что написано"

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

Однако, даже в грамматически простом коде, вроде такого:

a+=c+++d; // А ведь это LL(1) грамматика!


Может быть черезвычайно сложно разобраться.
Re[23]: Простота грамматик и простота языка
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 16.08.05 12:26
Оценка: -3 :)
Здравствуйте, AndreyFedotov, Вы писали:

AF>Кому легче читать LL(1) грамматику — человеку или парсеру?


Обоим.

AF>Тебе же привели кучу примеров когда это не так. И регулярные выражения и иероглафическое письмо.


Ничего подобного. Те примеры, которые до сих пор приводили — очень легко читались/парсились. Более того, мой собственный пример с числом с плавающей точкой: "12345.6787E-26"; или пример с телефонным номером: "+7 (123) 45-67-89", пожалуй и то сложнее для парсинга т.е. для чтения, чем грамматика BrainFuck, грамматика любой последовательности 0 и 1, или грамматика допускающая любую последовательность символов ASCII.
Re[28]: Простота грамматик и простота языка
От: VladD2 Российская Империя www.nemerle.org
Дата: 16.08.05 12:28
Оценка: 17 (3) +2
Здравствуйте, Quintanar, Вы писали:

Q>Я так понял, Сергей хочет сказать, что, чем проще грамматика, тем проще понять, что написано с грамматической точки зрения. Вы же все приводите примеры с трудной семантикой, это совсем другое. Я легко могу сказать правильна ли БрейнФак программа грамматически, а сделать тоже самое для программы на С++ в несколько раз сложнее, а в некоторых случаях просто невозможно для человека.


Товарищь утверждал, что есть зависимость между люкостью чтения кода человеком и простотой граматики. Легкость чтения человеком — это не граматика или семантика. Это простота восприятия смысла написанного. То есть простота распознования и правильной интерпретации информации.

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

Причем зависимости нет не только прямой (проще граматика проще читать), но и обратной (сложнее грамматика, сложнее читать).

Простота чтения — это:
1. Интуитивность понимания.
2. Выразительность.
3. Простота выделения базовых конструкций.

Именро по этому проще читаются программы которые:
1. Хорошо отформатированы.
2. Имеют подсветку синтаксиса.
3. Внятные имена идентиификаторов (и сами идентификаторы).
4. Хорошо структурированы.
5. При написании которых использовались высокоуровневые операторы и функции.
... << RSDN@Home 1.2.0 alpha rev. 591>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[47]: Так лучше?
От: AndreyFedotov Россия  
Дата: 16.08.05 12:31
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, Сергей Губанов, Вы писали:


СГ>>Чего это за такое? Я не понимаю. Приведите пожалуйста как положено для грамматик — в EBNF форме.


Д>Ну только не надо к мелочам придираться. Не поверю, что ты не понимаешь регулярные выражения.

Д>Хотя вообще, любопытно. Хочешь сказать, что если я не поленюсь и перепишу в EBNF, ты сможешь прочитать эти данные и сказать, что они означают?

Если бы только это. Он же утверждает, что это вообще проще сделать, нежели имея читабельное описание того, что же это такое.
Re[25]: Простота грамматик и простота языка
От: mefrill Россия  
Дата: 16.08.05 12:37
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Сергей, вы программы читаете или их грамматику? Или входные данные для программ вообще?

К>Есть грамматика рег. выражений, есть сами выражения.
К>Есть грамматика оберона, есть программы на нём.
К>Всё ещё логики не улавливаете?\

Это все верно, только регуляные выражения грамматикой никак не назовешь. Это язык описания регулярных языков, но не грамматика для описания. Так что пример не катит.
Re[26]: Простота грамматик и простота языка
От: Курилка Россия http://kirya.narod.ru/
Дата: 16.08.05 12:42
Оценка: +1
Здравствуйте, mefrill, Вы писали:

M>Здравствуйте, Курилка, Вы писали:


К>>Сергей, вы программы читаете или их грамматику? Или входные данные для программ вообще?

К>>Есть грамматика рег. выражений, есть сами выражения.
К>>Есть грамматика оберона, есть программы на нём.
К>>Всё ещё логики не улавливаете?\

M>Это все верно, только регуляные выражения грамматикой никак не назовешь. Это язык описания регулярных языков, но не грамматика для описания. Так что пример не катит.


Володя, ты хочешь сказать, что регулярные выражения не описываются никакой грамматикой? То, что рег. выражения есть грамматика я вообще-то не говорил (но утверждали некоторые в т.ч. СГ)
Re[41]: Так лучше?
От: mefrill Россия  
Дата: 16.08.05 12:47
Оценка: 9 (1)
Здравствуйте, VladD2, Вы писали:

VD>Кстати, а что там мудрить?


VD>
VD>A = '1'.
VD>B = '0'.
VD>


VD>Ну, и цпочки вроде этой:

VD>
VD>1000100010001111001010010100110100010100101001010010101011111000011100
VD>

VD>читай — не хочу.

Здесь надо соотносится с леммой о накачке для регулярных языков. Максимальная длина строки, при прохождении которой автомат не повторит ноиера состояния, не может превышать количества всех состояний. Поэтому, если запомнил состояния, то читать легко, дочитал максимум n символов, где n = число осстояний в автомате, и пошли повторы.

Насчет сложности, мне кажется, что можно выделить две сложности: иерархическую или реляционную и, если можно так выразиться, объемную. То, о чем говорит Сергей Губанов, это иерархическая сложность, в зависимости от типа грамматики, возрастает число различных связей между сущностями языка. Даже, я бы сказал, качество этих связей. Например, такая-то строка может быть в языке только, если впереди есть семь таких же строк. С этой точки зрения Губанов прав. Есть еще сложность как количество таких связей в грамматике. Вот это объемная сложность, в автомате выражающаяся через количество состояний.
Re[31]: Простота грамматик и простота языка
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 16.08.05 12:48
Оценка: :)
Здравствуйте, AndreyFedotov, Вы писали:

AF>Расшифруй "понять, что написано"


Построить (мысленно) дерево синтаксического разбора.

AF>Понять, что написан оператор или ключевое слово и какое именно как правило достаточно просто на любом языке.

AF>Однако, даже в грамматически простом коде, вроде такого:
AF>
AF>a+=c+++d; // А ведь это LL(1) грамматика!
AF>

AF>Может быть черезвычайно сложно разобраться.

Сложность может появляться еще и от размера грамматики. Так что сравнивая две грамматики на предмет какая из них проще, нужно в первую очередь убедится, что они более-менее одинакового объема. В данном случе синтаксис пересыщен терминалами "+=", "++", поэтому казалось бы простая LL(1) просто из-за своего размера уже как бы и не совсем простая. Однако смотря с чем сравнивать. Какая-нибудь, более сложная грамматика (например, контекстно зависимая) при таком же объеме синтаксиса конечно была бы еще более сложной. При одинаковых объемах LL(1) или регулярная грамматика проще других грамматик.
Re[37]: Простота грамматик и простота языка
От: AndreyFedotov Россия  
Дата: 16.08.05 12:48
Оценка: +3 :))) :))) :))
Здравствуйте, Sergey J. A., Вы писали:

SJA>Здравствуйте, Сергей Губанов, Вы писали:


СГ>>Здравствуйте, Курилка, Вы писали:


К>>>Специально для тебя повторяю аналогию:

К>>>Есть грамматика Оберона, есть программы на Обероне, есть данные, с которыми работает программа Оберона.
К>>>Есть грамматика рег. выражений, есть сами рег. выражения, есть строки, которые удовлетворяют этим выражениям.
К>>>Надеюсь, что уж достаточно разжевал

СГ>>Ну и? Будет сегодня хоть один пример трудно читаемой строки порожденной регулярной грамматикой?


SJA>Да. Пожалста. Вот вам пример на BF. Граматики под руками нет, но думаю она вполне простая.

SJA>Что программа делает думаю объяснять не надо ? Ведь всё хорошо читается ?

Тебе его не переспорить. Для тебя читаемость — это возможность понять смысл кода
А для Сергея читаемость — это понимание того, что представляет из себя та или иная конструкция кода — примерно как для компилятора.

Потому, когда мы приводим примеры вроде "%!!%!& — для нас это бред, пример того, как не надо делать. Мы говорим, что это ужас, который нельзя прочесть и уж тем более — понять. Ну а для него? Для него (как и для компилятора) — это прекрасная программа.
Ведь если вместо символов подставить некие инструкции, например:
" — открыть базу данных
% — отобразить статус операции
! — запросить очередную таблицу из базы
& — закрыть базу

То с его точки зрения получается прекрасная, компактная программа. Он ещё и оверхед над C++ или C# по данной грамматике может начать подсчитывать...
Re[29]: Простота грамматик и простота языка
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 16.08.05 12:57
Оценка:
Здравствуйте, VladD2, Вы писали:

<...>
VD>Причем зависимости нет не только прямой (проще граматика проще читать), но и обратной (сложнее грамматика, сложнее читать).
+1

VD>Именро по этому проще читаются программы которые:

VD>2. Имеют подсветку синтаксиса.

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

VD>5. При написании которых использовались высокоуровневые операторы и функции.


А вот это не всегда так. Вот наглядный пример: Re: boost::multi_index + boost::tuple
Автор: qube
Дата: 15.08.05
-- конструкции самые, что ни есть, высокоуровневые (имхо), а вот разобраться в:
typedef multi_index_container< my_tuple,
   indexed_by< ordered_non_unique< tuple_element_extractor<my_tuple, 0> >,
               ordered_non_unique< tuple_element_extractor<my_tuple, 1> >,
               ordered_non_unique< tuple_element_extractor<my_tuple, 2> >
             >
> my_container;

с ходу далеко не у всех получится.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[32]: Простота грамматик и простота языка
От: AndreyFedotov Россия  
Дата: 16.08.05 13:03
Оценка: 40 (4) +1 :))
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Здравствуйте, AndreyFedotov, Вы писали:


AF>>Расшифруй "понять, что написано"


СГ>Построить (мысленно) дерево синтаксического разбора.


AF>>Понять, что написан оператор или ключевое слово и какое именно как правило достаточно просто на любом языке.

AF>>Однако, даже в грамматически простом коде, вроде такого:
AF>>
AF>>a+=c+++d; // А ведь это LL(1) грамматика!
AF>>

AF>>Может быть черезвычайно сложно разобраться.

СГ>Сложность может появляться еще и от размера грамматики. Так что сравнивая две грамматики на предмет какая из них проще, нужно в первую очередь убедится, что они более-менее одинакового объема. В данном случе синтаксис пересыщен терминалами "+=", "++", поэтому казалось бы простая LL(1) просто из-за своего размера уже как бы и не совсем простая. Однако смотря с чем сравнивать. Какая-нибудь, более сложная грамматика (например, контекстно зависимая) при таком же объеме синтаксиса конечно была бы еще более сложной. При одинаковых объемах LL(1) или регулярная грамматика проще других грамматик.


Согласен. В этом ты прав.
Однако замечу, что всего два оператора + и ++ подряд и уже не читаемо. Однако поставь там же скобки или хотя бы пробел — и ситуация кардинально изменится. Читать это станет элементарно. Притом отмечу, что грамматика сама по себе не изменилась — изменилось лишь оформление кода. Следовательно в данном случае не грамматика, а именно оформление является ключевым фактором.
Вывод прост — грамматика является всего лишь одним из огромного множества факторов, которые влияют на воспрятие кода человеком и, как правило, не самым важным.

А в целом — маленький совет. Постарайся смотреть на картину целиком, а не вбуривться в детали. Вот как ты на красивую девушку смотришь. Ты же не вычисляешь, какая у неё форма носа или соотношение периметра ключицы к диаметру коленной чашечки?
Если смотреть на мир в целом и научиться замечать его красоту, то постепенно приходит чувство прекрасного, вкус и начинаешь понимать, почему марочно вино стоит гораздо дороже, чем буратино, а от длинного и многословного повествования писателя получаешь гораздо больше удовольствия, чем от чтения хорошо структурированных и компактных счетов на оплату квартиры.
Re[29]: Простота грамматик и простота языка
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 16.08.05 13:07
Оценка: -2 :))
Здравствуйте, VladD2, Вы писали:

VD>Товарищь утверждал, что есть зависимость между люкостью чтения кода человеком и простотой граматики. Легкость чтения человеком — это не граматика или семантика. Это простота восприятия смысла написанного. То есть простота распознования и правильной интерпретации информации.


Лёгкость чтения это то на сколько легко можно мысленно построить дерево разбора выражения. Понятно, что деревья разбора легче строить для LL(1) грамматики или, вообще, для регулярной. Опять же не надо забывать про размер грамматик. Конечно всегда можется статься так, что какая-нибудь простая но слишком объемная LL(1) грамматика может проиграть какой-нибудь контекстно зависимой, но чрезвычайно компактной грамматике. Так что, для справедливости, сравнивать надо грамматики примерно одинакового объема.
Re[24]: Простота грамматик и простота языка
От: AndreyFedotov Россия  
Дата: 16.08.05 13:11
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Здравствуйте, AndreyFedotov, Вы писали:


AF>>Кому легче читать LL(1) грамматику — человеку или парсеру?


СГ>Обоим.


Ну если быть столь же вежливым — то в общем случае — только парсеру

AF>>Тебе же привели кучу примеров когда это не так. И регулярные выражения и иероглафическое письмо.


СГ>Ничего подобного. Те примеры, которые до сих пор приводили — очень легко читались/парсились. Более того, мой собственный пример с числом с плавающей точкой: "12345.6787E-26"; или пример с телефонным номером: "+7 (123) 45-67-89", пожалуй и то сложнее для парсинга т.е. для чтения, чем грамматика BrainFuck, грамматика любой последовательности 0 и 1, или грамматика допускающая любую последовательность символов ASCII.


Видишь ли. Ты сам жульничаешь. Разберём твои же примеры:
Ты ведь пишешь 12345.6787E-26, а не .00000000000000000000000000123456787
Аналогично пишешь "+7 (123) 45-67-89", а не +7123456789, а ведь грамматика стала ещё проще!
Но ведь про то, что читать стало легче ты, надеюсь, утвержать не будешь?

То есть что ты сам делаешь? Ты сознательно повышаешь сложность грамматики, что бы повысить читаемость — улучшить восприятие твоего кода человеком.
Re[30]: Простота грамматик и простота языка
От: AndreyFedotov Россия  
Дата: 16.08.05 13:15
Оценка: +3
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Здравствуйте, VladD2, Вы писали:


VD>>Товарищь утверждал, что есть зависимость между люкостью чтения кода человеком и простотой граматики. Легкость чтения человеком — это не граматика или семантика. Это простота восприятия смысла написанного. То есть простота распознования и правильной интерпретации информации.


СГ>Лёгкость чтения это то на сколько легко можно мысленно построить дерево разбора выражения. Понятно, что деревья разбора легче строить для LL(1) грамматики или, вообще, для регулярной. Опять же не надо забывать про размер грамматик. Конечно всегда можется статься так, что какая-нибудь простая но слишком объемная LL(1) грамматика может проиграть какой-нибудь контекстно зависимой, но чрезвычайно компактной грамматике. Так что, для справедливости, сравнивать надо грамматики примерно одинакового объема.


А по-моему лёгкость чтения — это когда никакого дерева разбора строить не нужно, даже не нужно вообще знать о том, что оно есть!
Re[29]: Простота грамматик и простота языка
От: mefrill Россия  
Дата: 16.08.05 13:18
Оценка: 13 (2) +1
Здравствуйте, VladD2, Вы писали:

VD>Товарищь утверждал, что есть зависимость между люкостью чтения кода человеком и простотой граматики. Легкость чтения человеком — это не граматика или семантика. Это простота восприятия смысла написанного. То есть простота распознования и правильной интерпретации информации.


С этим не соглашусь, мне кажется и грамматика тоже. Классическийй пример: глюковатые синявки манделили на мосе. Смысл, очевидно, отсюда кое-какой вытащить можно, что подтверждает тот факт, что синтаксические конструкции языка также играют важную роль в понимании текста человеком.

VD>Так вот нет никакой зависимости между простотой граматики и простотй воспритяи (чтения) кода на этой граматике. БрэйнФак и регекспы это и демонстрируют. В то же время языки с более сложной граматикой зачастую бывают более понятны человеку (легче читаются) нисмотря на то, что обладают большим количеством грамматических кострукций.


Мне кажется, что как раз такая зависимость есть. Как я уже писал выше, навскидку можно выделить две сложности языка: количество связей между сущностями языка и качество таких связей. Если задавать языки порождающей граматикой, то иерархия Хомского отражает качество или "сложность" таких связей, а количество правил граматики, а также некоторые другие параметры, о которых я здесь не хочу говорить, отражают количество связей. Так что все правы, победила дружба, как говорится.

VD>Причем зависимости нет не только прямой (проще граматика проще читать), но и обратной (сложнее грамматика, сложнее читать).


Мы же здесь говорим о синтаксисе, а не о семантике. Т.е. мы абстрагируемся сейчас от семантики, полагая, что смысл лексем языка понятен не зависимо от качества грамматики, посредством которой данный язык выражается. В нашем, конкретном случае, и в Обероне и в Си++ выражены примерно одни и те же концепции, которые понимаются современным программистом среднего уровня.

С другой стороны, я конечно, не знаток Оберона, но мне кажется, что Си++ сложен, если так можно выразиться, концептуально. Т.е. в нем "больше идей", типа обобщенного программирования и программирования времени компиляции. Эти идеи для реализации используют старый синтаксис, поэтому часто получается неоднозначность, т.е. качество (сложность) связей повышается. Точно также происходит и в естественном языке, для новых областей знания используются старые термины ивыражения, только в новом значении, которое часто тесно связано со старым. В языках, писавшихся "с нуля" подобная эволюция не прослеживается. Но, если язык удачен и принят многими в программистком сообществе, то его "эволюция" в направлении увеличения качественной сложности неизбежна.
Re[25]: Простота грамматик и простота языка
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 16.08.05 13:19
Оценка:
Здравствуйте, AndreyFedotov, Вы писали:

AF>Видишь ли. Ты сам жульничаешь. Разберём твои же примеры:

AF>Ты ведь пишешь 12345.6787E-26, а не .00000000000000000000000000123456787
AF>Аналогично пишешь "+7 (123) 45-67-89", а не +7123456789, а ведь грамматика стала ещё проще!
AF>Но ведь про то, что читать стало легче ты, надеюсь, утвержать не будешь?
AF>То есть что ты сам делаешь? Ты сознательно повышаешь сложность грамматики, что бы повысить читаемость — улучшить восприятие твоего кода человеком.

Идея хорошая, я обязательно над ней подумаю.
Re[37]: Простота грамматик и простота языка
От: cranky Украина  
Дата: 16.08.05 13:22
Оценка:
Здравствуйте, Sergey J. A., Вы писали:

SJA>Здравствуйте, Сергей Губанов, Вы писали:


СГ>>Здравствуйте, Курилка, Вы писали:


К>>>Специально для тебя повторяю аналогию:

К>>>Есть грамматика Оберона, есть программы на Обероне, есть данные, с которыми работает программа Оберона.
К>>>Есть грамматика рег. выражений, есть сами рег. выражения, есть строки, которые удовлетворяют этим выражениям.
К>>>Надеюсь, что уж достаточно разжевал

СГ>>Ну и? Будет сегодня хоть один пример трудно читаемой строки порожденной регулярной грамматикой?


SJA>Да. Пожалста. Вот вам пример на BF. Граматики под руками нет, но думаю она вполне простая.

SJA>Что программа делает думаю объяснять не надо ? Ведь всё хорошо читается ?

[...]

Э-э, вопрос этики?
You aren't expected to absorb this
Re[30]: Простота грамматик и простота языка
От: VladD2 Российская Империя www.nemerle.org
Дата: 16.08.05 13:23
Оценка: +1
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Лёгкость чтения это то на сколько легко можно мысленно построить дерево разбора выражения. Понятно, что деревья разбора легче строить для LL(1) грамматики или, вообще, для регулярной. Опять же не надо забывать про размер грамматик. Конечно всегда можется статься так, что какая-нибудь простая но слишком объемная LL(1) грамматика может проиграть какой-нибудь контекстно зависимой, но чрезвычайно компактной грамматике. Так что, для справедливости, сравнивать надо грамматики примерно одинакового объема.


Нда. Тяжулый случай.

Ну, давай попробуем по другому...

Ты не будешь спорить что с точки зрения грамматики Оберон очень значительно проще чем C# 2.0?

Если не будешь, то следующий вопрос...
Ты знаком с паттерном "Итератор"? Ну, предоставление поседовательного доступа (перебора) к некоторой коллекции. Будь добр, продемонстрируй реализацию этого паттерна на Обероне. В качестве коллекции вопсользуйся банальным массивом. Создай функцию на входе которой будет массив, а на выходе объект-итератор позволяющий перебрать элементы массива.

Потом я приведу решение на C# 2.0 и сравним что проще читается и вообще что проще.
ОК?
... << RSDN@Home 1.2.0 alpha rev. 591>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[27]: Простота грамматик и простота языка
От: mefrill Россия  
Дата: 16.08.05 13:24
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Володя, ты хочешь сказать, что регулярные выражения не описываются никакой грамматикой? То, что рег. выражения есть грамматика я вообще-то не говорил (но утверждали некоторые в т.ч. СГ)


Ага, понял, ты имеешь ввиду язык регулярных выражений как целевой язык, а его грамматику как целевую грамматику? Но, тогда язык РЕ не описывается регулярной грамматикой, там же иерархия явная, куча вложенных скобок. По своему опыту могу сказать, что там КС-грамматика. Поэтому, пример все-равно не катит. Трудность в тех примерах, которые ты привел, заключается просто в отсутствии навыков чтения РЕ. В этом языке нет знакомых нам конструкций, типа ключевых слов, вытащенных из английского языка, и потому понятных всем. При некотором опыте сформируются связи между понятием и его графическим изображением, и все будет читаться легко.
Re[24]: Простота грамматик и простота языка
От: mefrill Россия  
Дата: 16.08.05 13:27
Оценка: :))
Здравствуйте, Dog, Вы писали:

Dog>

Dog>По рзелульаттам илссеовадний одонго анлигйсокго унвиертисета, не иеемт занчнеия, в кокам пряокде рсапожолены бкувы в солве. Галвоне, чотбы преавя и пслоендяя бквуы блыи на мсете. Осатьлыне бкувы мгоут селдовтаь в плоонм бсепордяке, все-рвано ткест чтаитсея без побрелм. Пичрионй эгото ялвятеся то, что мы не чиатем кдаужЮ бкуву по отдльенотси, а все солво цликеом.

Dog>

Это только, когда пробелы между словами есть. А их стали ставить совсем недавно. Старославянская писменность все без пробелов, что естественно, так как мы воспринимаем слова на слух тоже без пробелов. В общем, очередное подтверждение важности правильного форматирования .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.