реклама на сайте
подробности

 
 
35 страниц V  « < 15 16 17 18 19 > »   
Reply to this topicStart new topic
> Pascal для AVR
zhevak
сообщение Dec 11 2008, 06:45
Сообщение #241


Знающий
****

Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065



Цитата(ARV @ Dec 11 2008, 11:04) *
сначала в сторону сравнения машин увели, потом отказываетесь сравнивать их по техническим (т.е. объективным) параметрам, ссылаясь на личные пристрастия или какие-то условия эксплуатации (правила и т.п.), т.е. субъективные причины. это некорректно и неуважительно по отношении к оппоненту. собственно, особого уважения к оппоненту от вас и не заметно было с самого начала...


Простите, ну ведь это Ваш способ гасить оппонента в споре?
Цитата
это "ограничение паскаля" вовсе не критичное - оно совершенно не мешает программированию.



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

Если Вас не устраивают те аргументы, которые приводятся Вам на протяжении всей ветки, то, извините, другого ничего нет. То, что Вы не хотите признать поражение Паскаля, это не наша вина, это Ваша убежденность. Оставайтесь там, где Вам удобно, и не подстрекайте людей на поиски доказательств.
Кому нужны доказательства, сам найдет. Кто слеп от рождения, тому бесполезно доказывать, что небо голубое, а трава зеленая.


Цитата
а вместо ответа вы начинаете изливаться словесным поносом. джентельмен так не поступает smile.gif
у вас есть подтверждение своих заявлений? предъявите. нет - извинитесь и перестаньте кидаться говном навозом.

* Простите, не Вам судить и указывать как мне себя вести.
* Классика! -- Месье сам, претендуя на звание джентльмена, не знаеет как пишется слово?
* Вот тут Вы правы, в сортах говна -- я разбираюсь намного хуже Вас. Мне действительно сложно отличить навоз от говна. Впрочем, обвинение в том, что я в Вас чем-то испачкал, требует доказательств. -- В студию!!!

Сообщение отредактировал zhevak - Dec 11 2008, 06:51


--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Dec 11 2008, 06:51
Сообщение #242


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(ARV @ Dec 11 2008, 09:11) *
по сравнению с полным аналогом WinAVR в ассемблерном листинге кроме таблицы векторов нет ни одной "вспомогательной" команды, которые Си постоянно лепит - инициализация переменных нулями, стеки данных и т.п. Не стану спорить - пример некорректный

Инициализация переменных - это фича конкретного компилятора, кстати не предусмотренная стандартом и отключаемая по желанию. Как и многие другие.
И вообще, если говорим "паскаль" и подразумеваем "Delphi", то смотрим на название темы и констатируем, что имеются некоторые несоответствия.
Главное преимущество си (++) - то, что он де-факто мировой стандарт. Причём не примочки борланда или мелкософта, а ANSI C. Мирового стандарта Pascal не существует.
Большинство открытых (также и закрытых) проектов также написаны на си.
Синтаксис большинства современных языков здорово смахивает на сишный.
Если всё-таки проводить аналогии с машинами, то в своё время многие автолюбители (и профессионалы) тащились от 24-й волги, но сейчас её время прошло.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
ARV
сообщение Dec 11 2008, 06:53
Сообщение #243


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



Цитата(777777 @ Dec 11 2008, 09:34) *
Даже синтаксис и набившие оскомину бегины с эндами имеют значение - зачем мне набивать 5 букв если можно поставить одну? Это не только отнимает время, но и мешает пониманию - объект, являющийся по сути лишь скобкой, выглядит как ключевое слово. А для чего нужно слово then? Ведь и без него все понятно.
придирки к особенностям синтаксиса выглядят смешными - я уже приводил сравнение с the или der-die-das - это особенности языка. веснушки на лице. вы же не станете говорить, что человек с веснушками - дебил, а чистолицый - умный? так и здесь. если для вас основное преимущество Си в том, что он позволяет быть более ленивым - так и скажите, чего юлить smile.gif а я скажу, что чем длиннее текст программы за счет длинных имен переменных, лексем языка и т.п. - тем ближе он к пониманию человеком, нативнее. так сказать. и я вижу в этом плюс, а не минус. но непринципиальный плюс - веснушку smile.gif

теперь о фортране, goto и невозможности. язык можно назвать плохим, если он не просто неудобен вам (например, из-за того, что вы слишком ленивы и не желаете набирать 3 символа вместо двух), а содержит явные рамки, сужающие ваши возможности, как узкий лифт не позволит инвалиду на коляске подняться на третий этаж. пример: бейсик (классический) не содержит такого инструмента, как указатель, и потому не позволяет манипулировать произвольными областями памяти. это ограничение существенное для многих приложений. далее: бейсик (классик) не содержит инструмента передачи параметров в подпрограммы и возврата результата из них - для этого используются глобальные переменные. это существенно затрудняет как процесс алгоритмизации, так и понимания логики уже готовой программы. понимаете - критерии, которые очевидны и действительно являются недостаткаи. важно вовсе не то, что в бейсике IF, а в Си if smile.gif если можете - повторите аналогично для Си-паскаль.

