Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: PIC: Можно, я пока на Паскале?
Шарага > Soft - НЕ железо > Программирование МК
Страницы: 1, 2
orthodox
Собственно, навело на мысли упоминание Pasha о работе с Пиками на Паскале.
Я тот Паскаль немного знаю, писал на нем еще на PC, Нереттера переводил книгу в программный вид,
когда не было Микрокапов, чтобы хочь какое моделирование- симуляцию делать.
Помнится, тогда больше АС анализ рулил, занимались фильтрами много. Ну неважно.
А Си тогда был такой свободный, аж кажется без строгой типизации и прочего,
что ашипка на ашипке, пока сам себя не ограничишь до предела. Но были молоды и не ограничивали.
Короче, тогда я и полюбил Паскаль как язык. И много чего по нуждам работы своей на нем писали -
разное, не упомнить всего.

Что , если начать все же на нем, чтобы не все было непривычным, а хоть только предмет работы,
а с Си освоиться после? Паша, ведь Вы на Си и на Паскале параллельно работаете, как я понял, и ничего?

Прикупил я платку EasyPic5 от MikroEl .
Естественно, Паскаль для PIC ихний же. В комплекте шел, студенческий.
В первые же 5 минут помигал светодиодами, исходя их примеров что были там.
То есть врубился наконец-то, что все именно так просто, как мне и обещали.
даже еще проще, потому что перед тем много читал, думал год-два.

В общем, начать мне так проще, а переползать наверное буду после уже.
Да и супруга говорит, чтопо ее мнению, Паскаль создает ощущение дубовости и надежности,
что собственно и искали. А задачи у меня простые по программированию, может оно самое то и есть.
Если же нет — как-то переползу... Не спеша и с пониманием, для чего это делаю.
Опять же, комплект этот EasyPic5 имеет примеры и на Си, и сам Си туда входит - выбрать что хошь можно и аналогично действовать,
непосредственно сравнивая примеры на Паскале и на Си. То есть, вот так как-то... Годится, нет?
stells
Цитата(orthodox @ 10.12.2011, 15:23) *
В общем, начать мне так проще, а переползать наверное буду после уже.

а вроде есть трансляторы с Паскаля на Си? так наверное будет проще Си изучить?
orthodox
Цитата(stells @ 10.12.2011, 16:05) *
а вроде есть трансляторы с Паскаля на Си? так наверное будет проще Си изучить?

Да на уровне команд и синтаксиса я изучил.
Я за особенности боюсь.
_pasha
Цитата(orthodox @ 10.12.2011, 13:23) *
Нереттера переводил книгу в программный вид,
когда не было Микрокапов, чтобы хочь какое моделирование- симуляцию делать.

Что , если начать все же на нем, чтобы не все было непривычным, а хоть только предмет работы,
а с Си освоиться после? Паша, ведь Вы на Си и на Паскале параллельно работаете, как я понял, и ничего?

То есть, вот так как-то... Годится, нет?

1. Йоптыть, Брат-Близнец! drinks.gif Я тоже этим пострадал, +из пикадовского пдфа экстракт параметров и список цепей.. в общем, книгу потом прощёлкал где-то в переездах, дискеты утеряны безвозвратно, идейко заброшена после появления.. не помню, оркад ли, workbench ака мультисим ли, да и хрен с ними. Ввиду итогового гемора с подготовкой данных забросил и ваял калькуляторы - по Эраносяну, по книжечке "Алгоритмы и программы на Бейсике", по справочникам. А потом перелез на mathcad.
2. Более того, как фанат RAD больше склонен к паскалю и рекомендую PMP, хоть готовых вещей из-под него у меня не выходило. Еще в начале 90-х когда наблюдал "тише! тише! компилятор компилирует!" - это про борландячее Си и компиляция минут на 15-30, - не понимал, ибо на паскале не более минуты smile.gif.
3. Годится асм, остальное - вторично smile.gif На простых задачах - нет асма - нет шибкости, в смысле гибкости. Опечатка, блин.
dxp
QUOTE (orthodox @ 10.12.2011, 19:20) *
Да на уровне команд и синтаксиса я изучил.
Я за особенности боюсь.

Бояцца не нада, все вопросы сразу сюда, тут народ компетентный, сразу подскажут, что не так. Так процесс очень быстро пойдёт. И потом в других местах пригодицца. В отличие от.
_pasha
Цитата(dxp @ 10.12.2011, 15:50) *
В отличие от.

Искусственно заболтанного/заброшенного паскаля?
orthodox
Цитата(_pasha @ 10.12.2011, 16:59) *
Искусственно заболтанного/заброшенного паскаля?

Во. Паша, поддержите меня.
А то у мну это все на уровне подсознания,
чувствую, что так правильнее, а объяснить не могу..
Вот и мечусь...дайте аргументов...
Чисто как силовик—силовику.

