Операторы в стиле C

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Re: Операторы в стиле C

Сообщение Ask » 03.09.2011 04:16:19

Maxizar писал(а):операции вида += на самом деле раскрывают себя только в C++, при перегрузке операторов, спасая от создания копии аргумента

Не знаю насчёт "только" -- но да, это ещё один хороший аргумент за += против Inc, спасибо.

Maxizar писал(а):В паскале взятие адреса и разименоавние указателя даже обозночаются по разному (@, ^) тогда как в С только *.

Timid писал(а): x++=1 Есть здесь ошибка? Синтаксически - нет.


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

alexs писал(а):Это за вас так решила фирма одна не бес-известная.

Не исключаю, что Microsoft сыграла свою роль, но факт остаётся фактом, каковы бы ни были его исторические предпосылки.

alexs писал(а):за красивыми выкладками о удобстве, скорости и т.д. и т.п. скрывается обыкновенная человеческая лень

Бывает и так.
С другой стороны, лень и незнание предмета также иногда проявляются в использовании общих фраз
в ответ на конкретные аргументы :-)

alexs писал(а):С сокращает нажатие кнопок на клавишах.

На башорг :-)
Ask
постоялец
 
Сообщения: 163
Зарегистрирован: 25.12.2008 03:51:37

Re: Операторы в стиле C

Сообщение Maxizar » 03.09.2011 09:12:01

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


Да ступил согласен я хотел сказать про ^ и * в паскале и С, значки для обозначения указателя и разименования указателя. В паскале хотябы пишут с разных сторон, а в С в обоих случаях слева.

PS. И да я согласен с вами лучше мне помолчать :oops:
Maxizar
постоялец
 
Сообщения: 385
Зарегистрирован: 20.03.2010 19:48:14

Re: Операторы в стиле C

Сообщение VKB » 07.09.2011 16:22:55

Здравствуйте.

Это нормальные операторы. Паскаль движется в правильном направлении (беря лучшее из своего предка, ALGOL68). Однако мне бесконечно жаль, что нынешние разработчики паскаля почему-то решили смешать стили и заимствовать синтаксис этих операторов из языка Си. Ведь синтаксически Паскаль - это практически ALGOL68. А там эти операторы выглядели так: +:=, -:=, *:=, /:=, %:= и %*:=.

Для языка Си было нормально переделать алгольные операторы на свой лад, это укладывается в общую систему построения синтаксиса Си. Но зачем было пихать это в таком виде в паскаль??

Казалось бы мелочь, но мне лично очень не хочется использовать эти операторы в сишном виде. И вся трагедия состоит в том, что теперь, когда уже началось использование этих операторов, будет намного сложнее вернуть паскалю более естественное для него их начертание...
VKB
новенький
 
Сообщения: 33
Зарегистрирован: 07.09.2009 13:57:35

Re: Операторы в стиле C

Сообщение vada » 08.09.2011 09:30:43

Это нормальные операторы. Паскаль движется в правильном направлении (беря лучшее из своего предка, ALGOL68). Однако мне бесконечно жаль, что нынешние разработчики паскаля почему-то решили смешать стили и заимствовать синтаксис этих операторов из языка Си.


На Си свет клином не сошелся. Есть еще и более другие языки использующие +=, -=, *=, /=. Помоему, очень логично их использовать в паскале с оператором :=. Все двухсимвольное. А городитьогород как в алголе68, на мой взгляд, избыточно. Один символ точно лишний, затеняющий чтение текста. А вот то что нет ++А или А++ это правильно. Не надо их. Си-шники постоянно придумывают себе геморой, типа, что получится
Код: Выделить всё
i = 1;
++i = i++ + --i;

ЗЫ. ALGOL68 вообще-то совсем не образец для подрожания.
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: Операторы в стиле C

Сообщение VKB » 08.09.2011 16:31:50

vada писал(а):На Си свет клином не сошелся. Есть еще и более другие языки использующие +=, -=, *=, /=. Помоему, очень логично их использовать в паскале с оператором :=. Все двухсимвольное. А городитьогород как в алголе68, на мой взгляд, избыточно. Один символ точно лишний, затеняющий чтение текста. А вот то что нет ++А или А++ это правильно. Не надо их. Си-шники постоянно придумывают себе геморой, типа, что получится
Код: Выделить всё
i = 1;
++i = i++ + --i;

