Ineu Опубликовано 19 апреля, 2006 Жалоба Поделиться Опубликовано 19 апреля, 2006 Maestro писал(а) Срд, 19 Апреля 2006 13:09 попрошу заметить мы сравниваем синтаксис языков а не сами языки, а синтаксис и си пхп и перл очень похож.... А сравнение $a = $a + 1 и a := a + 1 - это и есть сравнение синтаксиса. Совершенно не пойму, чем вторая запись лучше первой Цитата: использование "=" нам вбивается с первого класса и означает именно равенство двух величин. знак "==" взят с неба и на мой взгляд не очень удачно. он к примеру может означать "стопудово равно" ну или говоря математическим языком "тождественно равно" А знак := существовал вечно Повторюсь - Паскаль излишне формализован и очень часто производятся попытки обосновать его синтаксис с математической точки зрения. Опять же, имхо, программирование неразумно привязывать к математике (я имею в виду не математический аппарат в виде алгоритмов или методов, а именно внешнюю, формальную сторону математики). Цитата: Цитата: Удобно сразу видеть, строки ли сравниваются или численные значения. это чем же удобно? в голове надо держать в 2 раза больше операций. давайте для каждого типа переменных введем свои операции сравнения. во что тогда превратится программирование? Без контекста: if a = b.... Что такое a и b? Их можно конкатенировать? А умножать? Чему будет равен, например, остаток от деления a на b, если они окажутся строками? Цитата: Цитата: А Вы можете мне без контекста сказать, что такое в Паскале a and b? если вас так это интересует можно дизасемблировать и посмотреть НО МЫ ГОВОРИМ О СИНТАКСИСЕ а не о том во что этот синтаксис компилируется. о качестве скомпилированного кода я не спорю... Причем тут качество кода? Я говорю о том, что в Паскале принципиально разные операции записываются одинаково. Это хорошо? Цитата: точка с запятой это всего лишь знак препинания и несмотря на некоторую нелогичность чтению программы абсолютно не мешает и не усложняет Точка с запятой - это признак выделения логически атомарной операции, будь то единственный оператор или блок операторов. Подобная ситуация с точкой с запятой может обьясняться, имхо, только одним - Паскаль проектировался в рассчете на простоту и удобство написания компиляторов, а не на удобство программистов. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Sleeping Daemon Опубликовано 19 апреля, 2006 Жалоба Поделиться Опубликовано 19 апреля, 2006 А мне вообще i++ и a+=x больше нравится. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Hans R. Steiner Опубликовано 19 апреля, 2006 Автор Жалоба Поделиться Опубликовано 19 апреля, 2006 http://home.perm.ru/~strannik/st_txt_prog_02.html Цитата: попрошу заметить мы сравниваем синтаксис языков а не сами языки, а синтаксис и си пхп и перл очень похож.... синтаксис php и perl, далеко не так похож, как это кажется... с такой же долей убеждения, можно сказать, что у pascal и c синтаксис похож. Цитата: ...извините, но это бред что тут упрощать? использование "=" нам вбивается с первого класса и означает именно равенство двух величин. знак "==" взят с неба и на мой взгляд не очень удачно. он к примеру может означать "стопудово равно" ну или говоря математическим языком "тождественно равно" Верно! знак равенства, тут и используется как знак равенства. $a = $b + 1 тоже, что и x = y + 1 в данном случае, мы не думаем, равно ли оно... мы знаем, что одно равно другому, а касательно операций сравнения "==" - это и есть "стопудово равно" if ( $a == $ { если $a стопудово равно $b то и в данном контексте, подразумевается абсолютное равенство, в том числе, и типов переменных. Если Вам надо сравнить скаляр и строку то, воспользуйтесь оператором "eq". "==" и "eq" - это не синонимы Цитата: точка с запятой это всего лишь знак препинания и несмотря на некоторую нелогичность чтению программы абсолютно не мешает и не усложняет Ну если не смотреть на такие мелочи то, о "==" можно вообще закрыть тему и синтаксис у сей и сказать, что паскаля одинаковый. На самом деле, оно примерно так и есть... может я и ошибаюсь, но все это называется "языки Вирта"... кажется, Николус Вирт и положил начало этому синтаксису и кажется, дело начиналось с сей, в шестидесятых годах... Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Byte Опубликовано 19 апреля, 2006 Жалоба Поделиться Опубликовано 19 апреля, 2006 синтаксис того или иного языка - компромис между удобством написания программы программистом и сложностью компилятора исходя из предназначения языка. ИМХО, самая "золотая серидина" достигнута в С благодаря потому, что это УНИВЕРСАЛЬНЫЙ язык средего уровня разработанный ПРАКТИКАМИ Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Sleeping Daemon Опубликовано 19 апреля, 2006 Жалоба Поделиться Опубликовано 19 апреля, 2006 Hans R. Steiner писал(а) Срд, 19 Апреля 2006 15:42 На самом деле, оно примерно так и есть... может я и ошибаюсь, но все это называется "языки Вирта"... кажется, Николус Вирт и положил начало этому синтаксису и кажется, дело начиналось с сей, в шестидесятых годах... А Вы не могли бы вспомнить поподробнее, когда это Вирт придумал этот синтаксис? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Sleeping Daemon Опубликовано 19 апреля, 2006 Жалоба Поделиться Опубликовано 19 апреля, 2006 Byte писал(а) Срд, 19 Апреля 2006 15:58 синтаксис того или иного языка - компромис между удобством написания программы программистом и сложностью компилятора исходя из предназначения языка. ИМХО, самая "золотая серидина" достигнута в С благодаря потому, что это УНИВЕРСАЛЬНЫЙ язык средего уровня разработанный ПРАКТИКАМИ Не, "уневерсальный" язык был PL/1. И чем это кончилось мы знаем. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ineu Опубликовано 19 апреля, 2006 Жалоба Поделиться Опубликовано 19 апреля, 2006 Maestro писал(а) Срд, 19 Апреля 2006 14:27 и тем не менее именно паскаль признан наиболее приемлимым языком для обучения студентов программированию ИМЕЕННО ИЗ-ЗА ПРОСТОТЫ СИНТАКСИСА и именно поэтому он перерос в delphi и обрел бешеную популярность особенно среди разработчиков баз данных Поправочка - не из-за простоты синтаксиса, а согласно образовательных планов и инерции старых программистов А бешеную популярность Паскаль имеет исключительно на просторах бывшего Союза. Если у Вас есть примеры широко используемых программных продуктов не нашего производства, написанных на Паскале, будьте добры назвать их Цитата: на остальное отвечать не буду, ибо все равно исконным "сишникам" ничего не докажешь а программы на си,пхп и перл от этого все равно более читабельными не станут Конечно не докажете... Против здравого смысла не попрешь Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ineu Опубликовано 19 апреля, 2006 Жалоба Поделиться Опубликовано 19 апреля, 2006 Maestro писал(а) Срд, 19 Апреля 2006 14:34 if ($str_name = "vasya") Никакой нормальный программист такого не напишет. НИКОГДА. Такой конструкцией Вы присваиваете переменной значение ВАСЯ и тут же проверяете ее на истинность. Это бессмысленно Цитата: это реально приводит к ошибкам в программе, в отличие от безобидной ";" Присваивание и равенство запоминается довольно просто, а когда пытаешься полчаса разобраться, почему if a = b then something; работает, а if a = b then something; else something_else; .... вызывает ошибку компиляции - это жутко раздражает и далеко не безобидно. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
EL[michlen] Опубликовано 19 апреля, 2006 Жалоба Поделиться Опубликовано 19 апреля, 2006 Такая сишная конструкция: if (var = something()) { ... }очень удобна и полезна - одновременно и в var пишется возвращаемое значение, и проверяется. Часто используется, так что это отнюдь не бессмысленно. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ineu Опубликовано 19 апреля, 2006 Жалоба Поделиться Опубликовано 19 апреля, 2006 Maestro писал(а) Срд, 19 Апреля 2006 14:54 вы просто пытаетесь оправдать нечитабельность текса программы уместностью его(синтаксиса) применения Не пытаюсь. Единственно потому не пытаюсь, что программы на Си нечитабельны только для любителей Паскаля. Уверяю Вас - для меня программы на Паскале так же нечитабельны, как для Вас - программы на Си. Цитата: а воторых весь круг известных мне програмистов на наших нефтяных предприятиях для разработки под oracle использует именно delphi. каких то масштабных продуктов я действительно не знаю...но примеры разработки крупного проекта под заказ мне известны. как вам к примеру база данных пенсионного фонда? Никак. Я же просил привести примеры софта НЕ НАШЕГО ПРОИЗВОДСТВА. Это означает - созданных за пределами бывших соцстран. Цитата: Цитата: Никакой нормальный программист такого не напишет. НИКОГДА. Такой конструкцией Вы присваиваете переменной значение ВАСЯ и тут же проверяете ее на истинность. Это бессмысленно заметте это бессмысленно в рамках си во всех других языках программирования эта фраза имеет общепринятый смысл Это бессмысленно в - Си всех стандартов, Плюсах и прочих наследниках Си - Перле - ПХП Разнообразных скриптовых языках, копирующих синтаксис Си Какие Вы имеете в виду все другие языки программирования? Общеупотребительные, заметьте, всяческие Модулы, Обероны и т.д. - это экзотика. 2 EL Именно var = something(), но никак не var = "fixed_string" Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Hans R. Steiner Опубликовано 19 апреля, 2006 Автор Жалоба Поделиться Опубликовано 19 апреля, 2006 Sleeping Daemon писал(а) Срд, 19 Апреля 2006 12:59 Hans R. Steiner писал(а) Срд, 19 Апреля 2006 15:42 На самом деле, оно примерно так и есть... может я и ошибаюсь, но все это называется "языки Вирта"... кажется, Николус Вирт и положил начало этому синтаксису и кажется, дело начиналось с сей, в шестидесятых годах... А Вы не могли бы вспомнить поподробнее, когда это Вирт придумал этот синтаксис? Да... сорри... наврал... перечитал про AT&T UNIX, Вирта там не было Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ineu Опубликовано 19 апреля, 2006 Жалоба Поделиться Опубликовано 19 апреля, 2006 Maestro писал(а) Срд, 19 Апреля 2006 17:46 Цитата: что программы на Си нечитабельны только для любителей Паскаля. Уверяю Вас - для меня программы на Паскале так же нечитабельны, как для Вас - программы на Си. вам самим не смешно? и что у вас в тексте программ на паскале вызывает затруднения? точки с запятой? Мне смешно, что синтаксис Си вызывает у Вас затруднения. Что же касается меня, то в Паскале у меня вызывают затруднение (в языке вообще, а не только в синтаксисе): - избыточное количество текста (begin end в сравнении с {}) - абсолютная нелогичность языка (разделители операторов есть там, где их быть не должно и отсутствуют там, где им самое место) - неоднозначность многих операторов (or and ...) - крайне неудобный контроль типов данных - примитивная система ввода-вывода - неудобная работа с памятью, в частностью, с указателями Пока достаточно? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
EL[michlen] Опубликовано 19 апреля, 2006 Жалоба Поделиться Опубликовано 19 апреля, 2006 С точки зрения оценки синтаксиса достаточно вспомнить шаблоны в С++, чтобы паскалист ужаснулся =)) Впрочем, Паскаль вообще не предлагает ничего подобного, насколько я знаю. Или уже предлагает? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ineu Опубликовано 20 апреля, 2006 Жалоба Поделиться Опубликовано 20 апреля, 2006 Maestro писал(а) Чтв, 20 Апреля 2006 06:43 мне например до сих пор в падлу ставить перед каждой переменной значек "$"(напоминает чебурашку в бейсике) Ну... имхо, подобные обозначения вводились для простоты написания интерпретаторов, все-таки и перл, и пхп - скриптовые языки (особенно хорошо это видно на примере перла). А может просто традиция - все-таки в том же питоне переменные именуются без применения дополнительных символов. ЗЫ. А удачно получилось, что в конце концов сошлись на том, что самым лучшим для человека является то, что он досконально знает и чем ему удобнее пользоваться, пусть даже речь идет о синтаксисе Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
EL[michlen] Опубликовано 20 апреля, 2006 Жалоба Поделиться Опубликовано 20 апреля, 2006 Я тут натолкнулся на перечисление неочевидных (для новичка) возможных проблем, связанных с синтаксисом языка С. Не знаю, есть ли подобная статья для Паскаля, но для С там неплохо и довольно полно все сказано. здесь была ссылка Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ineu Опубликовано 21 апреля, 2006 Жалоба Поделиться Опубликовано 21 апреля, 2006 EL[michlen писал(а) Чтв, 20 Апреля 2006 21:30]Я тут натолкнулся на перечисление неочевидных (для новичка) возможных проблем, связанных с синтаксисом языка С. Не знаю, есть ли подобная статья для Паскаля, но для С там неплохо и довольно полно все сказано. Статья тут: http://www.visi.com/~pmk/evolved.html Куда-то не туда ссылка ведет Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
EL[michlen] Опубликовано 22 апреля, 2006 Жалоба Поделиться Опубликовано 22 апреля, 2006 Блин, точно не туда. Если опять найду, напишу. Пока убираю. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
EL[michlen] Опубликовано 22 апреля, 2006 Жалоба Поделиться Опубликовано 22 апреля, 2006 Нашел эту и еще кое-что интересное: http://www.andromeda.com/people/ddyer/topten.html http://www.ariel.com.au/a/teaching-programming.html Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex ro Опубликовано 17 августа, 2006 Жалоба Поделиться Опубликовано 17 августа, 2006 EvilShadow писал(а) Wed, 19 April 2006 19:18 Maestro писал(а) Срд, 19 Апреля 2006 17:46 Цитата: что программы на Си нечитабельны только для любителей Паскаля. Уверяю Вас - для меня программы на Паскале так же нечитабельны, как для Вас - программы на Си. вам самим не смешно? и что у вас в тексте программ на паскале вызывает затруднения? точки с запятой? Мне смешно, что синтаксис Си вызывает у Вас затруднения. Что же касается меня, то в Паскале у меня вызывают затруднение (в языке вообще, а не только в синтаксисе): - избыточное количество текста (begin end в сравнении с {}) - абсолютная нелогичность языка (разделители операторов есть там, где их быть не должно и отсутствуют там, где им самое место) - неоднозначность многих операторов (or and ...) - крайне неудобный контроль типов данных - примитивная система ввода-вывода - неудобная работа с памятью, в частностью, с указателями Пока достаточно? Применительно к микроконтроллерам ,скажу тоже самое ,было несколько паскалевых компилей ,даже с оптимизацией -кОшмар !!! А в системе контроля на мех.повреждения (псевдоинтеллектная система ) в качестве языка для задатчика путей и обработчика полученных данных (!) выбралИ все-таки Сишку (хотя на фирме работает 98% дельфистов) Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
egor604 Опубликовано 14 сентября, 2006 Жалоба Поделиться Опубликовано 14 сентября, 2006 обращу внимание на два неплохих места где приведен анализ сабжа: http://tnx.nl/php и http://shootout.alioth.debian.org/debian/benchmark.php?test= all&lang=perl&lang2=php Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.