Цитата(dxp @ 10.12.2011, 16:50) *
Бояцца не нада, все вопросы сразу сюда, тут народ компетентный, сразу подскажут, что не так. Так процесс очень быстро пойдёт. И потом в других местах пригодицца. В отличие от.

Да я не против, но сейчас и так сложно все, а Паскаль я все ж немного знаю, работал.
Что плохого в двуязычии? пусть Паскаль будет вторым государственным...

Цитата(_pasha @ 10.12.2011, 16:43) *
1. Йоптыть, Брат-Близнец! drinks.gif

Да мы все одним путем примерно шли...
разница только в длине пути..
Когда с Burner начали работать, то и до сих пор поражаюсь,
как одна мысль может разом приходить в две разных головы...



Цитата
3. Годится асм, остальное - вторично smile.gif На простых задачах - нет асма - нет шибкости, в смысле гибкости. Опечатка, блин.

Ну, как бы изучил...
Но поскольку у меня пока чуть не голая арифметика в «линию», как первое упражнение,
и мыслю на уровне регистров МК и его схемы, то и Паскалем, вероятно, приближенно похоже напишу.
А будут проблемы со скоростью — то сообщество, вероятно, поможет чего-то переписать,
на асм уже боюсь наплюхать с флагами и страничками.
perfect
А над любыми языками есть эээ алгоритм. А на каком уж языке может быть обеспечен...
_pasha
Цитата(orthodox @ 10.12.2011, 16:07) *
чувствую, что так правильнее, а объяснить не могу..
Вот и мечусь...дайте аргументов...
Чисто как силовик—силовику.

Аргументов могу дать только против паскаля. Потому что существующие сишные компиляторы проверены "в боевых условиях" на несколько порядков тщательнее, чем разработки персоналий либо фирм-одиночек. Потому что наработок в мире масса - за си. Идеология паскалевская в настоящее время намного упростила бы программирование, но, увы, нету того народного движения, на котором возможно развитие. Это как цеппелин. pardon.gif

Цитата(orthodox @ 10.12.2011, 16:14) *
на асм уже боюсь наплюхать с флагами и страничками.

Танунах. Это же всего лишь проблема размещения данных!
orthodox
Цитата(_pasha @ 10.12.2011, 17:16) *
Аргументов могу дать только против паскаля. Потому что существующие сишные компиляторы проверены "в боевых условиях" на несколько порядков тщательнее, чем разработки персоналий либо фирм-одиночек. Потому что наработок в мире масса - за си. Идеология паскалевская в настоящее время намного упростила бы программирование, но, увы, нету того народного движения, на котором возможно развитие. Это как цеппелин. pardon.gif

Н-да...Блин...
И на Си у меня к MikroEl есть перевод на русском, а к Паскалю пока нету...
Ладно, погоняю те и эти упражнения пока на том и на этом, после постараюсь остаться на Си.
Упражнения там одинаковые, так что можно сравнить и не бояцца.

Цитата(_pasha @ 10.12.2011, 17:18) *
Танунах. Это же всего лишь проблема размещения данных!

Ну, едва ли простое умножение лучше напишу сходу на АСМ...
Например, 16*16 ... А деление и вовсе...
Не говоря уж о чем ином.
_pasha
Цитата(orthodox @ 10.12.2011, 16:21) *
...Блин... MikroEl...

Ну, едва ли простое умножение лучше напишу сходу на АСМ...
Например, 16*16 ... А деление и вовсе...
Не говоря уж о чем ином.

1. Ы!
2. Нахрена мучачоться, если в аппликухах и примерах микрочипа все это есть? Куда сложнее плавучка и тригонометрия, но и они вполне оптимальные.
orthodox
Цитата(_pasha @ 10.12.2011, 17:26) *
2. Нахрена мучачоться, если в аппликухах и примерах микрочипа все это есть? Куда сложнее плавучка и тригонометрия, но и они вполне оптимальные.

У Микрочипа есть примеры? Я когда его ставил, нашел какие-то непонятные огрызки, пару штук, ни к чему не пришить.
Вероятно, плохо искал...

Цитата(_pasha @ 10.12.2011, 17:26) *
1. Ы!

А что "ы" ? Можно ж собственным их паскалем попользоваться...Для начала...
Ну, да.закрытые библиотеки, до этого еще не дошел...
Но ладно, в принципе все понятно более менее.
_pasha
Ы?
ЫЫ?

Цитата(orthodox @ 10.12.2011, 16:38) *
У Микрочипа есть примеры? Я когда его ставил, нашел какие-то непонятные огрызки, пару штук, ни к чему не пришить.
Вероятно, плохо искал...

orthodox
Цитата(_pasha @ 10.12.2011, 17:46) *