ЗЫ. ALGOL68 вообще-то совсем не образец для подрожания.

Ну вот видите как получается, компьютерные языки сродни человеческим. И у тех, кто их использует, есть свои предпочтения. Я вот, например, в целом ничего не имею против языка Си. Но мне активно не нравится его синтаксис (а также синтаксис всех "более других" языков, производных от Си). Это просто личная неприязнь, рационально объяснить её трудно. При этом я не пытаюсь всем доказать, что язык Си - плох вообще. Он плох для меня лично. Почему я должен мучиться и писать на языке с неприятным мне синтаксисом, если есть возможность писать на приятном?

Что же касается языка ALGOL68, то он действительно неподражаем. Конечно в нём не было ООП, но в остальном это очень хорошо продуманный и в определённом смысле совершенный язык программирования. А Паскаль очень близок к нему, перенял от него синтаксис почти полностью. Я бы с большим удовольствием писал на Алголе68, но, к сожалению, единственный работающий транслятор Алгола68 у меня был 20 лет назад на ЕС ЭВМ.
VKB
новенький
 
Сообщения: 33
Зарегистрирован: 07.09.2009 13:57:35

Re: Операторы в стиле C

Сообщение vada » 08.09.2011 16:46:32

единственный работающий транслятор Алгола68 у меня был 20 лет назад на ЕС ЭВМ

Приходилось щупать этого зверя. По мне так он совершенно не читаемый. У всех людей свое восприятие.
Мне, например, совсем не нравятся паскалевские Inc(A) Dec(A), но ++A и --A нравятся еще меньше. А вот A += 1; устраивает со всех сторон. Все мы человеки и все очень разные.
На Free Pascal совсем не обязательно пользоваться всяческими синтаксическими новшествами. Тем он и привлекателен. Хочешь так, а хочешь и так. Правда не все одинаково работает.

ЗЫ. Алгол жив! Гугл много чего находит.
http://www.algol68.org/
http://sourceforge.net/projects/algol68/
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: Операторы в стиле C

Сообщение VKB » 12.09.2011 15:23:13

У нас уже начинается офф-топик, но, с моей точки зрения, нечитаемость алгола68 - это миф. И уж во всяком случае его "нечитаемость" не хуже чем у перла, который считается вполне себе современным и используемым языком. На любом языке можно написать совершенно нечитаемую программу.

Алгол68 шире паскаля, это никогда никем не скрывалось. Изначальный Паскаль - сознательное упрощение Алгола68. Потом конечно в Паскаль были добавлены новые идеи, но алгольный синтаксис почти не пострадал (наибольший урон ему был нанесён как раз этими операторами в стиле Си). Так что если хотите писать на Алголе68 программы, читаемые паскалистами - просто пишите в стиле Паскаля. И действительно там многие конструкции можно записать настолько короче, чем на паскале, что новичку их будет трудно понять. Но это лишь дело привычки (хотя, думаю, существует очень мало программистов, кто имеет такие навыки в алголе68).

Приведу один пример. В паскале, а также и в Си символы выделения блока алгоритма и блока формул различаются - begin/end, {} против (). В алголе68 это одно и тоже. Концепция Алгола68 не разделяет эти понятия. Любой блок генерирует некоторое значение, которое может быть использовано снаружи, то есть ведёт себя также, как скобки в формуле. Никто не запрещает Вам писать в стиле Паскаля/Си на Алголе68. Но при этом можно использовать конструкции языка, которые будут давать более эффективный (а иногда и более читаемый в виду меньшей громоздкости) код. Паскаль, Си активно используют оптимизаторы. Алгол68 позволяет сразу писать более оптимальный код.

На приведённые Вами ссылки я периодически захожу, но пока тот проект ещё в "игрушечном" состоянии. Там реализован только интерпретатор. С его помощью можно изучать язык, писать скрипты. Сам интерпретатор написан, кстати, на языке Си.
VKB
новенький
 
Сообщения: 33
Зарегистрирован: 07.09.2009 13:57:35

Пред.

Вернуться в Free Pascal Compiler

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

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

Рейтинг@Mail.ru