OberonCore https://forum.oberoncore.ru/ |
|
PasWiki -- веселое pro-Pascal чтение https://forum.oberoncore.ru/viewtopic.php?f=8&t=1198 |
Страница 1 из 3 |
Автор: | Info21 [ Вторник, 14 Октябрь, 2008 23:14 ] |
Заголовок сообщения: | PasWiki -- веселое pro-Pascal чтение |
Программер, локализованный в провинции Альберта, Канада, пишет весело и наблюдательно: http://z505.com/cgi-bin/qkcont/qkcont.c ... -Directory Заодно можно английский подучить |
Автор: | Info21 [ Вторник, 14 Октябрь, 2008 23:23 ] |
Заголовок сообщения: | Re: PasWiki -- веселое pro-Pascal чтение |
Вот это, например: 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-битном железе было толкнуто наивному профессору... "Избыточная сложность как источник сверхприбыли." |
Автор: | 001 [ Четверг, 09 Апрель, 2009 03:27 ] |
Заголовок сообщения: | Re: PasWiki -- веселое pro-Pascal чтение |
Ну и чего он интересного и веселого пишет? По поводу Си: С точки зрения семантической выразительности, как известно языки Си и Паскаль примерно одинаковы. Но, тот автор придирается к синтаксису. Объективными качествами синтаксиса является только в той или иной мере наличие синтаксического оверхеда. Это begin/end вместо фигурных скобок или просто лишние слова заимствованные из естественных языков - TO, DOWNTO, THEN. И так далее. Бесспорно, синтаксического оверхеда в Паскале больше. Другое дело хорошо это или плохо - мнения на этот счет бывают разные... Также можно упомянуть Бритва Оккама. При проектировании языка Си придерживались именно этого принципа. И это объективно. Так что решения в дизайне языка Си (синтаксис, семантика) можно обосновать принципами и такими вещами, как синтаксический оверхед. Как можно обосновать дизайн языка Паскаль, кроме как личными пристрастиями автора - совершенно не понятно. |
Автор: | Сергей Губанов [ Четверг, 09 Апрель, 2009 10:15 ] |
Заголовок сообщения: | Re: PasWiki -- веселое pro-Pascal чтение |
>> Бесспорно, синтаксического оверхеда в Паскале больше. Это утверждение ложно. Бесспорно обратное утверждение. Не путайте количество нетерминалов с длиной лексем. |
Автор: | 001 [ Четверг, 09 Апрель, 2009 13:50 ] |
Заголовок сообщения: | Re: PasWiki -- веселое pro-Pascal чтение |
Как нетерминал может создавать синтаксических оверхед? В грамматику можно добавить сколь угодно много нетерминалов, и при этом язык, задаваемый ею не изменится. |
Автор: | Info21 [ Четверг, 09 Апрель, 2009 14:41 ] |
Заголовок сообщения: | Re: PasWiki -- веселое pro-Pascal чтение |
001 писал(а): Как нетерминал может создавать синтаксических оверхед? Зато убавить сколь угодно много нельзя.
В грамматику можно добавить сколь угодно много нетерминалов, и при этом язык, задаваемый ею не изменится. |
Автор: | Madzi [ Четверг, 09 Апрель, 2009 14:49 ] |
Заголовок сообщения: | Re: PasWiki -- веселое pro-Pascal чтение |
Рискну предположить, что всё-таки имелись ввиду терминалы. |
Автор: | Valery Solovey [ Четверг, 09 Апрель, 2009 15:20 ] |
Заголовок сообщения: | Re: PasWiki -- веселое pro-Pascal чтение |
001>Объективными качествами синтаксиса является только в той или иной мере наличие синтаксического оверхеда. Источник? 001>... или просто лишние слова... Источник? 001>Бесспорно, синтаксического оверхеда в Паскале больше. Почему бесспорно? Я бы и поспорил... Источник? 001 писал(а): Также можно упомянуть Бритва Оккама. При проектировании языка Си придерживались именно этого принципа. И это объективно. Вы уверены, что знаете, что такое бритва Оккама? 001 писал(а): Как нетерминал может создавать синтаксических оверхед? Как это возможно согласовать с бритвой Оккама. Приведите пример.В грамматику можно добавить сколь угодно много нетерминалов, и при этом язык, задаваемый ею не изменится. 001 писал(а): Так что решения в дизайне языка Си (синтаксис, семантика) можно обосновать принципами и такими вещами, как синтаксический оверхед. А доказать, что эти критерии достаточны обоснования, слабо?
|
Автор: | Madzi [ Четверг, 09 Апрель, 2009 15:34 ] |
Заголовок сообщения: | Re: PasWiki -- веселое pro-Pascal чтение |
Если уж говорить о терминалах и длине лексем, то язык μ вне конкуренции. |
Автор: | Валерий Лаптев [ Четверг, 09 Апрель, 2009 16:26 ] |
Заголовок сообщения: | Re: PasWiki -- веселое pro-Pascal чтение |
По поводу избыточности С и паскаля. Лично мне пофигу, что и как с теоретической точки зрения считается избыточным. А вот личные впечатления однозначны. После писания на С и С++ необходимость писать паскалевские then, begin, end, procedure, function, i:=i+1 меня просто раздражала. С увеличением проектов это раздражение постепенно проходило, поскольку в больших С++-проектах, особенно с шаблонами, тоже приходится писать много лишних знаков |
Автор: | Madzi [ Четверг, 09 Апрель, 2009 16:43 ] |
Заголовок сообщения: | Re: PasWiki -- веселое pro-Pascal чтение |
Просто примеры одной программы: Мю Код: {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. |
Автор: | Александр Ильин [ Четверг, 09 Апрель, 2009 17:20 ] |
Заголовок сообщения: | Re: PasWiki -- веселое pro-Pascal чтение |
Madzi писал(а): puts('Finished'); Программа на Мю пишет "Finished" автоматически?
|
Автор: | Vlad [ Четверг, 09 Апрель, 2009 17:26 ] |
Заголовок сообщения: | Re: PasWiki -- веселое pro-Pascal чтение |
001 писал(а): Объективными качествами синтаксиса является только в той или иной мере наличие синтаксического оверхеда. Не упоминайте словосочетание "синтаксический оверхед" всуе Флейм, возникший стараниями одного оберонщика (не буду показывать пальцем) в свое время на www.rsdn.ru, дискредитировал там оберон раз и навсегда |
Автор: | Валерий Лаптев [ Четверг, 09 Апрель, 2009 17:37 ] |
Заголовок сообщения: | Re: PasWiki -- веселое pro-Pascal чтение |
Vlad писал(а): Не упоминайте словосочетание "синтаксический оверхед" всуе Флейм, возникший стараниями одного оберонщика (не буду показывать пальцем) в свое время на http://www.rsdn.ru, дискредитировал там оберон раз и навсегда И очень жаль. Было бы хорошо иметь там форум по оберонам. |
Автор: | Info21 [ Четверг, 09 Апрель, 2009 18:32 ] |
Заголовок сообщения: | Re: PasWiki -- веселое pro-Pascal чтение |
Vlad писал(а): ... дискредитировал там оберон раз и навсегда Опять вранье. Реклама хорошая была. Учитывая объективную реальность.
|
Автор: | Madzi [ Четверг, 09 Апрель, 2009 22:55 ] |
Заголовок сообщения: | Re: PasWiki -- веселое pro-Pascal чтение |
Александр Ильин писал(а): Madzi писал(а): puts('Finished'); Программа на Мю пишет "Finished" автоматически?Нет. Забыл Кстати говоря, в Мю, только один цикл: WHILE описывается (<условие> операторы ). |
Автор: | Александр Ильин [ Пятница, 10 Апрель, 2009 05:22 ] |
Заголовок сообщения: | Re: PasWiki -- веселое pro-Pascal чтение |
Madzi писал(а): Александр Ильин писал(а): Программа на Мю пишет "Finished" автоматически? Нет. Забыл :( |
Автор: | А.П. [ Пятница, 10 Апрель, 2009 06:49 ] |
Заголовок сообщения: | Re: PasWiki -- веселое pro-Pascal чтение |
Валерий Лаптев писал(а): По поводу избыточности С и паскаля... После писания на С и С++ необходимость писать паскалевские 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 |
Автор: | Валерий Лаптев [ Пятница, 10 Апрель, 2009 07:42 ] |
Заголовок сообщения: | Re: PasWiki -- веселое pro-Pascal чтение |
Напомню тоже, что переход с Паскаля на С произошел в начале 90-х, когда в Ташкенте об Оберонах никто даже одной буквы не слыхал. То, что среда ББ позволяет - это нормально и правильно. И потом, в Турбо- системах тоже есть макросы (в турбоС точно был, а вот в Турбрпаскале - не помню). Для постороннего человека текст на паскале выглядит почти как нормальный английский текст. Но вот после скобок и лаконичности С это раздражало. Я так и понял создателей С: им хотелось писать как можно меньше символов, поэтому так и сделано. Они ж не преподы, а программеры, причем очень высокого класса. Вот и создавали для себя. |
Автор: | Info21 [ Пятница, 10 Апрель, 2009 09:56 ] |
Заголовок сообщения: | Re: PasWiki -- веселое pro-Pascal чтение |
Валерий Лаптев писал(а): Я так и понял создателей С: им хотелось писать как можно меньше символов, поэтому так и сделано. Они ж не преподы, а программеры, причем очень высокого класса. Вот и создавали для себя. Они просто через медленный терминал работали. Число литер было критичным. Что-то в этом роде. Никакого отношения ни к образованию, ни к классу.Кстати, я не верю, что они в 1970 были программерами высокого класса. В этом пункте часто путают высокую (количественно), но простую (качественно) сообразительность с классом программерства. Это как путать природные данные и общую функциональную подготовку с техникой какого-нибудь спорта. Вот пример из жизни: кратный чемпион мира и СССР по хоккею с мячом, впервые взявши бадминтонную ракетку в руки, тут же под ноль разделал 13-летнего пацана, год отзанимавшегося в секции. Но еще через год тот же чемпион (и по-прежнему действующий чемпион мира и СССР) у того же партнера не мог взять и одного очка. |
Страница 1 из 3 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |