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

 
 
> Pascal для AVR
DMD
сообщение Nov 11 2008, 21:58
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 120
Регистрация: 19-02-08
Пользователь №: 35 166



Здравствуйте.
Ребят, посоветуйте хороший компилятор паскаля для AVR, в частности для серии ATTiny, но лучше для большинства (а то мало ли что).
И ещё, не подскажете - слишком придется "платить" за язык высокого уровня в смысле объема кода? А то тут проект светит, там на ассемблере далеко не уедешь, язык С скучный, хочу вот паскаль освоить...
Спасибо.


--------------------
Все будет хорошо! Я проверял!
Go to the top of the page
 
+Quote Post
35 страниц V  « < 11 12 13 14 15 > »   
Start new topic
Ответов (180 - 194)
dxp
сообщение Nov 29 2008, 12:08
Сообщение #181


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(Огурцов @ Nov 28 2008, 21:33) *
А если не видно разницы...(с) то нафиг этот билдер.

Если не видно разницы - то нафиг делфу. Бо билдер - это С++, который мэйнстрим и есть почти подо все, что шевелится.

Цитата(Огурцов @ Nov 28 2008, 21:33) *
И вообще, нафиг этот билдер - глюкало еще то.

Ага, особенно, если учесть, что в основе обоих одна и та же оболочка и VCL. Одинаковое глюкало.

Цитата(Огурцов @ Nov 28 2008, 21:33) *
либо VS.

Не надоело еще сравнивать несравнимые вещи? Когда VS научится лепить графические апликухи тем же способом, что и билдер, тогда и сравним. Уж Qt в противовес билдеру приводили бы, что-ли. Это была бы тема.

Цитата(Огурцов @ Nov 28 2008, 21:33) *
Наврено сам придумал. Но копирайт поставить не могу - вдруг прочитал где.

Вот это похоже на правду.

Цитата(Огурцов @ Nov 28 2008, 21:33) *
Ок, а иначе кто наследник ?

Зачем ему наследник? Он сам живее всех живых?.. Кто у делфы наследник? Аналогия понятна?

Цитата(Огурцов @ Nov 28 2008, 21:33) *
Ну не сравнивайте шарп и оригинальную (не java#) жабу по быстродействию. Шарповский X-код ложится прямо на команды таргета, а джава (не java#)- все-таки интерпретатор. Так что если вы по эффективности одного делаете предположение о другом, то ошибаетесь. Шарп по эффективности ничуть не хуже, чем це++, а по остальным критериям, включая легкость разработки, так и гораздо лучше.

Ой, не надо этих песен/басен! Разберитесь сначала в вопросе как следует, потом подискутируем. Хинт: разработавшие и применяющие жабу с шарпом поди не глупее нас с вами, если бы все было бы так, как вы пишете, уже давно на AVR бы на шарпе код лепили. Только хде ж он? 08.gif


Цитата(tyro @ Nov 28 2008, 21:59) *
В Delphi 2009 шаблоны есть. http://www.codegear.com/article/38622/imag...oUpgradeRUS.pdf

Не прошло и тридцати лет. biggrin.gif Еще осталось дождаться, пока в них глюки вычистят, научатся широко применять и появятся приемы типа описанных в "Modern C++ Design", а также делфовая STL. smile.gif


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Nov 29 2008, 15:03
Сообщение #182


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(dxp @ Nov 29 2008, 12:08) *
Ага, особенно, если учесть, что в основе обоих одна и та же оболочка и VCL. Одинаковое глюкало.

Нет. Был опыт, причем не только мой, но целой команды. После замены билдера на дельфи число необъяснимых глюков снизилось на порядки.

Цитата(dxp @ Nov 29 2008, 12:08) *
Не надоело еще сравнивать несравнимые вещи? Когда VS научится лепить графические апликухи

Вы, вообще, VS когда-нибудь запускали ?

Цитата(dxp @ Nov 29 2008, 12:08) *
Зачем ему наследник? Он сам живее всех живых?.. Кто у делфы наследник? Аналогия понятна?

Нет. Если он такой живой, зачем нужно было шарп создавать ? Ну писали бы все на си. Так ведь нет, народу почему-то паскаль подавай, дельфи, шарп и иже с ним. А был бы си такой хороший и кто бы дергался на что-то иное ?

Цитата(dxp @ Nov 29 2008, 12:08) *
Ой, не надо этих песен/басен! Разберитесь сначала в вопросе как следует, потом подискутируем.

Ок, не буду спорить. Возможно и жаба компилиться в таргет, а не интерпретируется как Х-код. Просто я вижу жутко тормозные жабовые приложения и шарп, который летает в полный рост. А по поводу оптимизации, это на аргумент предыдущего оратора, так оно зависит не от языка вообще, а от конкретной реализации компилятора. Абсолютно одинаково с це.

Цитата(dxp @ Nov 29 2008, 12:08) *
Хинт: разработавшие и применяющие жабу с шарпом поди не глупее нас с вами, если бы все было бы так, как вы пишете, уже давно на AVR бы на шарпе код лепили.

Скоро уже, подождите чуток ) А для ARM, MIPS уже можно ; Но что-то я уже повторяюсь.
Go to the top of the page
 
