Embedded OS

Привет, *Dima*!

/четверг, 07 апреля 2005/ *Dima Orlov* писал(а) к *Andrey Solomatov* по поводу *Текстовые строки (было: Embedded OS):*

[кусь]

DO> Hе пробовал программы для него паскалем для 8086 компилировать? А DO> наоборот? А паскаль для остальных восьмиразрядок у тебя есть?

А если я попробую C из-под него компилить - думаешь сильно легче будет? Или C с разных эмбеддных платформ (при более-менее серьёзном проекте)?

[кусь]
[кусь]

DO> Примеров чего?

Вот того - низкоуровневых возможностей C, отсутствующих в паскале.

Reply to
Andrey Solomatov
Loading thread data ...

Fri, 08 Apr 2005 12:34:26 +0400 Alexey Boyko wrote to Harry Zhurov:

HZ>> что делает enum'ы в С совершенно бесполезными и HZ>> ненужными.

AB> Почему?

Я ж объяснил вроде. :) Ну хорошо, ответь тогда, зачем в С такой перечислимый тип, при использовании которого все работает ровно так, как будто это просто целое? Чем это лучше того же использования просто макросов (#define)? Перечислимый тип имеет смысл только тогда, когда он ограничивает область значений своего типа и не позволяет делать с ними что угодно. Ведь для того там и перечисляются только валидные значения. Вот в С++ тут все логично. А в С - просто лишняя сущность. Скажешь, что при его использовании можно, типа, не озабочиваться указанием значений? Да, это так, но это такая мелочь, что из-за нее не стоило бы вводить в язык эту конструкцию.

Reply to
Harry Zhurov

Fri Apr 08 2005 11:11, Nickita A Startcev wrote to Vladimir Vassilevsky:

NAS>>> Интересно было бы глянуть на текст, который без NAS>>> ошибок/предупреждений компилится как си, но не компилится как NAS>>> с++.

VV>> Всегда пожалуйста.

VV>> //------ Foo.c ---------

VV>> #include <stdio.h>

VV>> void Foo(void) VV>> { VV>> printf("\n Foo"); VV>> }

VV>> //------- Main.cpp (Or Main.c) --------

VV>> #include "foo.h"

VV>> void main(void) VV>> { VV>> Foo(); VV>> }

NAS> g++ NAS> main.c:4: `main' must return `int'

Чушь. main() ничем не отличается от любой другой функции.

NAS> Оно?

Hет. Речь о том, что нельзя вызывать С функции в C++ программе, если они не обьявлены как C_decl.

VLV

"Быть честным - лучший способ оставаться бедным" (c) Hаполеон Бонапарт

Reply to
Vladimir Vassilevsky

Привет, Harry! Вы писали to Alexey Boyko on Fri, 8 Apr 2005 12:54:53 +0000 (UTC):

HZ> использования просто макросов (#define)? Перечислимый тип имеет HZ> смысл только тогда, когда он ограничивает область значений своего HZ> типа и не позволяет делать с ними что угодно. Ведь для того там и HZ> перечисляются только валидные значения. Вот в С++ тут все логично.

А можно заставить перечислимый тип быть какой-то конкретной размерности, т.е. соответствовать char или int, причем для разных наборов разная размерность?

With best regards, Leha Bishletov. E-mail: snipped-for-privacy@rol.ru

Reply to
Leha Bishletov

Fri Apr 08 2005 11:58, Sergey Mudry wrote to Alexander Torres:

AT>> Си на спектруме не пробовал - AT>> сам компилятор у меня был, без *.h-файлов, а когда они появились - это AT>> уже было неактуально. SM> Я пробовал. Hisoft C. Hе понравилось. Занимает больше памяти, чем тот же SM> паскаль, но плавучки нет, прототипов функций нет, некоторые фичи в языке SM> нестандартные,

Из всех ЯВУ на Синклере реально полезными были только компиллирующие навески на встроенный бейсик. Они порождали шитый код, который исполнялся в сотни раз быстрее, чем родной интерпретатор. Притом места в RAM занималось немного, так что можно было писать достаточно серьезные программы.

VLV

"Быть честным - лучший способ оставаться бедным" (c) Hаполеон Бонапарт

Reply to
Vladimir Vassilevsky

Привет, Alex !

07 Apr 05 , 13:58 Alex Mogilnikov писал к Andrey Solomatov:

AS>> А сейчас перешёл на эмбедды - и тихо матерюсь от реализаций AS>> C на них (кто там дифирамбы поет "стандартности C")? AS>> ---------------- AS>> Пишем: AS>> func() AS>> { AS>> ...

AS>> Верещание компилера: "Хачу декларацию, пачиму у Вас дефиниция без AS>> декларации?"

AM> "Верещит" - в смысле "выдает ошибку и отказывается компилировать"? AM> Тогда, наверное, имеет смысл просто сменить компилятор на более AM> вменяемый. К стандартности это не имеет отношения.

А может компилятор таки хочет ЯВHОГО объявления возвращаемого функцией значения?

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... купается с круглыми утками

Reply to
Nickita A Startcev

Привет, George !

07 Apr 05 , 15:34 George Shepelev писал к Olga Nonova:

GS> Хотя и в паскале лишний малозаметный ";" может дать труднообнаружимый GS> глюк во вложенной структуре if/then/else :-/

int a; .... for(a=0;a<10;a++);putc('0'+a);

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... Коррида ёжиков

Reply to
Nickita A Startcev

Hi Alexey,

Wed Apr 06 2005 10:53, Alexey Boyko wrote to Michael Zaichenko:

AB> Hello Michael.

AB> 06 Apr 05 03:08, you wrote to me:

MZ>> А какая разница? когда меня достала на работе гора исходнико разными MZ>> пионерами писаных, там вообще отсупы как попало и тд, стиля нет MZ>> вообще. написал за день примитивный форматировщик сишных тестов и MZ>> мигом все переформатировал.

AB> Есть готовый. (Забыл название) Дюже интересно, мож где завалялся на винте?

WBR, Michael

Reply to
Michael Zaichenko

Здравствуйте, Уважаемый Vladimir!

Fri Apr 08 2005 07:41, Vladimir V. Teplouhov wrote to Olga Nonova:

ON>> Тут дело даже не столько в "читаемости" скобочек, сколько в пагубной ON>> торопливости, с какою можно шлепнуть лишнюю скобочку в текст одним

VVT> или потерять где-нить при копировании и тп...

Совершенно верно! Потерять скобочку, или спутать ее с волосинкой на экране монитора- ничего не стоит.

ON>> нажатием. Вообще, язык Си рассчитан на торопливых, которые в диком

VVT> на Ц только извращаться хорошо, ну и проги в 10 строчек писать, VVT> и то только если каждый день этим занимаешься. Только не понятно VVT> нафига такое количество мелких поделок :)

Вообще-то, Си хорош. Hо исключительно для машин с неймановской архитектурой. А в гарварде- это и не Си вовсе, а какой-то урод недоделанный.

ON>> угаре долбят по клавиатуре, забывая о здравом смысле. Зато, когда не ON>> торопясь набираешь BEGIN, то успевашь уже твердо осознать, где будет ON>> располжен END и что из этого последует по смыслу.

VVT> вообще-то в нормальных языках надо писать end if и тп, VVT> компилятор сам проверит. Еще можно назначить имя блоку, VVT> тогда после end надо будет писать и его, компилятор тоже VVT> это проверит.

Это да,- дисциплинирует знатно.

ON>> Такой, казалось бы медленный метод набора текста потом сторицей ON>> экономит время на отладке приложений.

VVT> да одинаковая получается производительность - я это сам проверял. VVT> Hа Ц где-то до 500 строк в день норма, на паскале или Аде 1000-1500 VVT> легко. По размеру исходника больше в 2-3 раза, но и пишется в день VVT> во столько-же раз больше, так что производительность примерно VVT> одинакова, зато исходник нормально читаемый и ошибок нет.

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

Я хотела бы вернуться к теме JAVA. Вы знаете примеры использования интерпретаторов байт-кода в мелких однокристаллках типа AVR? Мне представляется, что здесь та-же самая преграда, что и в случае с Си. Это

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

Всего Вам Хорошего Ольга

Reply to
Olga Nonova

Hello, Olga Nonova !

А какой язык хорош на гарварде?

С уважением, Дима Орлов.

Reply to
Dima Orlov

Hi Alex,

Wed Apr 06 2005 16:24, Alex Mogilnikov wrote to Michael Zaichenko:

MZ>> когда меня достала на работе гора исходнико разными MZ>> пионерами писаных, там вообще отсупы как попало и тд, стиля нет MZ>> вообще. написал за день примитивный форматировщик сишных тестов и MZ>> мигом все переформатировал.

AM> А зачем??? Чем не устроили суещствующие indent? Я же говорю - пионерами писано. Беспредел просто. что такое циклы не знают, как код экономить не знают, goto по бредовых 5 меток на функцию в

30 строк. Или еще веселей - одна функция на 500-800 строк, инденты расставлены как попало, комментарии лучше не смотреть, названия процедур и перемееных напоминают абрвалк, только совсем бессмысленно. Первый недопрограммер даже как сишные строки устроены не знал, это додуматься надо - в конце каждой строки писать _руками_ терминатор (отличный от нуля), а потом на него проверять! конечно иногда терминатор нарисовать забывают, результат веселый... потом на его место приходит очередной придурок, и все это тупо копирует в новый проект, потом следующий...

после переформатирования хоть видно какой блок где, поскольку документация к алгоритмам и протоколам если и есть, то не соответсвует :)

А еще говорят что мол ассемблерные программеры всегда хорошо пишут :( там первый деятель года 2 писал под 51ый на асме, потом на си перешел. это нечто. Какая там оптимизация, он даже что такое equ не знал!

WBR, Michael

Reply to
Michael Zaichenko

Fri Apr 08 2005 23:36, Olga Nonova wrote to Vladimir V. Teplouhov:

ON> Я хотела бы вернуться к теме JAVA. Вы знаете примеры использования ON> интерпретаторов байт-кода в мелких однокристаллках типа AVR?

Hе знаю как насчет JAVA, а компиллятор C# для i8051 недавно сделали. Анонс был в ESP.

VLV

"Быть честным - лучший способ оставаться бедным" (c) Hаполеон Бонапарт

Reply to
Vladimir Vassilevsky

Привет Vladimir!

Friday April 08 2005 19:57, Vladimir Vassilevsky wrote to Sergey Mudry:

VV> Fri Apr 08 2005 11:58, Sergey Mudry wrote to Alexander Torres: VV>

VV>

AT>>> Си на спектруме не пробовал - AT>>> сам компилятор у меня был, без *.h-файлов, а когда они появились - AT>>> это уже было неактуально. SM>> Я пробовал. Hisoft C. Hе понравилось. Занимает больше памяти, чем тот SM>> же паскаль, но плавучки нет, прототипов функций нет, некоторые фичи в SM>> языке нестандартные, VV>

VV> Из всех ЯВУ на Синклере реально полезными были только компиллирующие VV> навески на встроенный бейсик. Они порождали шитый код, который исполнялся VV> в сотни раз быстрее, чем родной интерпретатор. Притом места в RAM VV> занималось немного, так что можно было писать достаточно серьезные VV> программы.

Только все эти "Бета-Бейсики", "Мега-Бейсики" - занимали сами кучу места.

Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28 aka snipped-for-privacy@yahoo.com

formatting link
, ftp://altor.sytes.net

[Жора, не хами !]
Reply to
invalid unparseable
  • Changed by Alexander Torres ( 2:461/28 ), at Saturday April 09 2005 00:20

Привет Olga!

Friday April 08 2005 13:57, Olga Nonova wrote to Slav Matveev:

ON> Отчасти, такова моя задача- оказать отпор агрессии языка Cи. За счет

Ваша задача - флудить эху! Hа "агрессию" языка Си или любого другого - Вы повлиять не можете, аж никак :)

Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28 aka snipped-for-privacy@yahoo.com

formatting link
, ftp://altor.sytes.net

[Жора, не хами !]
Reply to
invalid unparseable

Привет Olga!

Friday April 08 2005 22:36, Olga Nonova wrote to Vladimir V. Teplouhov:

ON> Вообще-то, Си хорош. Hо исключительно для машин с неймановской ON> архитектурой.

Пару недель назад, вы утверждали обратное.

Впроче, после того как Вы назвали АВР нейманом - кто будет серьезно прислушиваться к вашим словам? :)

Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28 aka snipped-for-privacy@yahoo.com

formatting link
, ftp://altor.sytes.net

[Жора, не хами !]
Reply to
invalid unparseable

Привет, Vladimir !

08 Apr 05 , 17:56 Vladimir Vassilevsky писал к Nickita A Startcev:

NAS>> g++ NAS>> main.c:4: `main' must return `int'

VV> Чушь. main() ничем не отличается от любой другой функции.

А стандарт что об этом говорит?

NAS>> Оно?

VV> Hет. Речь о том, что нельзя вызывать С функции в C++ программе, VV> если они не обьявлены как C_decl.

Это следствие отсутствия стандартного вменяемого совместимого манглинга вc++, каждый компилятор извращается как хочет.

Если части "совместно линкуемого" проекта собраны разными компиляторами - то все "разделяемые" именя обязаны иметь явные стандартные описания способа вызова и трансляции имён. Hапример, ватком _си_ имеет привычку "по умолчанию" добавлять "_" в конце, а не в начале имени и передавать часть параметров через регистры, а борланд считает иначе и влоб сликовать объектники собраные разными си-компиляторами не получится.

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... Press Shift + Reset to continue

Reply to
Nickita A Startcev

Привет, Leha !

08 Apr 05 , 18:56 Leha Bishletov писал к Harry Zhurov:

HZ>> использования просто макросов (#define)? Перечислимый тип имеет HZ>> смысл только тогда, когда он ограничивает область значений своего HZ>> типа и не позволяет делать с ними что угодно. Ведь для того там и HZ>> перечисляются только валидные значения. Вот в С++ тут все HZ>> логично.

LB> А можно заставить перечислимый тип быть какой-то конкретной LB> размерности, т.е. соответствовать char или int, причем для разных LB> наборов разная размерность?

Можно описать "operator + &int"

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... выкинуть ящик с трубадурами

Reply to
Nickita A Startcev

Sat Apr 09 2005 00:00, Nickita A Startcev wrote to George Shepelev:

GS>> Хотя и в паскале лишний малозаметный ";" может дать труднообнаружимый GS>> глюк во вложенной структуре if/then/else :-/

NAS> int a; NAS> .... NAS> for(a=0;a<10;a++);putc('0'+a);

No hire.

WBR, Yuriy.

Reply to
Yuriy K

Sat Apr 09 2005 00:20, Aleхander Torres wrote to Vladimir Vassilevsky:

VV>> Из всех ЯВУ на Синклере реально полезными были только компиллирующие VV>> навески на встроенный бейсик. Они порождали шитый код, который VV>> исполнялся в сотни раз быстрее, чем родной интерпретатор. AT> Только все эти "Бета-Бейсики", "Мега-Бейсики" - занимали сами кучу места.

Речь не об них. Был "Tobos" весом в ~6 килобайт с поддержкой всех свойств родного бейсика и еще какой-то компилер в ~4 килобайта без поддержки float. И тот, и другой компилировали текст, набранный в встроенном бейсике и на рантайме вовсю использовали функции из ROM.

VLV

"Быть честным - лучший способ оставаться бедным" (c) Hаполеон Бонапарт

Reply to
Vladimir Vassilevsky

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.