Re[44]: Простота грамматик и простота языка
От: Sergey J. A. Беларусь  
Дата: 20.08.05 05:31
Оценка:
Здравствуйте, Кодт, Вы писали:

SJA>>Прыкольно. Наверное для такого сложного C# (который сложнее Ada) ещё лет 5-10 не смогут написать правильного коипилятора ?


К>Это ещё вопрос — что было первее, синтаксис додиеза или его компилятор.

К>Потому что с Адой сперва родили спецификацию, а потом задумались над воплощением. А микрософт имел возможность выдавать действительное за желаемое

Да я просто подколоть Серёгу решил. А потом подумал — неужели если кто-то решит написать компилятор C# с нуля, ему придётся мучатся лет 10, как с Ada ? Аду не видел, сравнивать не с чем, но на первый взгляд C# вполне прост для понимания. Мне казалось он и для компилятора должен быть не слишком сложен. Вот С++ другое дело....
Я — свихнувшееся сознание Джо.
Re[33]: Простота грамматик и простота языка
От: mefrill Россия  
Дата: 20.08.05 07:38
Оценка:
Здравствуйте, Кодт, Вы писали:

К>В голове у человека не 7 номеров, а стек из 7 ячеек.


Re[6]: Не верю
От: AndreyFedotov Россия  
Дата: 20.08.05 07:51
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

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


СГ>>> Более того, языки программирования компьютеров — это инструменты. Инструменты могут быть простыми или сложными, маленькими или большими, но они всегда рациональны, стало быть обозримы, понятны, формализуемы и т. п..


P>>Дак ведь инструменты художника: кисть, краски, холст, палитра, добавьте, что я пропустил, тоже рациональны.


СГ>Ровно об этом я и сказал, так что не понятно о чем Вы собрались затеять спор.


А чего ещё ты ожидал, если сам заявил "у меня есть цель, но я о ней никому не скажу"? Откуда мы можем знать — подходящий ли инструмент кисточки для гуаши, если мы не знаем, что ты собираешься ими делать — картину рисовать или дом снаружи Ореолом красить?
Re[33]: Простота грамматик и простота языка
От: VladD2 Российская Империя www.nemerle.org
Дата: 20.08.05 10:18
Оценка:
Здравствуйте, Дарней, Вы писали:

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


VD>>вычислит вложенные правила и свернет их в Expr. Далее любые конструкции распознаются с заглядываением на один терминал вперед.


Д>Если это "свернутое выражение", то это уже не терминал, ИМХО.


А почему "это" должно терминалом? Это нетерминал, т.е. правило.

LL(1) тем и отличается от регулярных грамматик тем, что поддерживает рекурсивные определения. Например, рекурсивной грамматикой (ну, регепспом) нельзя описать вложенные ксобки. А для LL(1)-грамматики это не вопрос:
Brackets   = '(' Expression ')'.
Expression = Brackets | char.
... << RSDN@Home 1.2.0 alpha rev. 591>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[34]: Простота грамматик и простота языка
От: Шахтер Интернет  
Дата: 21.08.05 02:01
Оценка:
Здравствуйте, mefrill, Вы писали:

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


К>>В голове у человека не 7 номеров, а стек из 7 ячеек.


M>


Это известный факт. 7+-2. Больше сверхоперативная память не держит.
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[35]: Простота грамматик и простота языка
От: mefrill Россия  
Дата: 21.08.05 08:17
Оценка:
Здравствуйте, Шахтер, Вы писали:

Ш>Это известный факт. 7+-2. Больше сверхоперативная память не держит.


Да все понятно, просто, если помотреть со стороны, звучит прикольно .
Re[30]: Простота грамматик и простота языка
От: ЯпонИц Россия www.yaponiz.com
Дата: 21.08.05 11:23
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

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