+Quote Post
ukpyr
сообщение Nov 29 2008, 15:52
Сообщение #183


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

Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347



Цитата
Забудьте об этом тупом неповоротливом языке

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

Сообщение отредактировал ukpyr - Nov 29 2008, 15:54
Go to the top of the page
 
+Quote Post
XVR
сообщение Nov 30 2008, 08:01
Сообщение #184


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(Огурцов @ Nov 29 2008, 18:03) *
Нет. Был опыт, причем не только мой, но целой команды. После замены билдера на дельфи число необъяснимых глюков снизилось на порядки.
Пишу на Builder'е начиная с 1й версии, необъяснимых глюков не встречал (объяснимые - встречал), может что то в 'команде' не так?



Во избежании обвинения в пристрастии к BCB, сразу говорю, что писал (и пишу) еще на VC, gcc, icc (x86 & Itanium), HiTech C.
Go to the top of the page
 
+Quote Post
Kopa
сообщение Nov 30 2008, 08:17
Сообщение #185


Знающий
****

Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861



Цитата(dxp @ Nov 28 2008, 07:04) *
Во как! А for(;;){} чем не угодило?


Тем, что как любой фиксированный синтаксически/семантически шаблон используется
в определённых ему рамках и пишется не задумываясь о его необходимости и
возможной негибкости при использовании.smile.gif ( т.е. "зашоренное" мышление )

А если требуется некое другое использование ( например доступ к счётчику цикла вне
данного цикла), то это может превратится в маленький ньюанс в понимании.

P.S. Но это не только в Си проявляется. beer.gif
Go to the top of the page
 
+Quote Post
777777
сообщение Dec 8 2008, 13:35
Сообщение #186


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

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



Цитата(ukpyr @ Nov 29 2008, 18:52) *
"поворотливость" программы зависитъ только от компилятора. язык тут ни при чем.

Неповоротливость, как и гибкость, зависят только от языка, но никак не от компилятора. Почему, например, для перевда буквы в нижний регистр нельзя просто установить бить 0x40, как в Си (c |= 0x40), а надо сначала получить код символа, выполнить с ним арифметическую операцию, а потом преобразовать опять в символ?
Цитата(ukpyr @ Nov 29 2008, 18:52) *
у любой конструкции С есть эквивалент в паскале, любую программу можно с минимальными изменениями перенести туда и обратно. так что не надо гнать на язык.

Вот например, недавно узнал, что оказывается внутри скобок begin-end нельзя объявлять локальные переменные. То есть, любая временная переменная, которая нужна на протяжении 3-4 строк, должна объявляться в начале функции и жить на всем ее протяжении. Да у меня в каждом цикле объявляются переменные а в конце цикла уничтожаются! А в паскале я должен позаботиться о них в начале функции, придумать им разные имена и т.д.?

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

Сообщение отредактировал 777777 - Dec 8 2008, 13:48
Go to the top of the page
 
+Quote Post
Aesthete Animus
сообщение Dec 8 2008, 15:49
Сообщение #187


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317



Цитата(777777 @ Dec 8 2008, 16:35) *
Вот например, недавно узнал, что оказывается внутри скобок begin-end нельзя объявлять локальные переменные. То есть, любая временная переменная, которая нужна на протяжении 3-4 строк, должна объявляться в начале функции и жить на всем ее протяжении. Да у меня в каждом цикле объявляются переменные а в конце цикла уничтожаются! А в паскале я должен позаботиться о них в начале функции, придумать им разные имена и т.д.?


Тут Вы неправы, хотябы потому, что С89 тоже требует объявлять переменные в начале функции и это мало кого смущало.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 8 2008, 16:01
Сообщение #188


Гуру
******

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



Цитата(Aesthete Animus @ Dec 8 2008, 18:49) *
Тут Вы неправы, хотябы потому, что С89

89??? 1989 год. Сколько лет прошло, по этой причине не помню, но то, что еще в 80-х годах на единственном более-менее доступном тогда борлондячем компиляторе можно было ограничивать область видимости и соответственно объявлять переменные внутри функции, это точно.
Цитата
...и это мало кого смущало.

Меня смущало-бы и даже очень.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
ukpyr
сообщение Dec 8 2008, 20:15
Сообщение #189


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

Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347