Н-да... Я и говорю - самообразование и обмен знаниями...
начни с нуля и разберись в потоке данных, отличи нужное от ненужного и за надежность даных никто не отвечает.
Нормально, атмосфера творческого сообщества, как будто PIC только что изобрели и никто ничего не стандартизировал.
А сама фирма словно и не думала, что его еще и программировать можно...
ну пока вот такое впечатление о ссылках сложилось.
типа, все на откуп пользователя—эмбедера и на его ответственность.

В общем, пока что-то не начну понимать, остаюсь на MicroEl и его примерах и его ИзяПик5, юзаю пока не пойму что-то.
Параллельно разбираясь с их Паскалем и Си. И не моя вина, если останусь на Паскале.. Но буду стараться, чтоб как все.
_pasha
А причем тут ымбед? Ыть все равно всех и вся проверять надо? Целочисленные алгоритмы, CORDICи там всякие - такой же тёмный лес, как и всё остальное. Только область определения/область значений можно тупо перебором проверить, это большушший плюс smile.gif
orthodox
Цитата(_pasha @ 10.12.2011, 18:06) *
А причем тут ымбед? Ыть все равно всех и вся проверять надо? Целочисленные алгоритмы, CORDICи там всякие - такой же тёмный лес, как и всё остальное. Только область определения/область значений можно тупо перебором проверить, это большушший плюс smile.gif

Да не,я не против..
Я там нашел уже кой-чего интересненькое, буду алгоритм немного править, если подтвердится.
Деление 32768 на переменную, собственно... Коротенько получилось у автора.
Перепроверить надо на допуски, там интерполяция применена...
Может пригодится, только надо формулу немного переписать.
Да у мну уже тех формул с штук 5, на все случаи жизни...
Все разные, есть даже вообще без умножений, только чуть похуже, но рабочие.
_pasha
Ага. Про FlowCode говорили? Например и первоисточник
Почти как схемный ввод в плисоводстве.
Всё. Убёг. До встречи в эфире.
Прохожий
Цитата(orthodox @ 10.12.2011, 15:23) *
Прикупил я платку EasyPic5 от MikroEl .
Естественно, Паскаль для PIC ихний же. В комплекте шел, студенческий.
В первые же 5 минут помигал светодиодами, исходя их примеров что были там.
То есть врубился наконец-то, что все именно так просто, как мне и обещали.
даже еще проще, потому что перед тем много читал, думал год-два.

В общем, начать мне так проще, а переползать наверное буду после уже.

Я тоже поддержу. Главное в этом деле - начало.
Сделать первый рабочий проект, который можно будет выпускать.
А уж на чем он будет сделан - абсолютно не важно.
Потребителю - все равно, а Вам должно быть комфортно.
В защиту Паскаля скажу, что этот язык лег в основу одного из 5 языков стандарта МЭК61131-3.
И является основным в системах CoDeSys, IsaGRAF,TwinCat и других.
И не спроста Паскаль применяется там, где требуется надежный код по умолчанию.
А насчет переползать, скажу, что это может и не потребоваться.
Или потребоваться не скоро.

orthodox
Цитата(Прохожий @ 10.12.2011, 20:10) *
Я тоже поддержу. Главное в этом деле - начало.
Сделать первый рабочий проект, который можно будет выпускать.
А уж на чем он будет сделан - абсолютно не важно.
Потребителю - все равно, а Вам должно быть комфортно.
В защиту Паскаля скажу, что этот язык лег в основу одного из 5 языков стандарта МЭК61131-3.
И является основным в системах CoDeSys, IsaGRAF,TwinCat и других.
И не спроста Паскаль применяется там, где требуется надежный код по умолчанию.
А насчет переползать, скажу, что это может и не потребоваться.
Или потребоваться не скоро.

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

PS Ну и конечно, синтаксис Си вызубрю по любому, чтобы понимать алгоритмы, что их много выложено преимущественно на нем.
Мало ли, встретится что полезное... smile.gif
dxp
QUOTE (_pasha @ 10.12.2011, 19:59) *
Искусственно заболтанного/заброшенного паскаля?

Вы какой паскаль имеете в виду? Стандартный образца 1983 года? А другого-то и нет.

QUOTE (_pasha @ 10.12.2011, 20:18) *
Идеология паскалевская в настоящее время намного упростила бы программирование

В чём упростила? В чём вообще там "особая паскалевская идеология" и чем она принципиально отличается от сишной? Чем вообще принципиально ЯП С отличается от ЯП Паскаль? Кроме синтаксиса, конечно.

Кстати, сегодня уже можно смело вместо С подставлять С++, т.к. этот ЯП уже уверенно и прочно занял все ниши С. Я уже и забыл, когда писал на голом С (наверное, лет 10 назад).
orthodox
Цитата(dxp @ 10.12.2011, 20:31) *
В чём упростила? В чём вообще там "особая паскалевская идеология" и чем она принципиально отличается от сишной? Чем вообще принципиально ЯП С отличается от ЯП Паскаль? Кроме синтаксиса, конечно.

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

