Re[10]: Синтаксический оверхед
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 22.06.05 12:55
Оценка:
Здравствуйте, Mamut, Вы писали:

M> А как процедуру с несколькими точкаи выхода не дано?


Я не понял вопроса.

M>
M>PROCEDURE
M>  IF cond1 THEN RETURN 1 END;
M>  IF cond2 THEN RETURN 2 END;
M>  IF cond3 THEN RETURN 3 END;
M>END
M>

M>Или такое тоже не скомпилируется?

Такое — нет, скомпилируется вот такое:
PROCEDURE ProcName(): INTEGER;
BEGIN
  IF cond1 THEN RETURN 1 END;
  IF cond2 THEN RETURN 2 END;
  IF cond3 THEN RETURN 3 END
END ProcName;
Re[19]: Синтаксический оверхед
От: Sergey J. A. Беларусь  
Дата: 22.06.05 12:59
Оценка: 2 (1)
Здравствуйте, Сергей Губанов, Вы писали:

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


SJA>>А это
Автор: Пацак
Дата: 22.06.05
Вы не читали?


СГ>Там не по теме. В этой ветке форума обсуждается си-образный синтаксис vs Modula/Oberon-образный. Если Вам охота какой-то другой синтаксис сравнить заводите другую ветку форума. Но такой популярности как эта ветка, она вряд ли добьется.


Там по теме !
Я — свихнувшееся сознание Джо.
Re[13]: Яркий пример
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 22.06.05 13:02
Оценка:
Здравствуйте, Privalov, Вы писали:

P>Еще раз, универсальным типом цикла является WHILE (цикл с предусловием).


Как же WHILE если LOOP?
Re[11]: Синтаксический оверхед
От: Mamut Швеция http://dmitriid.com
Дата: 22.06.05 13:08
Оценка: +1
Здравствуйте, Сергей Губанов, Вы писали:

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


M>> А как процедуру с несколькими точкаи выхода не дано?


СГ>Я не понял вопроса.


M>>
M>>PROCEDURE
M>>  IF cond1 THEN RETURN 1 END;
M>>  IF cond2 THEN RETURN 2 END;
M>>  IF cond3 THEN RETURN 3 END;
M>>END
M>>

M>>Или такое тоже не скомпилируется?

СГ>Такое — нет, скомпилируется вот такое:

СГ>
СГ>PROCEDURE ProcName(): INTEGER;
СГ>BEGIN
СГ>  IF cond1 THEN RETURN 1 END;
СГ>  IF cond2 THEN RETURN 2 END;
СГ>  IF cond3 THEN RETURN 3 END
СГ>END ProcName;
СГ>


Ну епт (все же начал материться ). Можете считать то, что я написал псевдокодом. Повторяю то, о чем говорилось в ветке:

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

SAV> Цикл должен быть вещью в себе (не знаю как это выразить, надеюсь эту фразу вы поймете правильно).

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


здесь
Автор: Mamut
Дата: 22.06.05

А как процедуру с несколькими точками выхода не дано?
...
Или не скомпилируется?


Я не просил вас докапываться к коду. И вообще, я все еще жду ответа на здесь
Автор: Mamut
Дата: 22.06.05
, что получило продолжение здесь
Автор: Mamut
Дата: 22.06.05
. Ваш якобы ответ
Автор: Сергей Губанов
Дата: 22.06.05
проигнорировал 80% моего сообщения.


dmitriid.comGitHubLinkedIn
Re[13]: Яркий пример
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 22.06.05 13:08
Оценка: 1 (1)
Здравствуйте, Mamut, Вы писали:

M>"Не плоди сущностей без необходимости" LOOP — такая вот ненужная сущность.


Странно, а если нужно проверить условие прекращения итерации уже находясь внутри итерации, тогда как быть?

Наоборот, это WHILE и REPEAT выводятся из LOOP как частные случаи.

WILE a DO ... END можно понимать как сокращенную запись: LOOP IF a THEN ... ELSE EXIT END END,
REPEAT ... UNTIL b можно понимать как сокращенную запись: LOOP ... IF b THEN EXIT END END.
Re[19]: Синтаксический оверхед
От: CrystaX Россия https://crystax.me/
Дата: 22.06.05 13:09
Оценка: +2
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Если в самом синтаксисе нет возможности для отслеживания опечаток, то как компилятор их найдет? В этом смысле синтаксис первичен, а пользователи вторичны. А вот уже из всех возможных правильных синтаксисов, надо выбрать тот, который будет еще и максимально удобен пользователю. Вот в какой последовательности нужно идти, а не в обратной.