Цитата
Вот например, недавно узнал, что оказывается внутри скобок begin-end нельзя объявлять локальные переменные. То есть, любая временная переменная, которая нужна на протяжении 3-4 строк, должна объявляться в начале функции и жить на всем ее протяжении. Да у меня в каждом цикле объявляются переменные а в конце цикла уничтожаются! А в паскале я должен позаботиться о них в начале функции, придумать им разные имена и т.д.?

эти переменные не создаются/уничтожаются, а просто повторно используются одни и те же регистры. в паскале можно объявить одну переменную и повторно использовать в разных местах.
Цитата
очему, например, для перевда буквы в нижний регистр нельзя просто установить бить 0x40, как в Си (c |= 0x40)
а кто запрещает компилятору скомпилировать выражение c = c or $40 как установку бита ? вроде не проблема ?
вон в avr-gcc сначала устанавливать/обнулять биты приходилось через костыли cbi/sbi, потом научились делать через |=, &=~ . так что реализация таких мелочей зависит только от компиляторописателей, проблема паскаля в том, что он распространен значительно меньше чем С, соответственно намного меньше качественных компиляторов.

Сообщение отредактировал ukpyr - Dec 8 2008, 20:27
Go to the top of the page
 
+Quote Post
Aesthete Animus
сообщение Dec 8 2008, 21:21
Сообщение #190


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317



Цитата(ukpyr @ Dec 8 2008, 23:15) *
... проблема паскаля в том, что он распространен значительно меньше чем С, соответственно намного меньше качественных компиляторов.

Не путайте причину со следствием.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 8 2008, 22:29
Сообщение #191


Гуру
******

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



Цитата(ukpyr @ Dec 8 2008, 23:15) *
в паскале можно объявить одну переменную и повторно использовать в разных местах

Изумительно sad.gif При этом она будет жить и сохраняться и МЕЖДУ использованиями а использование переменной с одним и тем-же именем для РАЗНЫХ целей отнюдь не добавляет удобства и безошибочности.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
tyro
сообщение Dec 9 2008, 05:57
Сообщение #192


Любитель Кошек
*****

Группа: Свой
Сообщений: 1 593
Регистрация: 8-06-06
Пользователь №: 17 873



Цитата(zltigo @ Dec 9 2008, 01:29) *
Изумительно sad.gif При этом она будет жить и сохраняться и МЕЖДУ использованиями а использование переменной с одним и тем-же именем для РАЗНЫХ целей отнюдь не добавляет удобства и безошибочности.

Полагаю это справедливо для любого языка прогрпммирования.


--------------------
По современному этикету, в левой руке держат вилку, в правой - мышку.
Go to the top of the page
 
+Quote Post
forever failure
сообщение Dec 9 2008, 06:36
Сообщение #193


Местный
***

Группа: Участник
Сообщений: 256
Регистрация: 6-03-05
Из: Екатеринбург
Пользователь №: 3 112



В стандарте Ц89 переменную можно объявлять в любом месте в начале блока, а не только в начале функции, в том числе анонимного блока, не связанного ни с каким оператором ветвления. Напр.:
void func (int c, char cool.gif
{
int a;
a = b + c;
{
float f;
f = a + c;
}
}

По стандарту Ц99 переменную можно объявлять в любом месте, где допустима инструкция (как в Ц++).
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 9 2008, 07:12
Сообщение #194


Гуру
******

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



Цитата(tyro @ Dec 9 2008, 08:57) *
Полагаю это справедливо для любого языка прогрпммирования.

Вопрос в том, что есть реальные побудительные мотивы так "мудро" поступать или нет. А на мотивы уже язык свой отпечаток накладывает. Повторяю, именно реальные причины, а НЕ ВОЗМОЖНОСТЬ писать чего-либо через заднепроходное отверстие. В том-же "C" больше возможностей написать чего-либо через #@^#^%$ но МЕНЬШЕ ПРИЧИН это делать.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
777777
сообщение Dec 9 2008, 14:10
Сообщение #195


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

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



Цитата(forever failure @ Dec 9 2008, 09:36) *
В стандарте Ц89 переменную можно объявлять в любом месте в начале блока, а не только в начале функции, в том числе анонимного блока, не связанного ни с каким оператором ветвления. Напр.:
Код
void func (int c, char B)
    {
    int a;
    a = b + c;
     {
     float f;
     f = a + c;
     }
    }

Сишники обычно пишут так:
Код
void func (int c, char B)
    {
    int a = b + c;
       {
       float f = a + c;
       ...      
       }
    }

Ведь если вы объявляете новую переменную, то для того, чтобы с ней работать, а работа начинается с ее инициализации (за исключением редких случаев). Это, опять же, к вопросу о гибкости языка.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 09:32
Рейтинг@Mail.ru


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