Паскаль - многа букафф, но я нормально набираю на клаве, быстро.
А зрение не очень, отдельно точку-запятую могу и проглядеть.

Что до строгости - когда-то они отличались, но с тех пор Си много взял от Паскаля, если не ошибаюсь?
Что попало чему попало уже не присвоишь, так? Значит, можно после и на Си, просто пока кажется легче так, как получается...
Прохожий
Цитата(dxp @ 10.12.2011, 21:31) *
Кстати, сегодня уже можно смело вместо С подставлять С++, т.к. этот ЯП уже уверенно и прочно занял все ниши С.

А зачем?
ПМСМ, не всегда это надо.
Мы же уже где-то это обсуждали...
Пока нет большого количества наработок, коллектива разработчиков, дядиных отработанных классов или сложной иерархической системы, С++ никаких преимуществ по отношению к С не имеет. Да и грамотно разработать класс дано не каждому.
orthodox
Цитата(evgeny_ch @ 10.12.2011, 21:31) *
Большие реки начинаются с малых ручейков. © smile.gif
Паскаль Блез, сирота. pardon.gif


Цитата
«Человек, несомненно, сотворён для того, чтобы думать:
в этом и главное его достоинство, и главное дело жизни,
а главный долг в том, чтобы думать благообразно.
И начать ему следует с размышлений о себе самом»
Паскаль, «Мысли», 146

«Пусть не корят меня за то, что я не сказал ничего нового:
ново уже само расположение материала;
игроки в мяч бьют по одному и тому же мячу, но не с одинаковой меткостью.
С тем же успехом меня могут корить и за то,
что я употребляю давным-давно придуманные слова.
Стоит расположить уже известные мысли в ином порядке – и получится новое сочинение,
равно как одни и те же, но по-другому расположенные слова образуют новые мысли»
Паскаль, «Мысли»,22


А что по этому поводу говорил товарищ Си ?
_pasha
Цитата(dxp @ 10.12.2011, 19:31) *
Вы какой паскаль имеете в виду? Стандартный образца 1983 года? А другого-то и нет.


Цитата
In 1983, the language was standardized, in the international standard IEC/ISO 7185...
In 1990, an extended Pascal standard was created as ISO/IEC 10206.
In 1993 the ANSI standard was replaced by the ANSI organization with a "pointer" to the ISO 7185:1990 standard, effectively ending its status as a different standard.


Цитата
В чём упростила? В чём вообще там "особая паскалевская идеология" и чем она принципиально отличается от сишной? Чем вообще принципиально ЯП С отличается от ЯП Паскаль? Кроме синтаксиса, конечно.

Работа с boolean, множествами и строками на уровне базовых типов языка.


Цитата
Кстати, сегодня уже можно смело вместо С подставлять С++

Но это не для традиционных пикофф.
dxp
QUOTE (orthodox @ 11.12.2011, 0:15) *
Дык, в синтаксисе и дело-то.
Ну не получается у меня мысленно проговаривать то, что по умолчанию подразумевается
под пробелом или парой запятых подряд, на месте которых в случае, отличном от умолчания, что-то должно было бы быть.

Ну, это дело привычки. У сях для начинающих неприятности от синтаксиса возникают на выражениях типа:

int (*p[])(char * s);

что в переводе на русский означает массив указателей на функцию, принимающую указатель на char и возвращающую int. С непривычки ломает, конечно. Вся фишка тут в том, что разбор выражения идёт не слева направо, а изнутри. Т.е. ищется самое внутренне подвыражение - в данном случае это имя p, от него и все танцы. Потом идёт разбор по правилам - сначала правые операторы, потом левые. В нашем случае справа оператор массива, значит р - это массив. Далее, справа ничего больше нет (скобка заканчивается), тогда смотрим налево - там оператор разыменовывания, т.е. наш объект имеет тип указателя, а т.к. это, как выяснилось выше, массив, то получаем массив указателей. В скобках разобрали, выходим за скобки, снова смотрим вправо - там оператор функции (скобки круглые), значит у нас это массив указателей на функцию с указанным типом аргумента. Ну, и финально - функция возвращает целое. Вуаля.

Но никто не заставляет такие выражения сходу использовать. И без них можно писать успешные программы. И до таких объектов дело дойдёт. smile.gif

Больше там синтаксических извратов особо и нет. А вот семантических нюансов полно, я их и имел в виду. Одни нюансы на стандартных преобразованиях чего стоят. Над этим надо немного помедитировать. smile.gif

QUOTE (orthodox @ 11.12.2011, 0:15) *
Что до строгости - когда-то они отличались, но с тех пор Си много взял от Паскаля, если не ошибаюсь?
Что попало чему попало уже не присвоишь, так? Значит, можно после и на Си, просто пока кажется легче так, как получается...