P.S. я не случайно уточнил, что бейсик я беру классический, ибо в последних версиях его возможности практически не отстают от Си. и призываю для корректного сравнения выбрать версии Си и паскаля "одной весовой категории" - если виртовский паскаль, то тогда ANSI C кернигана&ритчи, а если С++, то как минимум Delphi


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
777777
сообщение Dec 11 2008, 07:01
Сообщение #244


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(ARV @ Dec 11 2008, 09:27) *
блин, так откройте шоры! ну перечислите хотя бы что-то существенное, что нельзя сделать в паскале с той же легкостью. как в Си! у кого шоры?

У того, кто не видит таких примеров, которых, как я уже писал, приведено немало, но вы их видеть не желаете. Специально для вас привожу один - перевод символа в нижний регистр:

c |= 0x40;

Паскаль не позволяет проводить с символьными переменными арифметические операции. Впрочем, я догадываюсь, для вас такой пример "несущественный". Более того, вы считаете, что паскаль, не позволяя выполнять перевод символа таким простым способом, помогает программисту. Я же считаю, что мешает.
Цитата(ARV @ Dec 11 2008, 09:27) *
- пример с добалвением запятой или знака равенства в код - см. выше. - где комментарии?

Придумывание кодов и знаков, которые в него можно дабваить, чтобы код стал неработоспособным - давняя забава паскалистов. Только к практическому программиованию это не имеет отношения. Если вы добавили запятую и программа перестала работать - это будет видно по результатам ее работы. Следовательно нужно брать отладчик и искать ошибку. Если же программа не перестала работать - значит она исправна. Все.
Цитата(ARV @ Dec 11 2008, 09:27) *
компилятор-то отловит, только вам потом придется разбираться, какая из двух i неверно задана smile.gif

Та, которая используется для индексирования. Или это не очевидно?
Go to the top of the page
 
+Quote Post
ARV
сообщение Dec 11 2008, 07:13
Сообщение #245


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



Цитата(MrYuran @ Dec 11 2008, 09:51) *
Главное преимущество си (++) - то, что он де-факто мировой стандарт. Причём не примочки борланда или мелкософта, а ANSI C. Мирового стандарта Pascal не существует.
он не только де-факто... он и де-юре стандартизирован. а паскаль, увы, нет...
первое за всю тему значительное объективное подтверждение достоинства Си.
но, увы, не как достоинство самого языка... фортран тоже стандартизирован, если я не ошибаюсь, а возможности у них сильно отличаются... мы же, вроде, говорим (или пытаемся говорить) именно о сравнении возможностей языка...

Цитата(777777 @ Dec 11 2008, 10:01) *
У того, кто не видит таких примеров, которых, как я уже писал, приведено немало, но вы их видеть не желаете. Специально для вас привожу один - перевод символа в нижний регистр:

c |= 0x40;

вам уже говорили, что для UTF8, например, такой перевод не прокатит - вашу программу придется страшно долго корректировать, чтобы она смогла переводить регистр символов в этой кодировке. так же это не сработает для Кириллицы и других языков в UNICODE - примеров много. есть кодировки и более экзотические.
а преобразование ch := locase(ch), являющееся традиционным для паскаля, сработает всегда.

что лучше?
Цитата(777777 @ Dec 11 2008, 10:01) *
Придумывание кодов и знаков, которые в него можно дабваить, чтобы код стал неработоспособным - давняя забава паскалистов. Только к практическому программиованию это не имеет отношения. Если вы добавили запятую и программа перестала работать - это будет видно по результатам ее работы. Следовательно нужно брать отладчик и искать ошибку. Если же программа не перестала работать - значит она исправна. Все.
не все. это имеет очень большое значение в реальном программировании.
я спрашивал, как долго вы будете среди 10000 строк искать случайно набранный символ в отладчике? ну дрогнула у вас рука при вводе - бывает, не так ли?
самое интересное, что если я вместо практически любого = поставлю == - компилятор Си проглотит это практически со 100% вероятностью даже без ворнинга (если повезет - скажет, что строка удалена при оптимизации, т.к. не содержит использования результата операции или типа того). и программа после этого начнет работать... и для выяснения того, что она работает неверно - еще надо приложить немалые усилия...


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Dec 11 2008, 07:25
Сообщение #246


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(ARV @ Dec 11 2008, 10:13) *
самое интересное, что если я вместо практически любого = поставлю == - компилятор Си проглотит это практически со 100% вероятностью даже без ворнинга (если повезет - скажет, что строка удалена при оптимизации, т.к. не содержит использования результата операции или типа того). и программа после этого начнет работать... и для выяснения того, что она работает неверно - еще надо приложить немалые усилия...

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

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


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
ARV
сообщение Dec 11 2008, 07:29
Сообщение #247


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