А компиляторы языков с C-like синтаксисом и не занимаются нахождением опечаток. Ответственность — на пользователе. Да, совершенства нет. Вы хотите обеспечить отсутствие опечаток? Ок, пишите на Обероне. Хотите добиться гибкости и выразительной силы, присущей C++? На нем и пишите. Хотите получить reflection, run-time проверки и мощь .NET Framework? Используйте C#. Проблемы нет. НО! Ничего не дастся бесплатно. Выигрываем в одном — теряем в другом. Для Вас важно никогда не делать опечатки? Пожалуйста, пишите на Обероне сколько угодно, я слова худого не скажу. Но так уж получается, что подавляющему большинству программистов гораздо более важны другие вещи — производительность, удобство в написании и сопровождении, прозрачная поддержка (на уровне языка) определенных концепций и т.д. Опечатки для них — наименьшее зло и они готовы с ним мирится, так как в конечном счете решить задачу получается гораздо быстрее и эффективнее. А самый большой грех в наш век — это неэффективность.
Поэтому и не выживают языки с правильным синтаксисом. Закон естественного отбора, если хотите. Ибо синтаксис — вовсе не самое важное в языке.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re[5]: Синтаксический оверхед
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 22.06.05 13:17
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Правомерно, только если брать возможности среды, зафиксированные стандартом оберона (раз уж они неразделимы).

J>Которые, соответственно, прошу в студию.

Опорная реализация подойдет? (reference design, стандарт de facto так сказать) Смотрите главный обероновый сайт. Там есть.
Re[14]: Яркий пример
От: Mamut Швеция http://dmitriid.com
Дата: 22.06.05 13:22
Оценка:
P>>Еще раз, универсальным типом цикла является WHILE (цикл с предусловием).

СГ>Как же WHILE если LOOP?


Ох. Если бы вы хоть изредка читали то, что вам говорят оппоненты
Автор: Mamut
Дата: 22.06.05
.

Любой цикл и условие в программе можно переписать с использованием только цикла while. loop — это извращение, о котором написано здесь
Автор: Mamut
Дата: 22.06.05


dmitriid.comGitHubLinkedIn
Re[11]: Раскрутка
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 22.06.05 13:27
Оценка:
Здравствуйте, Mr. None, Вы писали:

СГ>>а почему не сам Оберон?


MN>Ну уж это звиняйте физически невозможно... Разве что только писать не листочке, потом в уме компилировать в инструкции процессора и вбивать руками их в файл... Другого способа не вижу...


Есть технология под условным названием "раскрутка", с помощью нее, например, Вирт создал Оберон. Заключается она в том, что сначала реализуется компилятор очень переочень маленького подмножества языка (например, на ассемблере, хотя Вирт брал Модулу, но это не принципиально). Затем пишется компилятор на этом подмножестве этого языка. Он компилирует сам себя. Вносятся расширения в язык. Компилятор переписывается, на языке с предыдущей итерации. И так далее. Процесс очень тяжелый. Но зато в результате появляется очень маленький и в тоже время очень мощный язык. Если ты сам себе не враг, то не добавишь в язык ничего лишнего, а добавишь как раз то что реально необходимо.
Re[6]: Синтаксический оверхед
От: Sergey J. A. Беларусь  
Дата: 22.06.05 13:31
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

J>>Правомерно, только если брать возможности среды, зафиксированные стандартом оберона (раз уж они неразделимы).

J>>Которые, соответственно, прошу в студию.

СГ>Опорная реализация подойдет? (reference design, стандарт de facto так сказать) Смотрите главный обероновый сайт. Там есть.


Нет. Нам стандарт de jure пожалста. Ну, тот которым все Оберонщики очень гордятся, что он маленький и компактный. Это должно быть там.
Я — свихнувшееся сознание Джо.
Re[8]: Open source
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 22.06.05 13:33
Оценка:
Здравствуйте, moudrick, Вы писали:

СГ>> Простите меня пожалуйста.


Да ладно...

http://www.oberon.ch/blackbox.html

1.4 — закрытый
1.5 — открытый

M>Не известно.


http://www.rsdn.ru/Forum/Message.aspx?mid=899740&amp;only=1
Автор: Сергей Губанов
Дата: 15.11.04


Объяснение этому феномену на самом деле тривиальное...
Re[7]: Синтаксический оверхед
От: Privalov  
Дата: 22.06.05 13:38
Оценка:
Здравствуйте, Sergey J. A., Вы писали:

SJA>Нет. Нам стандарт de jure пожалста. Ну, тот которым все Оберонщики очень гордятся, что он маленький и компактный. Это должно быть там.


Я читал. Нет там ничего. Ссылку навскидку не вспомню.
Re[12]: Раскрутка
От: Sergey J. A. Беларусь  
Дата: 22.06.05 13:39
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>... Но зато в результате появляется очень маленький и в тоже время очень мощный язык. Если ты сам себе не враг, то не добавишь в язык ничего лишнего, а добавишь как раз то что реально необходимо.


В результате получится язык, на котором очень легко скомпилировать самого себя. С чего должна получится мощность языка я не вижу.
Я — свихнувшееся сознание Джо.
Re[8]: Синтаксический оверхед
От: Sergey J. A. Беларусь  
Дата: 22.06.05 13:44
Оценка:
Здравствуйте, Privalov, Вы писали:

SJA>>Нет. Нам стандарт de jure пожалста. Ну, тот которым все Оберонщики очень гордятся, что он маленький и компактный. Это должно быть там.


P>Я читал. Нет там ничего. Ссылку навскидку не вспомню.


Да я знаю, что там ничего нет. Разве в 30 страниц чего-нить можно описать, кроме синтаксиса.... Это, что бы уважаемый аффтар не соскочил. Хотя, всё равно ведь соскочит...
Я — свихнувшееся сознание Джо.
Re[12]: Раскрутка
От: Privalov  
Дата: 22.06.05 13:46
Оценка: +1
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Есть технология под условным названием "раскрутка",...


Дак ведь Си точно так же создавался. Интерпретатор Tiny C, за ним Small C, ну и т. д. Разумеется, речь идет об одной из реализаций. Даже об этом книга была выпущена. Этот самый Small C студентам на лабораторных по проектированию компиляторов давали работать.
А еще есть тест для компилятора: если он самого себя компилирует — значит, есть надежда.
Re[9]: Open source
От: Sergey J. A. Беларусь  
Дата: 22.06.05 13:47
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>http://www.rsdn.ru/Forum/Message.aspx?mid=899740&amp;only=1
Автор: Сергей Губанов
Дата: 15.11.04


СГ>Объяснение этому феномену на самом деле тривиальное...


Да-да. Совершенно тривиальное. Авторы отчаялись его кому-нибудь впарить, и открыли коды. Думали наверное кого-то завлечь беплатным сыром....
Я — свихнувшееся сознание Джо.
Re[8]: Open source
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 22.06.05 13:49
Оценка:
Здравствуйте, Mr. None, Вы писали:

MN> или на что вы знаете ответ...


Я действительно отвечаю только на то на что ответить могу. Вообще-то это тавтология, так как нельзя ответить на то на что ответить не можешь.

MN>Четврётого варианта я не вижу.


Он есть.

1) Если компилятор + рантайм Оберона уже написан на чем-то, то переписать его на самом Обероне можно.
2) Потом, то первое выбрасываем и забываем.
3) В качестве того первого может выступать более урезанная и опасная версия самого Оберона.
4) Можно эту итерацию повторить очень много раз, каждый раз переписывая заново все на языке из предыдущей итерации.

Этот процесс создания компилятора+рантайма Никлаус Вирт назвал словом "раскрутка". Собственно, в результате раскрутки и был создан первый язык Оберон + его компилятор + операционная система Оберон.

MN>Варианты ответа 1 и 2 атоматически означают, что сам по себе GC не защищён и может содержать ошибки, следовательно ошибка в GC не будет перехвачена обероном и приложение таки упадёт, будь оно хоть трижды надёжным (не знаю зачем вообще я это объясняю — это должно быть понятно всем и так). Вариант 3 не говорит ни о чём, кроме того, что вы не знаете и всё.


Вы правы. По этому поводу Никлаус Вирт как раз и ругал все эти дебагеры. А имеено, он говорил, что существуют программы, которые нельзя дебажить — сборщик мусора, например. В его статье про создание Оберона он на этом специально акцентирует внимание. Сборщик мусора должен быть написан с особой тщательностью.

Но, дело в том, что по мере раскрутки, язык становится все более "правильным", так что начиная с какого-то витка раскрутки программировать становится все проще и проще. Вероятность сделать ошибку в сборщике мусора уменьшается по мере выполнения процесса раскрутки.
Re[7]: А эхо в ответ: мать...мать...мать...
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 22.06.05 13:51
Оценка:
Здравствуйте, Mr. None, Вы писали:

MN>Ну продемонстрировали вы числа... И что? Я тоже много чисел знаю...


Так продемонстрируйте! Создайте новую ветку в форуме. Покажите числа. Кто знает, может быть народ тоже накинется их обсуждать. А может проигнорирует. Мои числа почему-то не проигноровали, хотя могли бы. Наверное мои числа получились числятее чем обычные.
Re[7]: А эхо в ответ: мать...мать...мать...
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 22.06.05 13:54
Оценка:
Здравствуйте, Пацак, Вы писали:

П>Может все-таки потрудитесь и приведете обероновский эквивалент для неоднократно упоминавешгося здесь

П>
П>while (dest[i++] = src[j++]);
П>


А я уже давно потрудился и привел этот пример:

http://www.rsdn.ru/Forum/Message.aspx?mid=1216783&amp;only=1
Автор: Сергей Губанов
Дата: 10.06.05
Re[9]: Open source
От: Курилка Россия http://kirya.narod.ru/
Дата: 22.06.05 13:56
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Этот процесс создания компилятора+рантайма Никлаус Вирт назвал словом "раскрутка". Собственно, в результате раскрутки и был создан первый язык Оберон + его компилятор + операционная система Оберон.


Вау! Раскрутку оказывается святой Вирт придумал...
А вот лисперы почти полвека её используют и не знают сего факта — бедняги, однозначно...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.