Re[11]: Очередной яркий пример
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 23.06.05 07:11
Оценка:
Здравствуйте, Трурль, Вы писали:

SJA>> (т.е. я так предполагаю). "Спрашивается как долго ...".


Т>Есть масса других вещей, о которых можно приятно пофлеймить.


Например, до каких пор некоторые люди будут предполагать...
Re[11]: Синтаксический оверхед
От: CrystaX Россия https://crystax.me/
Дата: 23.06.05 07:11
Оценка:
Здравствуйте, Sergey J. A., Вы писали:

SJA>http://yuri.shilyaev.com/2005/01/11/234/kitayskaya-pechatnaya-mashinka.html


Не, это другая. Та, что я видел, была безо всяких барабанов. Просто квадрат метр на метр, а по нему станина ездит.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re[12]: Очередной яркий пример
От: Sergey J. A. Беларусь  
Дата: 23.06.05 07:21
Оценка: 3 (1) +1
Здравствуйте, Сергей Губанов, Вы писали:

Т>>Есть масса других вещей, о которых можно приятно пофлеймить.


СГ>Например, до каких пор некоторые люди будут предполагать...


Это Вам лучше знать. Вы у нас любитель ляпнуть "предположив" Да что любитель — профессионал
Я — свихнувшееся сознание Джо.
Re[10]: Очередной яркий пример
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 23.06.05 07:33
Оценка:
Здравствуйте, Oleg A. Bachin, Вы писали:

OAB> игнорируете мой пост утвеждающий что вы ничего не понимаете в програмировании судя по вашей конструкции "try try")


Простите конечно, но тут так много сообщений, что я, к сожалению, даже уже забыл о чем речь в try try. Мне даже кажется что это вне темы данной ветки.

OAB>кстати, а как у нас дело обстоит с абстрактными методами?


Хорошо обстоят дела. Пишете слово ABSTRACT. Но можно я всё-таки просто дам Вам ссылку на русском языке
на language report, и Вы самостоятельно его прочитатете, вместо того чтобы мне тут всё объяснять?


OAB>пжалуйста!

OAB>
OAB>  if ((@a <> nil) and (a <> nil)) then ... 
OAB>


Спасибо. Не знал. Сам пользовался для функций assigned(). Кстати, если @a обозначает прецедуру на которую указывает процедурная переменная "a", то как тогда узнать адрес самой процедурной переменной "a". Ведь операция получения адреса тоже обозначается символом @ ?

Например, если объявлено:

var i: integer;

то @i — это адрес переменной i. Но если объявлено

var a: MyFunc;

то @a — это не адрес "a", а адрес процедуры на которую ссылается процедурная переменная "a". Но как узнать адрес самой переменной "a"?
Re[10]: Очередной яркий пример
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 23.06.05 07:37
Оценка:
Здравствуйте, alexku, Вы писали:

A>То есть, забыл скобки — получил глюк.


А что Вы можете предложить в замен?

TYPE Func: PROCEDURE(): Func;

VAR a: Func;

a — обозначает саму себя как процедурную переменную
a() — обозначает результат, который вернула процедура-функция после исполнения

Как иначе-то, может быть?
Re[11]: Очередной яркий пример
От: Аноним  
Дата: 23.06.05 07:46
Оценка:
СГ>a — обозначает саму себя как процедурную переменную
СГ>a() — обозначает результат, который вернула процедура-функция после исполнения

СГ>Как иначе-то, может быть?


Значит скобки все-таки нудны в вашем знаменитом WHILE a DO x END? То есть нужно писать x()?
Re[17]: ЗЫ
От: Mamut Швеция http://dmitriid.com
Дата: 23.06.05 07:57
Оценка: +3
Я также думаю, что флейма было бы поменьше, если бы Сергей не стал считать лексемы, а, как минимум, просто сказал бы, почему ему нравится Оберон. Так, как это сделали Вы (На основе этой подветки
Автор: AVC
Дата: 07.06.05
)


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

M>Что-то в примерах, которые вы приводили при подсчете лексем, вы почему-то не вызывали процедуры со скобками. Аяяяй, нехорошо


А потому что там были процедуры, а тут процедуры-функции.

