Перейти к содержанию

Рекомендуемые сообщения

Опубликовано

Maestro писал(а) Срд, 19 Апреля 2006 13:09

попрошу заметить мы сравниваем синтаксис языков а не сами языки, а синтаксис и си пхп и перл очень похож....

А сравнение $a = $a + 1 и a := a + 1 - это и есть сравнение синтаксиса. Совершенно не пойму, чем вторая запись лучше первой Sad

Цитата:

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

А знак := существовал вечно Wink

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

Цитата:

Цитата:

Удобно сразу видеть, строки ли сравниваются или численные значения.

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

Без контекста: if a = b....

Что такое a и b? Их можно конкатенировать? А умножать? Чему будет равен, например, остаток от деления a на b, если они окажутся строками?

Цитата:

Цитата:

А Вы можете мне без контекста сказать, что такое в Паскале a and b?

если вас так это интересует можно дизасемблировать и посмотреть

НО МЫ ГОВОРИМ О СИНТАКСИСЕ а не о том во что этот синтаксис компилируется. о качестве скомпилированного кода я не спорю...

Причем тут качество кода? Я говорю о том, что в Паскале принципиально разные операции записываются одинаково. Это хорошо?

Цитата:

точка с запятой это всего лишь знак препинания и несмотря на некоторую нелогичность чтению программы абсолютно не мешает и не усложняет

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

Опубликовано

http://home.perm.ru/~strannik/st_txt_prog_02.html

Цитата:

попрошу заметить мы сравниваем синтаксис языков а не сами языки, а синтаксис и си пхп и перл очень похож....

синтаксис php и perl, далеко не так похож, как это кажется...

с такой же долей убеждения, можно сказать, что у pascal и c

синтаксис похож.

Цитата:

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

Верно! знак равенства, тут и используется как знак равенства.

$a = $b + 1 тоже, что и x = y + 1

в данном случае, мы не думаем, равно ли оно... мы знаем, что

одно равно другому, а касательно операций сравнения "==" - это

и есть "стопудово равно"

