OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 22 Август, 2019 22:55

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 43 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: PasWiki -- веселое pro-Pascal чтение
СообщениеДобавлено: Вторник, 14 Октябрь, 2008 23:14 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8169
Откуда: Троицк, Москва
Программер, локализованный в провинции Альберта, Канада, пишет весело и наблюдательно:
http://z505.com/cgi-bin/qkcont/qkcont.c ... -Directory
Заодно можно английский подучить :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PasWiki -- веселое pro-Pascal чтение
СообщениеДобавлено: Вторник, 14 Октябрь, 2008 23:23 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8169
Откуда: Троицк, Москва
Вот это, например:

They C Programmers Finally Got A Clue
http://z505.com/cgi-bin/qkcont/qkcont.c ... 20A%20Clue

What The Fuck Is This C Shit
http://z505.com/cgi-bin/qkcont/qkcont.c ... 20C%20Shit

PYTHON SUCKS
http://z505.com/cgi-bin/qkcont/qkcont.c ... ON%20SUCKS
Рецепт, предложенный тут (толкнуть Java и заодно продать дорогущие машины) был действительно реализован практически на моих глазах: Java на дорогущем 64-битном железе было толкнуто наивному профессору... "Избыточная сложность как источник сверхприбыли."


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PasWiki -- веселое pro-Pascal чтение
СообщениеДобавлено: Четверг, 09 Апрель, 2009 03:27 

Зарегистрирован: Четверг, 09 Апрель, 2009 02:45
Сообщения: 4
Ну и чего он интересного и веселого пишет?
По поводу Си:
С точки зрения семантической выразительности, как известно языки Си и Паскаль примерно одинаковы.
Но, тот автор придирается к синтаксису.
Объективными качествами синтаксиса является только в той или иной мере наличие синтаксического оверхеда.
Это begin/end вместо фигурных скобок или просто лишние слова заимствованные из естественных языков - TO, DOWNTO, THEN. И так далее.
Бесспорно, синтаксического оверхеда в Паскале больше. Другое дело хорошо это или плохо - мнения на этот счет бывают разные...
Также можно упомянуть Бритва Оккама. При проектировании языка Си придерживались именно этого принципа. И это объективно. Так что решения в дизайне языка Си (синтаксис, семантика) можно обосновать принципами и такими вещами, как синтаксический оверхед. :)

Как можно обосновать дизайн языка Паскаль, кроме как личными пристрастиями автора - совершенно не понятно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PasWiki -- веселое pro-Pascal чтение
СообщениеДобавлено: Четверг, 09 Апрель, 2009 10:15 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
>> Бесспорно, синтаксического оверхеда в Паскале больше.

Это утверждение ложно. Бесспорно обратное утверждение. Не путайте количество нетерминалов с длиной лексем.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PasWiki -- веселое pro-Pascal чтение
СообщениеДобавлено: Четверг, 09 Апрель, 2009 13:50 

Зарегистрирован: Четверг, 09 Апрель, 2009 02:45
Сообщения: 4
Как нетерминал может создавать синтаксических оверхед? :)
В грамматику можно добавить сколь угодно много нетерминалов, и при этом язык, задаваемый ею не изменится.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PasWiki -- веселое pro-Pascal чтение
СообщениеДобавлено: Четверг, 09 Апрель, 2009 14:41 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8169
Откуда: Троицк, Москва
001 писал(а):
Как нетерминал может создавать синтаксических оверхед? :)
В грамматику можно добавить сколь угодно много нетерминалов, и при этом язык, задаваемый ею не изменится.
Зато убавить сколь угодно много нельзя.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PasWiki -- веселое pro-Pascal чтение
СообщениеДобавлено: Четверг, 09 Апрель, 2009 14:49 
Аватара пользователя

Зарегистрирован: Суббота, 12 Июль, 2008 22:49
Сообщения: 572
Откуда: Россия, Санкт-Петербург
Рискну предположить, что всё-таки имелись ввиду терминалы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PasWiki -- веселое pro-Pascal чтение
СообщениеДобавлено: Четверг, 09 Апрель, 2009 15:20 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
001>Объективными качествами синтаксиса является только в той или иной мере наличие синтаксического оверхеда.
Источник?

001>... или просто лишние слова...
Источник?

001>Бесспорно, синтаксического оверхеда в Паскале больше.
Почему бесспорно? Я бы и поспорил... Источник?

001 писал(а):
Также можно упомянуть Бритва Оккама. При проектировании языка Си придерживались именно этого принципа. И это объективно.
Вы уверены, что знаете, что такое бритва Оккама?
001 писал(а):
Как нетерминал может создавать синтаксических оверхед?
В грамматику можно добавить сколь угодно много нетерминалов, и при этом язык, задаваемый ею не изменится.
Как это возможно согласовать с бритвой Оккама. Приведите пример.