MrYuran, да кто ж с этим спорить станет?! smile.gif вопрос в том, что программист - человек, и может нечаянно ошибиться. стоит ли в этом случае продолжать считать, что он прав? и на самом ли деле это есть преимушество? а контроль действий программиста - недостаток?
я согласен, что больше свободы - больше ответственности. а вы согласны с тем, что меньше законов - больше анархии?


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
msalov
сообщение Dec 11 2008, 07:33
Сообщение #248


Знающий
****

Группа: Свой
Сообщений: 526
Регистрация: 24-08-07
Из: Беларусь, Минск
Пользователь №: 30 045



Цитата(ARV @ Dec 11 2008, 09:13) *
самое интересное, что если я вместо практически любого = поставлю == - компилятор Си проглотит это практически со 100% вероятностью даже без ворнинга (если повезет - скажет, что строка удалена при оптимизации, т.к. не содержит использования результата операции или типа того). и программа после этого начнет работать... и для выяснения того, что она работает неверно - еще надо приложить немалые усилия...

Не всякий компилятор. gcc-3.4.5 выдаёт предупреждение при -Wall, а любое предупреждение - фактически ошибка. Другие компиляторы тоже не отстают smile.gif
Ищите другой пример wink.gif
Go to the top of the page
 
+Quote Post
ARV
сообщение Dec 11 2008, 07:36
Сообщение #249


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



я вот подумал, может, простейший пример паскалевского кода разберем?
Код
var str : string;
begin
   str := readln;
   writeln(str);
end.
сумеете написать полный, работающий абсолютно аналогично этому код на Си? и после этого сравним результат по размеру исходника. по размеру исполняемого кода (наверное, для консоли Windows проще всего)...

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


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Dec 11 2008, 07:39
Сообщение #250


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(ARV @ Dec 11 2008, 10:29) *
а вы согласны с тем, что меньше законов - больше анархии?

зато работать веселее. Такие бывают забавные глюки, если, например, во флотовом значении вместо точки поставить запятую.
Зато когда раскопаешь - триумф и ликование, и как обычно - "вот дятел!"


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
777777
сообщение Dec 11 2008, 07:44
Сообщение #251


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(ARV @ Dec 11 2008, 10:13) *
а преобразование ch := locase(ch), являющееся традиционным для паскаля, сработает всегда.

Разумеется, на практике следует пользоваться tolower(). Но вы хотели примеров - вот вам пример: паскаль не позволяет выполнять арифметические операции с символами. Да, для стандартных случаев, типа перевода регитра, еть функции, но случаи бывают и нестандартные.
Цитата(ARV @ Dec 11 2008, 10:13) *
я спрашивал, как долго вы будете среди 10000 строк искать случайно набранный символ в отладчике? ну дрогнула у вас рука при вводе - бывает, не так ли?

Отладка - обязательный процесс разработки программ. Может рука дрогнула, может плохое понимание алгоритма, может что-то еще - все это надо отлаживать. Не бывает прогармм, которые заработали сразу. И компилятор вам не поможет - не знает он, что вы хотите написать. И если при сложении целых вы написали не ту переменную, которую надо, а другую, которая тоже есть в программе - компилятор решит что так и надо и вы долго будете искать ошибку.
Цитата(ARV @ Dec 11 2008, 10:13) *
самое интересное, что если я вместо практически любого = поставлю == - компилятор Си проглотит это практически со 100% вероятностью даже без ворнинга

Вы заблуждаетесь.
AVR:
../tn.c:242: warning: suggest parentheses around assignment used as truth value
MSVC:
c:\users\... .cpp(307) : warning C4706: assignment within conditional expression
Go to the top of the page
 
+Quote Post
ARV
сообщение Dec 11 2008, 08:05
Сообщение #252


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



Цитата(gotty @ Dec 11 2008, 10:33) *
Не всякий компилятор. gcc-3.4.5 выдаёт предупреждение при -Wall, а любое предупреждение - фактически ошибка. Другие компиляторы тоже не отстают smile.gif
Ищите другой пример wink.gif
а я и говорил, если повезет - компилятор скажет про неиспользуемый результат smile.gif повторяю - я Си неплохо знаю. а что скажете про это:
Код
int a = b == c;
здесь тоже ворнинг будет? wink.gif