Скорее С взял не от Паскаля, а от С++. Обязательность прототипов функций, запрет на неявное преобразование указателей в числовые типы и обратно и прочее.

QUOTE (Прохожий @ 11.12.2011, 0:16) *
Пока нет большого количества наработок, коллектива разработчиков, дядиных отработанных классов или сложной иерархической системы, С++ никаких преимуществ по отношению к С не имеет. Да и грамотно разработать класс дано не каждому.

Это вы зря. Где уместен С, уместен и С++. Уже хотя бы за более строгий контроль типов и более удобные и безопасные языковые конструкции - например, возможность объявлять объект в точке первого использования, внятные перечислимые типы и т.д. Оверхеда С++ по сравнению с С не даёт практически никакого.

QUOTE (_pasha @ 11.12.2011, 2:00) *
Работа с boolean, множествами и строками на уровне базовых типов языка.

И чем так boolean кашернее обычного целого типа с проверкой на ноль-не ноль? А вот работа со строками - это палка о двух концах, ибо оверхед, причём неконтролируемый. То же самое касается и массивов в Паскале, которые имеют рантаймные проверки на выход за границы. Да, это добавляет безопасности в некоторой степени (хотя ну кто будет в мелком МК анализировать что там за runtime error такая возникла), но безальтернативно жрёт ресурс. Куда более правильный подход в плюсах - хочешь юзать с проверками - велком, но знаешь за что платишь. Не нравится, не юзай или переделай имплементацию, благо сорцы все доступны.

Что касается стандартов, то их наличие ни о чём не говорит. Стандарт 1983 года вводит язык, пригодный для какого-то обучения, но совершенно непригодный для практического использования. С более поздними стандартами не знаком, но есть подозрение, что и там дело не сильно изменилось в лучшую сторону, иначе некоторые фирмы не стали бы по собственной инициативе разрабатывать свои проприетарные реализации (Object Pascal и иже с ним), которые живут на одной платформе (т.е. ни переносимости, ни расширяемости).

Сам по себе Паскаль принципиально мало отличается от С. Оба низкоуровневые императивные языки программирования. Но один был разработан для обучения, поэтому прост и незамысловат (чем и снискал популярность), второй был выдвинулся как средство разработки реальной большой ОС (UNIX), поэтому был более приспособлен к реальным задачам. Паскаль легко было бы развить до функционала С, для этого достаточно было бы ввести в него поддержку раздельной компиляции, работу с указателями, адресную арифметику и стандартные преобразования типов. Но это был бы тот же С с пасальным синтаксисом. smile.gif Кстати, та же дельфа почти всего этого достигла, что подтверждает, что указанное реально вполне достижимо.

QUOTE (_pasha @ 11.12.2011, 2:00) *
Но это не для традиционных пикофф.

Ну, если речь про них, то про плюсы умолкаю. smile.gif
_pasha
Цитата(dxp @ 10.12.2011, 23:32) *
Паскаль легко было бы развить до функционала С, для этого достаточно было бы ввести в него поддержку раздельной компиляции, работу с указателями, адресную арифметику и стандартные преобразования типов. Но это был бы тот же С с пасальным синтаксисом. smile.gif Кстати, та же дельфа почти всего этого достигла, что подтверждает, что указанное реально вполне достижимо.

Тут фокус в другом. Во-первых, все указанное уже было там сразу, даже начиная с прадедушки модулы-2. Во вторых, есть грани, которые являются непреодолимым водоразделом, например, для чего нужны указатели? Если в Си под *ptr++ = value; понимается ни что иное, как запись в память по указателю с постинкрементом оного, то в Паскале этого не надо - вполне достаточно доступа к массиву через индекс, ибо компилятору хватит информации для того, чтобы оптимизировать обращения до уровня сишного. Только лишь потому, что паскаль - проблемно-ориентированный язык! Компилер паскаля легче заточить под платформу, да еще так, что он переплюнет си в крайних случаях, просто этим мало кто занимается, - именно из-за того, что там больше свободы интерпретации, ибо внешне похожие на си конструкции намного дальше от машинного представления. Помирить два направления может "D", но он какой-то взбаламученный smile.gif
Или, например, процедуры текстового вывода read/write. Кто сказал, что неопределенное кол-во аргументов обязательно будет передано через стек? Они ж ведь давно builtin. В общем, букафф много, мечтать не вредно. Питон какой-то...блин. Паскаль!
orthodox
Все интереснее и интереснее...
А я все стеснялся спросить, для чего вообще нужны указатели, а оно вона как...
Вот почему я не понимал, для чего...

Цитата(_pasha @ 11.12.2011, 4:10) *
внешне похожие на си конструкции намного дальше от машинного представления.