Т.е. грамматика Оберона не помогает понять: "что написанная программа будет делать, как будет делать и почему"?
Я не волшебник, я только учусь.
Posted by RSDN@HOME.
Re[44]: Простота грамматик и простота языка
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.08.05 12:04
Оценка:
Здравствуйте, Кодт, Вы писали:

К>В С++ проблема возникла из-за

К>1) неоднозначного синтаксиса (правило "если это выглядит как объявление функции...")
К>2) дурацкого выбора скобок

Скобки тут не причем. В том же Шарпе проблема с ними решается.

А вот разобрать некоторые конструкции LL(1)-парсером не удается.
... << RSDN@Home 1.2.0 alpha rev. 591>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[45]: Простота грамматик и простота языка
От: Павел Кузнецов  
Дата: 21.08.05 12:17
Оценка:
VladD2,

> К>В С++ проблема возникла из-за

> К>1) неоднозначного синтаксиса (правило "если это выглядит как объявление функции...")
> К>2) дурацкого выбора скобок

> Скобки тут не причем. В том же Шарпе проблема с ними решается.


Там она решается способом, недоступным LL(1) парсеру, так что скобки очень даже причем.
Posted via RSDN NNTP Server 2.0 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[6]: Не верю
От: Privalov  
Дата: 21.08.05 13:23
Оценка: +1
Здравствуйте, Сергей Губанов, Вы писали:

P>>Дак ведь инструменты художника: кисть, краски, холст, палитра, добавьте, что я пропустил, тоже рациональны.


СГ>Ровно об этом я и сказал, так что не понятно о чем Вы собрались затеять спор.


Сдается мне, здесь что-то не то.

Я думаю, что программирование — это не искуство, а смесь науки и технологии.

здесь
Автор: Сергей Губанов
Дата: 18.08.05


я подумал, что это — основной тезис. То, что далее говорилось об инструментах — мне показалось, что это аргумент в пользу этого тезиса. Однако, сейчас Вы утверждаете, что говорили только об инструментах, которые вполне рациональны как у худажника, так и у программиста. А о том высказывании, которое я процитировал, Вы забыли. Теперь мне непонятно, к чему же оно было?
Re[46]: Простота грамматик и простота языка
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.08.05 14:03
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>Там она решается способом, недоступным LL(1) парсеру, так что скобки очень даже причем.


Нет. Проблема решается (вернее предлагается решаться) путем разбиения токена ">>" на два ">".

Другое дело, что есть неоднозначность в:
A<B, C>(В)
A < B, C > (В)

Которая в шарпе решается введением эвристики.
... << RSDN@Home 1.2.0 alpha rev. 591>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[47]: Простота грамматик и простота языка
От: Павел Кузнецов  
Дата: 21.08.05 16:36
Оценка:
VladD2,

> Другое дело, что есть неоднозначность в:

>
> A<B, C>(В)
> A < B, C > (В)
>

> Которая в шарпе решается введением эвристики.

Именно о подобных неоднозначностях и идет речь. Они в Шарпе разрешаются способом, недоступным LL(1) парсеру.
Posted via RSDN NNTP Server 2.0 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[42]: Простота грамматик и простота языка
От: Дарней Россия  
Дата: 21.08.05 17:17
Оценка: :)
Здравствуйте, AVC, Вы писали:

AVC>Некоторые современные английские языковеды полагают, что в английской грамматике нет будущего времени.

AVC>Например, Geoffrey Broughton:
AVC>

AVC>Modern grammars argues that modern English... has present and past tenses, (i.e. verb forms which reflect these meanings of time) but no future tense.

AVC>("Penguin English grammar")
AVC>Глаголы shall и will грамматически принадлежат к present tense и — ничего, справляемся мы с этим как-то...

Я подозреваю, что некоторым современным английским языковедам заняться больше нечем. Хорошо хоть, оверхед считать не начали
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[34]: Простота грамматик и простота языка
От: Дарней Россия  
Дата: 22.08.05 05:31
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>А почему "это" должно терминалом? Это нетерминал, т.е. правило.


