|
|
  |
Паскалевский компилятор для АРМов |
|
|
|
Nov 25 2006, 11:07
|
Местный
  
Группа: Участник
Сообщений: 256
Регистрация: 6-03-05
Из: Екатеринбург
Пользователь №: 3 112

|
Мосье Mos, Вам таки шашечки или всё-таки поехать ? Кто хочет что-то сделать - ищет средства, кто не хочет ищет причины. Если вам надо решить какую-то проблему не лучше ли ознакомится с широкодоступными средствами её решения, те более, как уже было выше отмечено, различия между языками C и Pascal это вообще смехотворная проблема, по сравнению с теми, коотрые решают эмбеддеры. Если Вы не находите в себе решимости ознакомится с Ц (а это очень простой язык, проще паскаля),- в микроконтроллерах вам делать нечего, лабайте формочки на делфях.
Конечно, привычный инструмент, удобнее, б/п, однако, если Вы профессионал, то язык для Вас - это знаковая система, оперирующая понятиями в основном одинаковыми что в одном, что в другом языке.
Точно также про ассемблер можно сказать - если знаете один архитектуру и систему команд (напр. x86), то Вам нетрудно (гыгы) будет изучить и другую (напр. ARM/Thumb).
|
|
|
|
|
Nov 25 2006, 19:07
|
Местный
  
Группа: Участник
Сообщений: 256
Регистрация: 6-03-05
Из: Екатеринбург
Пользователь №: 3 112

|
Цитата Ц - простой язык?? Если C кажется Вам сложным, попробуйте вкурить C++. Полностью. По стандарту. Вот уж точно С после этого покажется упражнением для школьника. И тем не менее С (и даже С++) проще Паскаля. В том смысле, что он строится на гораздо меньшем количестве базовых сущностей.
|
|
|
|
|
Nov 25 2006, 20:09
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Andy Great @ Nov 25 2006, 18:16)  плеваться на приоритеты (почему "||" больше приоритетом ">" ? ) К делу не относится, но зачем плеваться? Никто еще скобок, в том числе и для ясности никто не запрещал. А если нравится писать в стиле: if( a || b > c ) то запомните, что дело обстоит ровно наоборот и плеваться вообще незачем :-). Хотелось-бы узнать в чем Вы нашли отличие :-) : Цитата определиться с отличием *(a()) и (*a()) зачем запихнули лишние скобки? Для поиска отличий там где их нет? Можете еще десяток добавить. Я берусь добавить лишнего в выражение на любом языке, но разве это будет свидетельствовать о недостатках языка? Нет - о моих недостатках. Почему язык с меньшим числом приоритетов операций должен быть по этой причине лучше чем с большим? Цитата Попытайтесь ака бы забыть свое знание языков и сравнить их описание глазами начинающего. Попробую :-), причем в заданном Вами ключе.... Почему Вы на чисто русском языке услышав " 'а' больше 0 и 'b' больше 0 " я полагаю правильно расставите приоритеты, но на другом языке престаете понимать это-же дословно записанное: a > 0 and b > 0 и требуете (a > 0) and (b > 0) При этом ведь компилятор чуждого языка не будет протестовать против Вашего: (a > 0) and (b > 0) Вполне работоспособное для естественного языка выражение while ( i <= b ) and ( x[i] <> c ) do i := i+1 не работает если не нашли элемент массива равный 'c' По какой причине? По причине отсутствия в некоторых языках условных логических операций :-( Что сначала будет выполнено сравнение 'i' c 'b' или 'i'-того элемента массива с 'c'. Это игра в оорел/решка. У других языков 'лишних' приоритетов много, зато гарантии имеются, что сначала будет произведен контроль за выходом за границы массива. В общем есть с чем поразвлечься по полной программе начинающим и с Паскалем. Где-то встречал более, чем справедливое, предположение, что язык на котором писать 'плохие' программы будет хоть чуть-чуть сложнее, чем 'хорошие' не будет создан никогда.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Nov 26 2006, 13:57
|
Знающий
   
Группа: Свой
Сообщений: 793
Регистрация: 5-11-04
Из: Краматорск, Украина
Пользователь №: 1 057

|
Цитата(forever failure @ Nov 25 2006, 19:43)  ЗЫ. Кстати, может всё таки объясните с каих таких щей баня-то попадала, что приоритет || стал выше <? Может прежде чем плеваться, курнуть любой справочник по Ц в разделе operator precednce ? Виноват, исправляюсь. Выражение (a & 0x22 ==a) привожу в пример. По уму, сначала маску бы надо наложить, а выполняется сравнение. Вроде бы против здравого смысла. zltigo:Приоритет не той операции я хотел указать. В Паскале AND один для логических и битовых операций, оттого и казусы. Ну не предназначался Паскаль для таких целей. Со скобками я неудачный пример привел, каюсь. Где-то читал про тонкости Си, там были такие примеры, сейчас не найду.
|
|
|
|
|
Nov 26 2006, 15:10
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Andy Great @ Nov 26 2006, 12:57)  Где-то читал про тонкости Си, там были такие примеры, сейчас не найду. Так наверное и не надо - смысла особого нет. Естественно везде есть и тонкости и несуразности и вкусовщина :-(. На мой взгляд проблемы возникают только в том случае, когда кто-то хочет "сотворить себе кумира". Цитата Выражение (a & 0x22 ==a) привожу в пример. По уму, сначала маску бы надо наложить, а выполняется сравнение. Да! Можно-ли было еще усложнить правила - можно, например, отличать (a & 0x22 ==a) от ( a == 0x22 & a )? Mожно. Нужно? Думаю, что нет. Является ли принятые в "C" правила "золотой серединой" - не берусь утверждать. Но Паскалевские 4 уровня приоритетов еще меньше не нее похожи. Существуют-ли другие решения конкретно этой проблемы - существуют. Вплоть до радикальных решений на базе идеи Лукасевича. Стоит-ли применять - лет 20 назад я был-бы более категоричен - ДА!! Сейчас отвечу пожалуй более уклончиво. Причина пожалуй в опыте, в том я стал "чувствовать" языки. Я понимаю, что программирование становится все более массовым, шаблонным и многим начинает казаться что оно вообще может и должно быть однозначным, как инструкция к использованию таблицы умножения. Есть такой путь и на данный момент он наиболее отработан, но очевидно есть и прямо противоположный.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Nov 26 2006, 15:11
|

Профессионал
    
Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380

|
Цитата выражение (a & 0x22 ==a) привожу в пример. Некий дядя Брюс Эккель выразился следующим образом: "Программы пишутся один раз, а читаются много. Поэтому не нагромождайте синтаксичесие изыски, пишите так, чтобы читающий понял с первого взгляда, что вы хотели сказать, проритет операций ясно определяйте скобками " Тем более, что скобки избыточного кода не создают. Как и разбивка сложного выражения на несколько строк
--------------------
Вони шукають те, чого нема, Щоб довести, що його не існує.
|
|
|
|
|
Nov 26 2006, 16:50
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Andy Great @ Nov 26 2006, 15:27)  Возможно, сказывается наследие старых времен. ??? Цитата Хотя, где-то пробегала статья про синтаксис Си как первоапрельский розыгрыш КиР, который не поняли. Видел. Слабенькая шутка. Классичекий документ начала 80x "Настоящие прграммисты не используют Паскаль" много сильнее и многограннее.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|