«З цього місця, будь ласка, з подробицями, шановний Альфреде Юхимович.»©
dxp
QUOTE (_pasha @ 11.12.2011, 7:10) *
Тут фокус в другом. Во-первых, все указанное уже было там сразу, даже начиная с прадедушки модулы-2.

То да не то. Такой низкоуровневой концепции там нигде не было, там везде использовалось то, что правильнее назвать ссылками.

QUOTE (_pasha @ 11.12.2011, 7:10) *
Во вторых, есть грани, которые являются непреодолимым водоразделом, например, для чего нужны указатели? Если в Си под *ptr++ = value; понимается ни что иное, как запись в память по указателю с постинкрементом оного, то в Паскале этого не надо - вполне достаточно доступа к массиву через индекс, ибо компилятору хватит информации для того, чтобы оптимизировать обращения до уровня сишного.

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

QUOTE (_pasha @ 11.12.2011, 7:10) *
Только лишь потому, что паскаль - проблемно-ориентированный язык! Компилер паскаля легче заточить под платформу, да еще так, что он переплюнет си в крайних случаях, просто этим мало кто занимается, - именно из-за того, что там больше свободы интерпретации, ибо внешне похожие на си конструкции намного дальше от машинного представления.

Паскаль не более проблемно-ориентированный язык, чем С. И никого он там не переплюнет, т.к. как уже было сказано, языки эти одного калибра (уровня - низкоуровневые императивные). Паскаль выигрывает у С за счёт более простого синтаксиса, но проигрывает из-за [искусственной] ограниченности. Технически ничего не мешает довести Паскаль по возможностям до уровня С (только сегодня это уже никому не надо), а С - синтаксически до уровня Паскаля (только при этом потеряется совместимость, поэтому тоже никому не надо). Но резону уже нет, поэтому всё остаётся на своих местах, и реальность такова, что если хочешь иметь в арсенале кроссплатформенный эффективный язык - изучай С (а ещё правильнее - С++).

QUOTE (_pasha @ 11.12.2011, 7:10) *
Помирить два направления может "D", но он какой-то взбаламученный smile.gif

D - несколько другая тема. Этот проект - попытка пофиксить сложности языка С++ ценой потери совместимости. Именно последнее обстоятельство, ихмо, и ставит крест на широком использовании этого языка.

QUOTE (_pasha @ 11.12.2011, 7:10) *
Или, например, процедуры текстового вывода read/write. Кто сказал, что неопределенное кол-во аргументов обязательно будет передано через стек? Они ж ведь давно builtin.

Вот тут, кстати, подход С/С++ куда более правильный - ни к чему включать в язык прикладные фичи, такие вещи надо реализовывать на уровне библиотек. Это сделает язык лёгким, а реализации гибко подходящими для разных целевых платформ. А иначе вон для PIC16 будьте добры и эти процедуры реализовывать, а то что это за компилятор такой, который не поддерживает встроенные средства языка.

QUOTE (_pasha @ 11.12.2011, 7:10) *
В общем, букафф много, мечтать не вредно. Питон какой-то...блин. Паскаль!

Да, питон, кстати, замечательный язык. И много лучше паскаля подходит для обучения программированию.
orthodox
Цитата(dxp @ 11.12.2011, 9:28) *
Это очень узкая интерпретация, понятие указателя в С много шире. Указатель в С - это типизированный адрес, и работа с массивами - это только весьма ограниченная область применения указателей.

Он же не всегда был типизированным?
Изначально это была просто возможность «делать что хочешь», в основном в плане типов?
Когда результаты этого беспредела стали доставать - тогда и типизировали.
А я все это время не отслеживал, но надо почитать - что там осталось из-за этого от изначальной концепции...
А раньше, помнится, было иногда с ними как-то так: продолжай трахать Машу, но помни, что теперь на самом деле это Лена,
поэтому получается, что ты трахаешь уже Таню. То есть концепция имен переменных иногда немного теряла смысл.
dxp
QUOTE (orthodox @ 11.12.2011, 15:05) *
Он же не всегда был типизированным?
Изначально это была просто возможность «делать что хочешь», в основном в плане типов?
Когда результаты этого беспредела стали доставать - тогда и типизировали.

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

QUOTE (orthodox @ 11.12.2011, 15:05) *
А раньше, помнится, было иногда с ними как-то так: продолжай трахать Машу, но помни, что теперь на самом деле это Лена,
поэтому получается, что ты трахаешь уже Таню.

Ну, вообще-то С всегда был и остаётся портабельным макроассемблером, и первые реализации совсем недалеко ушли от обычных ассемблеров в плане контроля типов, где его нету в принципе.
orthodox
Цитата(dxp @ 11.12.2011, 13:49) *
Ну, вообще-то С всегда был и остаётся портабельным макроассемблером, и первые реализации совсем недалеко ушли от обычных ассемблеров в плане контроля типов, где его нету в принципе.

Ну, если остается - тогда это ему комплимент.
Асм это хорошо для Пиков.
Я ж не отказываюсь, просто думаю, как проще начать.
АСМ я учу по любому, да и память хорошая, Лену с Таней обычно не путаю,
\\* фломастером как-то умудряюсь метки ставить на нужных местах.

Цитата(GuruKiller @ 11.12.2011, 12:08) *
Как там говорится - глаза боятся, а руки делают.

orthodox, сделайте уже хоть что-нибудь на паскале. Раз всё уже куплено и готово. Ну а когда будет не хватать мощи (или красоты, но это в начале пути непонятно), то перейдёте и на Си. Ну и Си обычно генерит меньший код для одинаковых алгоритмов. По крайней мере до милениума так было. За нынешние компиляторы не ручаюсь.

Ну, дык я и собираюсь.
тут у мну мыслишка такая - сделать на Паскале,
а после то же самое тупо перевести на Си, поглядеть какая будет разница и что можно по ходу переписывания
сделать проще. После посмотреть на результат компилирования.
dxp
QUOTE (orthodox @ 11.12.2011, 17:04) *
тут у мну мыслишка такая - сделать на Паскале,
а после то же самое тупо перевести на Си, поглядеть какая будет разница и что можно по ходу переписывания
сделать проще. После посмотреть на результат компилирования.

Вот это правильная тема, одобряю. Очень интересно узнать конкретный результат из первых рук. smile.gif
Прохожий
Цитата(dxp @ 11.12.2011, 10:28) *
Вот тут, кстати, подход С/С++ куда более правильный - ни к чему включать в язык прикладные фичи, такие вещи надо реализовывать на уровне библиотек. Это сделает язык лёгким, а реализации гибко подходящими для разных целевых платформ. А иначе вон для PIC16 будьте добры и эти процедуры реализовывать, а то что это за компилятор такой, который не поддерживает встроенные средства языка.

Здесь спорить не о чем. Безусловно, такой подход на сегодняшний день - самый оптимальный.
С одним НО. Программист не должен плодить сущности без нужды.
А с таким подходом можно легко к этому скатиться...

Тут у меня была небольшая задачка. Я ее решил с помощью компилятора С, обсуждавшегося в соседней теме.
Сейчас это дело оформляю. Могу поделиться результатами.
Поскольку задачка проста, то она может быть учебным пособием.
SirCon
Цитата(evgeny_ch @ 10.12.2011, 21:31) *
Паскаль Блез, сирота. pardon.gif

А чё конкретно можно зафигачить на СИ, чё не РЕАЛЬНО сделать на ПАСКАЛе или АСЁМБЛЕРе? russian_ru.gif
Прохожий
Цитата(SirCon @ 11.12.2011, 17:26) *
А чё конкретно можно зафигачить на СИ, чё не РЕАЛЬНО сделать на ПАСКАЛе или АСЁМБЛЕРе? russian_ru.gif

Дык, Вы все с начала прочтите.
И поймете, что речь не идет о сравнении языков в плане заданного Вами вопроса.
Я думаю - торг здесь неуместен! (с)
SirCon
Цитата(Прохожий @ 11.12.2011, 16:51) *
Я думаю - торг здесь неуместен! (с)

Я думаю уместен... поскольку важен не язык rofl.gif а мастерство владения оным nea.gif
Тумаю, чо большинство не ЫМБЫДЁРОВ здеся... сойдутся на АССАМБЛЕЕ...тьфу ты....на АССЕМБЛЕРЕ hi.gif
Прохожий
Цитата(SirCon @ 11.12.2011, 17:55) *
Я думаю уместен... поскольку важен не язык rofl.gif а мастерство владения оным nea.gif
Тумаю, чо большинство не ЫМБЫДЁРОВ здеся... сойдутся на АССАМБЛЕЕ...тьфу ты....на АССЕМБЛЕРЕ hi.gif

Я, таки, сошелся на С с тщательным контролем получившегося кода.
И в отдельных случаях Ассемблерными подпрограммами.
Иными словами, все, что может быть автоматизировано, должно быть автоматизировано.
А все, что требует тщательности, должно исполняться ручками, т. е. на Ассемблере.
SirCon
Цитата(Прохожий @ 11.12.2011, 17:05) *
Я, таки, сошелся на С с тщательным контролем получившегося кода.

33333.gif ессьсесьнно после дизасемблирования двоичного дампа программы? drinks.gif rofl.gif
Прохожий
Цитата(SirCon @ 11.12.2011, 18:25) *
33333.gif ессьсесьнно после дизасемблирования двоичного дампа программы? drinks.gif rofl.gif

А что смеемся то?
Именно так, поскольку при символьном воспроизводстве адресов дампа С-шные имена остаются.
Далее все просто - сравниваем отдельные конструкции на С с тем, что получилось в результате компиляции и работы линкера в динамике, посредством симулятора.
Именно таким образом работает компилятор С30 от Микрочипа.
У него отсутствует промежуточная трансляция в Ассемблер, в отличие от компиляторов МСС18 и РIСС.

MrYuran
Цитата(GuruKiller @ 10.12.2011, 19:33) *
Частенько забываю ставить двоеточие в присваивании.

Гораздо забавнее забыть лишнее = при сравнении в си. Компилятор съест без вопросов - ну надо, так надо. Программист всегда прав.
dxp
QUOTE (MrYuran @ 11.12.2011, 21:22) *
Гораздо забавнее забыть лишнее = при сравнении в си. Компилятор съест без вопросов - ну надо, так надо. Программист всегда прав.

Ни разу не налетал. Точнее, было разок - компилятор выдал предупреждение по делу.

Ещё рекомендуют при сравнениях с константами писать их впереди оператора, чтобы провоцировать ошибку компиляции. Но я никогда не пользовался, т.к. проблемы реально нет, надуманная она.
MrYuran
Доведу офтоп до логического завершения smile.gif
Как бы я ни относился к M$, но за концепцию CIL (Common Intermediate Language) - пять баллов.
На стековую (но хитрозавернутую) ВМ натянуты фронт-энды разных языков.
Сверху можно прикрутить фронт-энд к любому языку, а снизу - JIT-компилятор под любую платформу.

Сдается мне, W8 целиком на сишарпе написан, с самых кишков и до верха.
Прохожий
Цитата(MrYuran @ 12.12.2011, 9:57) *
Сдается мне, W8 целиком на сишарпе написан, с самых кишков и до верха.

А какая, собственно, разница.
Evgeny_ch абсолютно прав в том, что потребителю абсолютно пох, что на чем написано.
Лишь бы не глючило ежесекундно.
_pasha
Цитата(evgeny_ch @ 11.12.2011, 23:04) *
Каждый софтварь выполняет задачу управления
физическим объектом. Если софтварист не знает
свойств объекта, то никакие языки не смогут
заткнуть дыру в его познаниях.
P.S.
Этта не реклама и не торговая рекомендация.

Гыгы. Зиглер-Николс, нечеткая полулогика и нейронные сети существенно поправляют лицо. smile.gif
MrYuran
Цитата(Прохожий @ 12.12.2011, 12:45) *
Evgeny_ch абсолютно прав в том, что потребителю абсолютно пох, что на чем написано.

Потребителю вообще никто слова не давал smile.gif
Прохожий
Цитата(_pasha @ 12.12.2011, 12:55) *
Гыгы. Зиглер-Николс, нечеткая полулогика и нейронные сети существенно поправляют лицо. smile.gif

Его еще может поправить тот, кто это потом эксплуатировать будет.
Может адрес производителя, применяющего девайсы с нечеткой логикой, таки, не указывать?

Цитата(MrYuran @ 12.12.2011, 12:57) *
Потребителю вообще никто слова не давал smile.gif

Так то оно, конечно, так.
Но будет хуже, если вконец озверевший потребитель сам возьмет это самое слово.
dxp
QUOTE (MrYuran @ 12.12.2011, 14:57) *
Потребителю вообще никто слова не давал smile.gif

Да. Только не стоит потом удивляться, что этот самый потребитель стройными рядами отправляется в сторону убунты. smile.gif Я для себя уже решил, что ХР - это моя крайняя венда. И висту проигнорировал, и семёрку, а уж восьмёрку и подавно. Есть трудности с некоторым софтом, но будем думать, как решать проблему. Тренд развития вендов вынуждает.
Прохожий
Цитата(dxp @ 12.12.2011, 13:10) *
Да. Только не стоит потом удивляться, что этот самый потребитель стройными рядами отправляется в сторону убунты.

Почему именно Убунты?
MrYuran
Цитата(Прохожий @ 12.12.2011, 14:57) *
Почему именно Убунты?

Прорывных направлений, мсм, нынче два.
Первое - аля андроид. Java или CIL поверх абстрактной виртуальной машины. Мне кажется, W8 это шаг именно в этом направлении (было бы логично)
Второе - облака. Обещанный ХромОС. Браузер поверх голого железа и веб-приложения в нем (а на самом деле на удаленном сервере). Office 365

Я вообще к чему веду-то...
Настанет тот день, когда c# вытеснит с(++) и из эмбеда...
Для ARM уже сейчас есть microframework. Хоть это и не совсем то (вернее, совсем не то), однако, уже что-то.
PhX
Цитата(MrYuran @ 12.12.2011, 15:05) *
Настанет тот день, когда c# вытеснит с(++) и из эмбеда...

Встречный вопрос:

Почему java процессоры сегодня на обочине? Или нет?


Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2020 IPS, Inc.