В общем, до меня дошло. Просто я думал о другом описании этой грамматики.
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[45]: Простота грамматик и простота языка
От: Дарней Россия  
Дата: 22.08.05 05:33
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Скобки тут не причем. В том же Шарпе проблема с ними решается.


VD>А вот разобрать некоторые конструкции LL(1)-парсером не удается.


Интересно, а какие именно конструкции создают проблемы?
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[43]: Простота грамматик и простота языка
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 22.08.05 06:17
Оценка: +1
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>Сергей,


>> А почему Вы думаете, что использование более сложной грамматики чем LL(1) добавит выразительности?


ПК>Потому что впихнуть в прокрустово ложе LL(1) ряд возможностей, добавляющих языку выразительности, не так уж легко. Например, попробуй добавить в Оберон удобные для использования шаблоны (или хотя бы generics), оставив грамматику LL(1)...


7. Parametric Types
http://cvs.sourceforge.net/viewcvs.py/*checkout*/ooc/ooc2/doc/from-v1-to-v2/oo2c-v2.html#SEC19

Еще вопросы?
Re[48]: Простота грамматик и простота языка
От: Кодт Россия  
Дата: 22.08.05 06:47
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

>> Другое дело, что есть неоднозначность в:

>>
>> A<B, C>(В)
>> A < B, C > (В)
>>

>> Которая в шарпе решается введением эвристики.

ПК>Именно о подобных неоднозначностях и идет речь. Они в Шарпе разрешаются способом, недоступным LL(1) парсеру.


Угловые скобки требуют знания контекста. Если перед '<' имя шаблона, то это скобка (и нужно искать ей пару), а если что-либо другое, то это двухместный оператор. А для этого нужно либо делать контекстную зависимость, либо явно писать кейворд template.

Кстати о синтаксисе шаблонов...
Пусть у нас есть скобочные выражения
— { РазныеСтейтменты }
— ( ВыражениеВСкобках )
— Функтор ( СписокАргументов ), причём доступ к массиву синтаксически такой же, как функтор (аналогично VB и Fortran'у)
— Шаблон [ СписокПараметров ]
Казалось бы, получаем LL(1).
Или там ещё есть подводные камни?
Перекуём баги на фичи!
Re[44]: Простота грамматик и простота языка
От: AndreyFedotov Россия  
Дата: 22.08.05 07:18
Оценка: +2
Здравствуйте, Сергей Губанов, Вы писали:

И тем не менее, синтаксис вроде:

TYPE
  ArrayList*(E: Object.Object) = POINTER TO ArrayListDesc(E);
  ArrayListDesc*(E: Object.Object) = RECORD
    ...
  END;
...
VAR myList: ArrayList(MyElementType);


На мой взгляд ни в выразительности, ни в прозрачности врядли чем то превосходит C++ или C#, скорее даже уступает.
То есть получается, что и бороться особо не за что...
Re[45]: Простота грамматик и простота языка
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 22.08.05 08:01
Оценка: -1
Здравствуйте, AndreyFedotov, Вы писали:

AF> На мой взгляд...


Дело вкуса и предпочтений — форматирование текста. В остальном же — нельзя полагаться на абстрактные нравится/не нравится, а надо использовать то что наиболее подходит для формального описания/определения/вывода/заключений.
Re[46]: Простота грамматик и простота языка
От: Дарней Россия  
Дата: 22.08.05 08:16
Оценка: +5
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Дело вкуса и предпочтений — форматирование текста. В остальном же — нельзя полагаться на абстрактные нравится/не нравится, а надо использовать то что наиболее подходит для формального описания/определения/вывода/заключений.


Для формального контроля алгоритмов надо использовать объектную модель кода, для которой величина k абсолютно монопенисуальна.
А вот при выборе текстового представления кода надо ориентироваться именно на "нравится/не нравится" в первую очередь.
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.