if ( $a == $B) {

если $a стопудово равно $b то

и в данном контексте, подразумевается абсолютное равенство, в том

числе, и типов переменных. Если Вам надо сравнить скаляр и строку

то, воспользуйтесь оператором "eq". "==" и "eq" - это не синонимы

Цитата:

точка с запятой это всего лишь знак препинания и несмотря на некоторую нелогичность чтению программы абсолютно не мешает и не усложняет

Ну если не смотреть на такие мелочи то, о "==" можно вообще

закрыть тему и синтаксис у сей и сказать, что паскаля одинаковый.

На самом деле, оно примерно так и есть... может я и ошибаюсь, но

все это называется "языки Вирта"... кажется, Николус Вирт и

положил начало этому синтаксису и кажется, дело начиналось с сей,

в шестидесятых годах...

Опубликовано

синтаксис того или иного языка - компромис между удобством написания программы программистом и сложностью компилятора исходя из предназначения языка. ИМХО, самая "золотая серидина" достигнута в С благодаря потому, что это УНИВЕРСАЛЬНЫЙ язык средего уровня разработанный ПРАКТИКАМИ

Опубликовано

Hans R. Steiner писал(а) Срд, 19 Апреля 2006 15:42

На самом деле, оно примерно так и есть... может я и ошибаюсь, но

все это называется "языки Вирта"... кажется, Николус Вирт и

положил начало этому синтаксису и кажется, дело начиналось с сей,

в шестидесятых годах...

А Вы не могли бы вспомнить поподробнее, когда это Вирт придумал этот синтаксис?

Опубликовано

Byte писал(а) Срд, 19 Апреля 2006 15:58

синтаксис того или иного языка - компромис между удобством написания программы программистом и сложностью компилятора исходя из предназначения языка. ИМХО, самая "золотая серидина" достигнута в С благодаря потому, что это УНИВЕРСАЛЬНЫЙ язык средего уровня разработанный ПРАКТИКАМИ

Не, "уневерсальный" язык был PL/1. И чем это кончилось мы знаем.

Опубликовано

Maestro писал(а) Срд, 19 Апреля 2006 14:27

и тем не менее именно паскаль признан наиболее приемлимым языком для обучения студентов программированию ИМЕЕННО ИЗ-ЗА ПРОСТОТЫ СИНТАКСИСА и именно поэтому он перерос в delphi и обрел бешеную популярность особенно среди разработчиков баз данных

Поправочка - не из-за простоты синтаксиса, а согласно образовательных планов и инерции старых программистов Smile

А бешеную популярность Паскаль имеет исключительно на просторах бывшего Союза. Если у Вас есть примеры широко используемых программных продуктов не нашего производства, написанных на Паскале, будьте добры назвать их Smile

Цитата:

на остальное отвечать не буду, ибо все равно исконным "сишникам" ничего не докажешь Smile

а программы на си,пхп и перл от этого все равно более читабельными не станут

Конечно не докажете... Против здравого смысла не попрешь Wink

Опубликовано

Maestro писал(а) Срд, 19 Апреля 2006 14:34

if ($str_name = "vasya")

Никакой нормальный программист такого не напишет. НИКОГДА. Такой конструкцией Вы присваиваете переменной значение ВАСЯ и тут же проверяете ее на истинность. Это бессмысленно Smile

Цитата:

это реально приводит к ошибкам в программе, в отличие от безобидной ";"

Присваивание и равенство запоминается довольно просто, а когда пытаешься полчаса разобраться, почему

if a = b then

something;

работает, а

if a = b then

something;

else

something_else;

....

вызывает ошибку компиляции - это жутко раздражает и далеко не безобидно.

Опубликовано

Такая сишная конструкция:

if (var = something())
{
   ...
}
очень удобна и полезна - одновременно и в var пишется возвращаемое значение, и проверяется. Часто используется, так что это отнюдь не бессмысленно.
Опубликовано

Maestro писал(а) Срд, 19 Апреля 2006 14:54

вы просто пытаетесь оправдать нечитабельность текса программы уместностью его(синтаксиса) применения

Не пытаюсь. Единственно потому не пытаюсь, что программы на Си нечитабельны только для любителей Паскаля. Уверяю Вас - для меня программы на Паскале так же нечитабельны, как для Вас - программы на Си.

Цитата:

а воторых весь круг известных мне програмистов на наших нефтяных предприятиях для разработки под oracle использует именно delphi. каких то масштабных продуктов я действительно не знаю...но примеры разработки крупного проекта под заказ мне известны. как вам к примеру база данных пенсионного фонда?

Никак. Я же просил привести примеры софта НЕ НАШЕГО ПРОИЗВОДСТВА. Это означает - созданных за пределами бывших соцстран.

Цитата:

Цитата:

Никакой нормальный программист такого не напишет. НИКОГДА. Такой конструкцией Вы присваиваете переменной значение ВАСЯ и тут же проверяете ее на истинность. Это бессмысленно

заметте это бессмысленно в рамках си

во всех других языках программирования эта фраза имеет общепринятый смысл

Это бессмысленно в

- Си всех стандартов, Плюсах и прочих наследниках Си

- Перле

- ПХП

Разнообразных скриптовых языках, копирующих синтаксис Си

Какие Вы имеете в виду все другие языки программирования? Общеупотребительные, заметьте, всяческие Модулы, Обероны и т.д. - это экзотика.

2 EL

Именно var = something(), но никак не var = "fixed_string"

Опубликовано

Sleeping Daemon писал(а) Срд, 19 Апреля 2006 12:59

Hans R. Steiner писал(а) Срд, 19 Апреля 2006 15:42

На самом деле, оно примерно так и есть... может я и ошибаюсь, но

все это называется "языки Вирта"... кажется, Николус Вирт и

положил начало этому синтаксису и кажется, дело начиналось с сей,

в шестидесятых годах...

А Вы не могли бы вспомнить поподробнее, когда это Вирт придумал этот синтаксис?

Да... сорри... наврал... перечитал про AT&T UNIX, Вирта там не было Smile

Опубликовано

Maestro писал(а) Срд, 19 Апреля 2006 17:46

Цитата:

что программы на Си нечитабельны только для любителей Паскаля. Уверяю Вас - для меня программы на Паскале так же нечитабельны, как для Вас - программы на Си.

вам самим не смешно?

и что у вас в тексте программ на паскале вызывает затруднения?

точки с запятой?

Мне смешно, что синтаксис Си вызывает у Вас затруднения. Что же касается меня, то в Паскале у меня вызывают затруднение (в языке вообще, а не только в синтаксисе):

- избыточное количество текста (begin end в сравнении с {})

- абсолютная нелогичность языка (разделители операторов есть там, где их быть не должно и отсутствуют там, где им самое место)

- неоднозначность многих операторов (or and ...)

- крайне неудобный контроль типов данных

- примитивная система ввода-вывода

- неудобная работа с памятью, в частностью, с указателями

Пока достаточно?

Опубликовано

С точки зрения оценки синтаксиса достаточно вспомнить шаблоны в С++, чтобы паскалист ужаснулся =)) Впрочем, Паскаль вообще не предлагает ничего подобного, насколько я знаю. Или уже предлагает?

Опубликовано

Maestro писал(а) Чтв, 20 Апреля 2006 06:43

мне например до сих пор в падлу ставить перед каждой переменной значек "$"(напоминает чебурашку в бейсике)

Ну... имхо, подобные обозначения вводились для простоты написания интерпретаторов, все-таки и перл, и пхп - скриптовые языки (особенно хорошо это видно на примере перла). А может просто традиция - все-таки в том же питоне переменные именуются без применения дополнительных символов.

ЗЫ. А удачно получилось, что в конце концов сошлись на том, что самым лучшим для человека является то, что он досконально знает и чем ему удобнее пользоваться, пусть даже речь идет о синтаксисе Smile

Опубликовано

Я тут натолкнулся на перечисление неочевидных (для новичка) возможных проблем, связанных с синтаксисом языка С. Не знаю, есть ли подобная статья для Паскаля, но для С там неплохо и довольно полно все сказано. здесь была ссылка

Опубликовано

EL[michlen

писал(а) Чтв, 20 Апреля 2006 21:30]Я тут натолкнулся на перечисление неочевидных (для новичка) возможных проблем, связанных с синтаксисом языка С. Не знаю, есть ли подобная статья для Паскаля, но для С там неплохо и довольно полно все сказано. Статья тут: http://www.visi.com/~pmk/evolved.html

Куда-то не туда ссылка ведет Hm

  • 3 месяца спустя...
Опубликовано

EvilShadow писал(а) Wed, 19 April 2006 19:18

Maestro писал(а) Срд, 19 Апреля 2006 17:46

Цитата:

что программы на Си нечитабельны только для любителей Паскаля. Уверяю Вас - для меня программы на Паскале так же нечитабельны, как для Вас - программы на Си.

вам самим не смешно?

и что у вас в тексте программ на паскале вызывает затруднения?

точки с запятой?

Мне смешно, что синтаксис Си вызывает у Вас затруднения. Что же касается меня, то в Паскале у меня вызывают затруднение (в языке вообще, а не только в синтаксисе):

- избыточное количество текста (begin end в сравнении с {})

- абсолютная нелогичность языка (разделители операторов есть там, где их быть не должно и отсутствуют там, где им самое место)

- неоднозначность многих операторов (or and ...)

- крайне неудобный контроль типов данных

- примитивная система ввода-вывода

- неудобная работа с памятью, в частностью, с указателями

Пока достаточно?

Применительно к микроконтроллерам ,скажу тоже самое ,было несколько паскалевых компилей ,даже с оптимизацией -кОшмар !!!

А в системе контроля на мех.повреждения (псевдоинтеллектная система ) в качестве языка для задатчика путей и обработчика полученных данных (!) выбралИ все-таки Сишку (хотя на фирме работает 98% дельфистов)

  • 4 недели спустя...

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...