001 писал(а):
Так что решения в дизайне языка Си (синтаксис, семантика) можно обосновать принципами и такими вещами, как синтаксический оверхед. :)
А доказать, что эти критерии достаточны обоснования, слабо?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PasWiki -- веселое pro-Pascal чтение
СообщениеДобавлено: Четверг, 09 Апрель, 2009 15:34 
Аватара пользователя

Зарегистрирован: Суббота, 12 Июль, 2008 22:49
Сообщения: 572
Откуда: Россия, Санкт-Петербург
Если уж говорить о терминалах и длине лексем, то язык μ вне конкуренции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PasWiki -- веселое pro-Pascal чтение
СообщениеДобавлено: Четверг, 09 Апрель, 2009 16:26 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3061
Откуда: Астрахань
По поводу избыточности С и паскаля.
Лично мне пофигу, что и как с теоретической точки зрения считается избыточным. А вот личные впечатления однозначны.
После писания на С и С++ необходимость писать паскалевские then, begin, end, procedure, function, i:=i+1 меня просто раздражала.
С увеличением проектов это раздражение постепенно проходило, поскольку в больших С++-проектах, особенно с шаблонами, тоже приходится писать много лишних знаков


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PasWiki -- веселое pro-Pascal чтение
СообщениеДобавлено: Четверг, 09 Апрель, 2009 16:43 
Аватара пользователя

Зарегистрирован: Суббота, 12 Июль, 2008 22:49
Сообщения: 572
Откуда: Россия, Санкт-Петербург
Просто примеры одной программы:

Мю
Код:
{1 $X1000 $Y0 (>X0 -X1 +Y2 ) }
{2 ƒT0 $N0 (^N1000 @1 +N1) ƒR0 ƒY1 -RT /RY :R2 ' seconds¶' }

'Execute Benchmark test 1000 times.¶'
'That is 1.000.000 loops!¶'
@2
'Finished¶'


С
Код:
// CBench1.mc--
// to be copied & pasted in a Memo
void Test1000() {
    nX=1000;
    nY=0;
    while(nX>0) {
        nX--;
        nY=nY+2;
    }
}
void TestManyLoops() {
    nT=Ticks();
    for(nN=0; nN<1000; nN++)
        Test1000();
    nR=Ticks()-nT/TicksPerSecond();
    puts(nR;2);
    puts(' seconds\n');
}

main() {
    puts('Execute Benchmark test 1000 times.\n');
    puts('That is 1.000.000 loops!\n');
    TestManyLoops();
    puts('Finished');
}


Basic
Код:
Test1000:
    X=1000 : Y=0
    WHILE X>0
        DEC X : Y=Y+2
    WEND
RETURN

TestManyLoops:
    T=TICKS
    FOR N=1 TO 1000
        GOSUB Test1000
    NEXT
    R=TICKS-T/TICKSPERSEC
    PRINT R USING 2;
    PRINT " seconds"
RETURN

BEGIN
PRINT "Execute Benchmark test 1000 times."
PRINT "That is 1.000.000 loops!"
GOSUB TestManyLoops
PRINT "Finished"
END


Pascal
Код:
Procedure Test1000;
begin
    nX:=1000;
    nY:=0;
    while nX>0 do begin
        dec(nX);
        nY:=nY+2;
    end;
end;

Procedure TestManyLoops;
begin
    nT:=Ticks;
    for nN:=1 to 1000 do
        Test1000;
    nR:=Ticks-nT/TicksPerSecond;
    write(nR,2);
    writeln(' seconds');
end;

begin
    writeln('Execute Benchmark test 1000 times.');
    writeln('That is 1.000.000 loops!');
    TestManyLoops;
    writeln('Finished');
end.


Последний раз редактировалось Madzi Четверг, 09 Апрель, 2009 22:56, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PasWiki -- веселое pro-Pascal чтение
СообщениеДобавлено: Четверг, 09 Апрель, 2009 17:20 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2309
Откуда: Россия, Томск
Madzi писал(а):
puts('Finished');
Программа на Мю пишет "Finished" автоматически?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PasWiki -- веселое pro-Pascal чтение
СообщениеДобавлено: Четверг, 09 Апрель, 2009 17:26 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
001 писал(а):
Объективными качествами синтаксиса является только в той или иной мере наличие синтаксического оверхеда.


Не упоминайте словосочетание "синтаксический оверхед" всуе :) Флейм, возникший стараниями одного оберонщика (не буду показывать пальцем) в свое время на www.rsdn.ru, дискредитировал там оберон раз и навсегда :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PasWiki -- веселое pro-Pascal чтение
СообщениеДобавлено: Четверг, 09 Апрель, 2009 17:37 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3061
Откуда: Астрахань
Vlad писал(а):
Не упоминайте словосочетание "синтаксический оверхед" всуе :) Флейм, возникший стараниями одного оберонщика (не буду показывать пальцем) в свое время на http://www.rsdn.ru, дискредитировал там оберон раз и навсегда :)