Для активации процедуры-функции надо
1) скобки написать даже если нет ни одного аргумента (иначе идентификатор будет обозначать саму процедуру-функцию, а не результат ее действия)
2) Как-то использовать возвращаемый результат.
a := myfunc;        (* можно только если a - процедурная переменная, тогда ей присваивается значение самой процедуры-функции (ее адрес)  *)
b := myfunc();      (* можно, присваиваем результат возвращаемый после активации процедуры-функции  *)
myfunc();           (* НЕЛЬЗЯ! Возвращаемое значение не используется!!! *)
IF valid() THEN END (* можно - возвращаемое значение используется  *)
Re[8]: Синтаксический оверхед
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 23.06.05 08:14
Оценка:
Здравствуйте, qwertyuiop, Вы писали:

Q>Большинство современных компиляторов выдают на такую строчку предупреждение


Это хорошо. Правда на прошлой неделе компилировал нечто написанное на Си не мной, там столько предупреждений выдалось, ёёёё-о-у, во всех них копаться даже не стал. Раз уж сами авторы не стали, я-то что?
Re[14]: Относительность
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 23.06.05 08:23
Оценка:
Здравствуйте, moudrick, Вы писали:

M>Вообще, я читал где-то небольшие рассуждения о том, что в ОТО куда меньше отностиельного, нежели в СТО. Найду если за реальное время — дам линку...


Давно хотел ответить, но потерял это сообщение (тут их так много). Только что почти случайно нашел это Ваше сообщение. Так вот, не надо не ищите ссылку. Это и так известно. В плоском пространстве бесконечно много равноправных глобальных инерциальных систем отсчета (грубо говоря — всё относительно). Малейшее искривление пространства снимает это вырождение. В искривленном пространстве остается всего одна глобальная инерциальная система отсчета (грубо говоря — всё абсолютно). Остается добавить, что мы с вами живем в искривленном пространстве (грубо говоря — относительность у нас лишь локальная, в бесконечно малом).
Re[20]: Синтаксический оверхед
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 23.06.05 08:29
Оценка: -1 :)
Здравствуйте, CrystaX, Вы писали:

CX>Ибо синтаксис — вовсе не самое важное в языке.


Да не главное, согласен.
Но что мешало Sun и Microsoft для Java и для C# избрать правильный синтаксис?
Языки получились бы еще более лучшими.

Если в будущем, например, IBM или Intel соберется изобрести новый язык, то почему-бы им не взять в качестве синтаксической основы правильный синтаксис Modula/Oberon? Их язык от этого только выиграет.
Re[21]: Синтаксический оверхед
От: Sergey J. A. Беларусь  
Дата: 23.06.05 08:34
Оценка: +6
Здравствуйте, Сергей Губанов, Вы писали:

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


CX>>Ибо синтаксис — вовсе не самое важное в языке.


СГ>Да не главное, согласен.

СГ>Но что мешало Sun и Microsoft для Java и для C# избрать правильный синтаксис?

Так они и выбрали правильный.
Я — свихнувшееся сознание Джо.
Re[21]: Синтаксический оверхед
От: Mamut Швеция http://dmitriid.com
Дата: 23.06.05 08:37
Оценка: 2 (1) +1
СГ>Если в будущем, например, IBM или Intel соберется изобрести новый язык, то почему-бы им не взять в качестве синтаксической основы правильный синтаксис Modula/Oberon? Их язык от этого только выиграет.

Кто сказал, что этот синтаксис — правильный? Только не надо ссылки на самого себе приводить. Требуется ссылка на строгое математическое доказательство правильности данного синтаксиса.


dmitriid.comGitHubLinkedIn
Re[21]: Синтаксический оверхед
От: Privalov  
Дата: 23.06.05 08:38
Оценка: +2
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Да не главное, согласен.

СГ>Но что мешало Sun и Microsoft для Java и для C# избрать правильный синтаксис?
СГ>Языки получились бы еще более лучшими.

Начинаем очередной виток.

Может, я пропустил что-то, но кто, где и когда сказал: "Это правильный синтаксис, а это — нет". Я бы хотел получить ссылку на внушающий доверие литературный источник.

Кто вообще определяет правильность синтаксиса. Какие критерии при этом используются? Согласно этим критериям правильный ли синтаксис у языков: BASIC, APL, FORTH, PROLOG, WhiteSpace, BrainFuck

СГ>Если в будущем, например, IBM или Intel соберется изобрести новый язык, то почему-бы им не взять в качестве синтаксической основы правильный синтаксис Modula/Oberon? Их язык от этого только выиграет.


Опять же, какие основания считать, что выиграет?
Re[20]: Синтаксический оверхед
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 23.06.05 08:44
Оценка: -1
Здравствуйте, CrystaX, Вы писали:

CX>А естественные языки? Ведь написать корректную программу рабора фразы на английском (хотя бы) языке и получения точного ее смысла еще не удалось никому. Тем не менее это самый популярный язык в мире. А почему? Видимо, потому, что человеку важен не синтаксис.


Не английский, а США-совский. И это очень существенное уточнение. Это потому, что мог бы быть русский, если бы произошла мировая революция; или немецкий если бы планы фашистов сбылись; или китайский если бы китайцы завоевалю всю евразию. Или японский, если бы у них у первых появилась ядерная бомба. А так как в холодной войне победили именно США, то и язык по всему миру ихний. Кроме того они и компы с программами для них первее всех расплодили. Аналогично у Java нет преимуществ перед Оберонами кроме как то, что за плечами Java стоит Sun. Аналогично про .NET с Microsoft.
Re[11]: Синтаксический оверхед
От: Mamut Швеция http://dmitriid.com
Дата: 23.06.05 08:47
Оценка: +1
Здравствуйте, Сергей Губанов, Вы писали:

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


M>>Что-то в примерах, которые вы приводили при подсчете лексем, вы почему-то не вызывали процедуры со скобками. Аяяяй, нехорошо


СГ>А потому что там были процедуры, а тут процедуры-функции.


СГ>Для активации процедуры-функции надо

СГ>1) скобки написать даже если нет ни одного аргумента (иначе идентификатор будет обозначать саму процедуру-функцию, а не результат ее действия)
СГ>2) Как-то использовать возвращаемый результат.
СГ>
СГ>a := myfunc;        (* можно только если a - процедурная переменная, тогда ей присваивается значение самой процедуры-функции (ее адрес)  *)
СГ>b := myfunc();      (* можно, присваиваем результат возвращаемый после активации процедуры-функции  *)
СГ>myfunc();           (* НЕЛЬЗЯ! Возвращаемое значение не используется!!! *)
СГ>IF valid() THEN END (* можно - возвращаемое значение используется  *)
СГ>



Писец. И это — правильный синтаксис???? У меня уже слов не осталось. Грабли, не хуже, чем в С++

Пример. Полупсевдокод.
Было

PROCEDURE someProcedure : INTEGER
BEGIN
  RETURN 1;
END;

Стало

PROCEDURE someProcedure
BEGIN

END;

Где-то в коде:
{* много кода *}
myVar := someProcedure;
{* много кода *}


Что будет? Правильно, надеемся, что компилятор остановит. Если в С++ стоит задача — "compile-debug", то в Оберонах, судя по всему, "compile-compile-compile-мля, когда эти ошибки закончятся?".

Опять же, синтаксис name := name неочевиден, потому что я не вижу сразу, что я присваиваю — переменную или адрес функции. Конечно, из окружающего кода должно стать понятно, но и это не всегда очевидно


dmitriid.comGitHubLinkedIn
Re[21]: Синтаксический оверхед
От: CrystaX Россия https://crystax.me/
Дата: 23.06.05 08:50
Оценка: +2 -1
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Но что мешало Sun и Microsoft для Java и для C# избрать правильный синтаксис?

СГ>Языки получились бы еще более лучшими.

Вот этот момент и является наиболее спорным. Для подавляющего большинства программистов (и это факт), правильный синтаксис означал бы ухудшение языка. Правильный синтаксис != хороший язык.

СГ>Если в будущем, например, IBM или Intel соберется изобрести новый язык, то почему-бы им не взять в качестве синтаксической основы правильный синтаксис Modula/Oberon? Их язык от этого только выиграет.


Нет, проиграет. А что-что, но деньги считать эти господа умеют.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re[13]: Синтаксический оверхед
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 23.06.05 08:56
Оценка:
Здравствуйте, Privalov, Вы писали:

P>P.S. А BEGIN в Обероне существует! А кто-то кричал не своим голосом, что нет и что это устаревший синтаксис.


Ни кто не кричал что в Обероне не существует слова BEGIN. Речь была о том, что самостоятельного блока BEGIN END оторванного от IF, WHILE, CASE, WITH и т.д. в Обероне не существует. Самостоятельный блок ни для чего не нужен. Служебное слово BEGIN используется только внутри составной инструкции PROCEDURE, а также внутри составной инструкции MODULE:

MODULE...
...
BEGIN
...
END...


PROCEDURE...
...
BEGIN
...
END...

оно показывает где, собственно, начинается сам код.
Re[21]: Синтаксический оверхед
От: CrystaX Россия https://crystax.me/
Дата: 23.06.05 08:57
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

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


CX>>А естественные языки? Ведь написать корректную программу рабора фразы на английском (хотя бы) языке и получения точного ее смысла еще не удалось никому. Тем не менее это самый популярный язык в мире. А почему? Видимо, потому, что человеку важен не синтаксис.


СГ>Не английский, а США-совский. И это очень существенное уточнение. Это потому, что мог бы быть русский, если бы произошла мировая революция; или немецкий если бы планы фашистов сбылись; или китайский если бы китайцы завоевалю всю евразию. Или японский, если бы у них у первых появилась ядерная бомба. А так как в холодной войне победили именно США, то и язык по всему миру ихний. Кроме того они и компы с программами для них первее всех расплодили. Аналогично у Java нет преимуществ перед Оберонами кроме как то, что за плечами Java стоит Sun. Аналогично про .NET с Microsoft.


Опять демагогия? Неважно, какой язык был бы распространен. Любой их них чрезвычайно сложен для корректного его разбора. Английский язык был приведен в качестве примера одного из простейших распространенных натуральных языков.
И тем не менее этими языками пользуются. Почему? Вывод очевиден — человек мыслит другими категориями. На синтаксис ему плевать. Попытка впихнуть человеческое мышление в строгие рамки "правильного" синтаксиса обречена на провал, что уже не раз доказывалось на практике.

Все, я утрачиваю интерес к этому разговору, завязываю. Вообще мои сообщения имели четкую цель — ответить на Ваш вопрос "доколе?". Я ответил. Захотите воспринять — воспримете. Нет — я ничего доказывать Вам не буду. Жизнь докажет. Эволюция, если хотите.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re[21]: Синтаксический оверхед
От: Курилка Россия http://kirya.narod.ru/
Дата: 23.06.05 08:57
Оценка: +3
Здравствуйте, Сергей Губанов, Вы писали:

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


CX>>А естественные языки? Ведь написать корректную программу рабора фразы на английском (хотя бы) языке и получения точного ее смысла еще не удалось никому. Тем не менее это самый популярный язык в мире. А почему? Видимо, потому, что человеку важен не синтаксис.


СГ>Не английский, а США-совский. И это очень существенное уточнение. Это потому, что мог бы быть русский, если бы произошла мировая революция; или немецкий если бы планы фашистов сбылись; или китайский если бы китайцы завоевалю всю евразию. Или японский, если бы у них у первых появилась ядерная бомба. А так как в холодной войне победили именно США, то и язык по всему миру ихний. Кроме того они и компы с программами для них первее всех расплодили. Аналогично у Java нет преимуществ перед Оберонами кроме как то, что за плечами Java стоит Sun. Аналогично про .NET с Microsoft.


Сергей, уважайте, пожалуйста, родной язык (если, конечно, русский для вас родной) — нет слова "ихний" в русском!
А утверждения далеки от правоты. Наводящий вопрос: США единственная страна, говорящая по-английски? Если вы хоть немного знаете историю и географию, то гораздо большее значение Англии, а не США (хотя влияние последних тоже немалое, но и туда английский из Англии пришёл)
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.