Цитата(777777 @ Dec 11 2008, 10:44) *
Разумеется, на практике следует пользоваться tolower(). Но вы хотели примеров - вот вам пример: паскаль не позволяет выполнять арифметические операции с символами. Да, для стандартных случаев, типа перевода регитра, еть функции, но случаи бывают и нестандартные.
никого не останавливает при этом использовать приведение типов (которое в Си сплошь и рядом применяется), а приведение типов и в паскале возможно smile.gif хотя, вообще говоря, символ в паскале - это не число, и вполне логично, что просто так его просуммировать с числом нельзя. контроль типов, знаете ли...


Цитата(777777 @ Dec 11 2008, 10:44) *
И компилятор вам не поможет - не знает он, что вы хотите написать. И если при сложении целых вы написали не ту переменную, которую надо, а другую, которая тоже есть в программе - компилятор решит что так и надо и вы долго будете искать ошибку.
это вам компилятор не поможет, ибо не знает. а паскаль знает, что знак присваивания может быть в строке только один, что целому нельзя присваивать результат логического выражения и т.п. в итоге большая часть ошибок дрожащих рук им будет найдена, избавляя меня от необходимости их искать вообще. а в остальном - да. отладку никто не отменял.

блин, не заметил, как скатился на выискивание недостатков в Си, что изначально не входило в мои планы smile.gif если можно - вернемся к выискиванию плохого в паскале smile.gif

Сообщение отредактировал ARV - Dec 11 2008, 08:09


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
777777
сообщение Dec 11 2008, 08:13
Сообщение #253


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(ARV @ Dec 11 2008, 11:01) *
а что скажете про это:
Код
int a = b == c;
здесь тоже ворнинг будет? wink.gif

А если в паскале написать a := b = c что будет?
Я вообще не понимаю, что это за доводы - написать какой-то бредовый код и сказать - вот смтрите, на Си можно написать неправильную программу, значит это плохой язык!
Цитата(ARV @ Dec 11 2008, 11:01) *
никого не останавливает при этом использовать приведение типов (которое в Си сплошь и рядом применяется), а приведение типов и в паскале возможно smile.gif

Приведение типов в Си используется в сомнительных случаях - например, если вы попытаетесь указателю присвоить целое - операция странная, но в редких случаях необходимая. Но если вы складываете char и int - это рядовая операция и ничего приводить не требуется.

Сообщение отредактировал 777777 - Dec 11 2008, 08:21
Go to the top of the page
 
+Quote Post
zhevak
сообщение Dec 11 2008, 08:17
Сообщение #254


Знающий
****

Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065



Цитата(ARV @ Dec 11 2008, 11:53) *
вы же не станете говорить, что человек с веснушками - дебил, а чистолицый - умный?...

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

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

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

я изменил некоторые термины и вот что получилось:
Цитата
язык можно назвать плохим, если он не просто неудобен вам (например, из-за того, что вы слишком напуганы лаконичностию си-шных лексем и желаете набирать BEGIN-END-PROCEDURE-FUNCTION-PROGRAM-THEN и т.д. вместо фигурных скобок), а содержит явные рамки, сужающие ваши возможности
...
это существенно затрудняет как процесс алгоритмизации, так и понимания логики уже готовой программы.

Да, да. Это особенно так, если учесть, что программист не понимает для чего нужны комментарии.

Цитата
примеров много. есть кодировки и более экзотические.
а преобразование ch := locase(ch), являющееся традиционным для паскаля, сработает всегда.

Эт-точно! В Си ведь отсутствует аналогичная библиотечная функция? Поэтому Си-шникам приходится колдовать с битами, что очень сильно усложняет понимание текста программы. Бред какой-то!


--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
Go to the top of the page
 
+Quote Post
ARV
сообщение Dec 11 2008, 08:32
Сообщение #255


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



Цитата(777777 @ Dec 11 2008, 11:13) *
А если в паскале написать a := b = c что будет?
будет ошибка компиляции, если а - число, а не логическая переменная. я не зря написал код на си с ЧИСЛАМИ. в паскале числа отдельно, символы - отдельно, логические отношения - отдельно, и только в Си мухи умножаются на котлеты и это считается нормальным.

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

а вот явно сужающие рамки возможности, о которых вы все время толкуете, так и остались виртуальными миражами - кроме жалкой попытки доказать, что символ и число на самом деле есть эквиваленты, ничего нету... почему не откликаетесь на предложение сравнить примитивнейший код, что я предложил выше? есть сомнения, что Си победит или что? давайте доказывать свою точку зрения фактами, а не словами. раз мы тут программисты - будем говорить на языках программирования, оставляя человеческие слова для комментариев smile.gif идет? wink.gif


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post

35 страниц V  « < 15 16 17 18 19 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 4th August 2025 - 08:47
Рейтинг@Mail.ru


Страница сгенерированна за 0.01547 секунд с 7
ELECTRONIX ©2004-2016