И очень жаль. Было бы хорошо иметь там форум по оберонам.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PasWiki -- веселое pro-Pascal чтение
СообщениеДобавлено: Четверг, 09 Апрель, 2009 18:32 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8169
Откуда: Троицк, Москва
Vlad писал(а):
... дискредитировал там оберон раз и навсегда
Опять вранье. Реклама хорошая была. Учитывая объективную реальность.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PasWiki -- веселое pro-Pascal чтение
СообщениеДобавлено: Четверг, 09 Апрель, 2009 22:55 
Аватара пользователя

Зарегистрирован: Суббота, 12 Июль, 2008 22:49
Сообщения: 572
Откуда: Россия, Санкт-Петербург
Александр Ильин писал(а):
Madzi писал(а):
puts('Finished');
Программа на Мю пишет "Finished" автоматически?

Нет. Забыл :(
Кстати говоря, в Мю, только один цикл: WHILE описывается (<условие> операторы ).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PasWiki -- веселое pro-Pascal чтение
СообщениеДобавлено: Пятница, 10 Апрель, 2009 05:22 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2309
Откуда: Россия, Томск
Madzi писал(а):
Александр Ильин писал(а):
Программа на Мю пишет "Finished" автоматически?
Нет. Забыл :(
А было бы забавно : ))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PasWiki -- веселое pro-Pascal чтение
СообщениеДобавлено: Пятница, 10 Апрель, 2009 06:49 

Зарегистрирован: Пятница, 02 Декабрь, 2005 14:35
Сообщения: 190
Откуда: Россия, Томск
Валерий Лаптев писал(а):
По поводу избыточности С и паскаля...
После писания на С и С++ необходимость писать паскалевские then, begin, end, procedure, function, i:=i+1 меня просто раздражала.
С увеличением проектов это раздражение постепенно проходило, поскольку в больших С++-проектах, особенно с шаблонами, тоже приходится писать много лишних знаков

Напомню еще раз. В ББ есть возможность настраиваемой автоподстановки (предложенной Федором Васильевичем, модуль Edit), благодаря которой в 2-3 касания клавиатуры набираются не только полные слова, но целиком базовые конструкции, да еще и с правильным форматированием, не говоря уже о 100% безошибочном наборе. Причем ассортимент автоподстановок легко расширить и подправить под личные вкусы или особенности программного проекта. Подобных фич, существенно сокращающих число касаний клавы, в ББ достаточно много.
Так что "удельная эргономичность" читабельность_текста/число_касаний_клавиатуры КП/ББ, на мой взгляд, вне конкуренции.
Типичный пример из школьной учебной практики. Надо провести черепшку вперед на 100 точек экрана и повернуть налево на 45 градусов. Пишем конспект на доске и в тетради: и 100; п 45; Нажимаем: и F5 100 End п 45 End Получилось 10 нажатий. Имеем программынй текст Ч.Идти( 100 ); Ч.Повернуть( 45 ); объемом в 30 символов. Экономия на касаниях - в 3 раза.
Каркасы процедур, циклов, условных операторов набираются не в ущерб читабельности еще более экономичным образом:
p F5 w F5 f F5 if F5 iff F5


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PasWiki -- веселое pro-Pascal чтение
СообщениеДобавлено: Пятница, 10 Апрель, 2009 07:42 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3061
Откуда: Астрахань
Напомню тоже, что переход с Паскаля на С произошел в начале 90-х, когда в Ташкенте об Оберонах никто даже одной буквы не слыхал.
То, что среда ББ позволяет - это нормально и правильно. И потом, в Турбо- системах тоже есть макросы (в турбоС точно был, а вот в Турбрпаскале - не помню).
Для постороннего человека текст на паскале выглядит почти как нормальный английский текст.
Но вот после скобок и лаконичности С это раздражало.
Я так и понял создателей С: им хотелось писать как можно меньше символов, поэтому так и сделано. Они ж не преподы, а программеры, причем очень высокого класса. Вот и создавали для себя.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PasWiki -- веселое pro-Pascal чтение
СообщениеДобавлено: Пятница, 10 Апрель, 2009 09:56 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8169
Откуда: Троицк, Москва
Валерий Лаптев писал(а):
Я так и понял создателей С: им хотелось писать как можно меньше символов, поэтому так и сделано. Они ж не преподы, а программеры, причем очень высокого класса. Вот и создавали для себя.
Они просто через медленный терминал работали. Число литер было критичным. Что-то в этом роде. Никакого отношения ни к образованию, ни к классу.

Кстати, я не верю, что они в 1970 были программерами высокого класса.
В этом пункте часто путают высокую (количественно), но простую (качественно) сообразительность с классом программерства.

Это как путать природные данные и общую функциональную подготовку с техникой какого-нибудь спорта.

Вот пример из жизни: кратный чемпион мира и СССР по хоккею с мячом, впервые взявши бадминтонную ракетку в руки, тут же под ноль разделал 13-летнего пацана, год отзанимавшегося в секции. Но еще через год тот же чемпион (и по-прежнему действующий чемпион мира и СССР) у того же партнера не мог взять и одного очка.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 43 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB