Перейти к содержанию
    

Я привёл данные, что-то никто из спорщиков мне не ответил. Размер исходника, на небольшом аналогичном проекте в Си проге в 1.5-1.6 раз больше!

Это практически невероятно, радикальное различие может быть только за счет использования одной другой толстой универсальной сишной библиотечной функции, по сравнению с какой-нибудь абсолютно минималистичной узкоспециализированной библиотечке от "Паскаля". Листинг есть, Вы же можете посмотреть. По тому, что было вывалено для движка "ферзей" паскалевский результат не годен. Ну или, как вариант, на любом языке можно писать, как на Паскале :), только эффективность будет разная.

 

 

Может просто руки в @опе у тех, у кого что-то падает? Или знаний не хватает?

Я без намёков естественно.

Можете считать, что у меня в жопе, но та поделка писаная на Дельфях (я уже писал), которая называлась здесь в качестве "Паскаля для AVR" упала у меня через 4-5 минут работы. Когда прошлый раз у меня что-то падало....э было.... но не припомню когда.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зачем ?
Для полноты, ИМХО lsl Вы выбрали не удачно.
Ну и что это, как не птичий язык ? Уже с одной переменной нихрена не разберешь, а их может быть и дюжина и вообще, сколько угодно.
Одна строчка хуже трёх? Легко и просто можно разобраться при не большой привычке.
Особенно забавляет факт повторной передачи отдефайненного.
Чото не увидел повторной передачи, Test_byte упоминается один раз.
Гланды - через жопу, короче.
А это - Ваше субъективное мнение.

Моё, тоже субъективное, - эти слова подходят к паскалю.

 

Ога, си - это болезнь )))
Ничо, ради эффективности можно поболеть и не только си, даже ассемблером.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мог бы кто оформить здесь вопросник типа: "Чем Вы программируете AVR", с ответами:

1. С/С++

2. Pascal

3. Assembler

 

А также "Покупали ли Вы ПО для программирования AVR"

1. Покупал

2. Не покупал

 

Через пару недель все вопросы этого топика "Pascal для AVR" разрешились бы сами собой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гланды - через жопу, короче.

Любой inline assembler через жопу. Реализация в GCC, при этом практически единственная, которую можно использовать в реальности. Тот-же бролондячие продукты, как С, так Паскаль встретив "красивую" и "понятную" пишущему ASM вставку ОТКЛЮЧАЮТ ОПТИМИЗАЦИЮ совсем, ибо тупо транслируют ее в код, соответственно совершенно не разбираясь с содежимым. Практически это в борланда страшнейшая заплатка к которой из-за ограниченности языка ПРИХОДИТСЯ прибегать чрезмерно часто. В общем случае ASM-у асмово - НЕ СМЕШИВАТЬ!

Между прочим, подняли интересный факт - гораздо быстрее набирается begin/end, нежели скобки{}, которые набираются с шифтом (, как и прочие знаки.

Набираются они нормальными людьми одинаково быстро, поскольку нормальные люди

- пользуются темплейтами;

- печатают не одним пальцем;

- думают в процессе.

А вот читается вся эта хрень много медленнее, а со сбитым, или кривым форматированием совсем хреново.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На мой взгляд begin end в Паскале читается также хреново как #ifdef #endif на Си (если смотреть код вообще без подсветок).

 

Ума не приложу как можно медленно набирать скобки... разве что вообще 1 пальцем через Caps Lock :lol:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ума не приложу как можно медленно набирать скобки... разве что вообще 1 пальцем через Caps Lock :lol:

Вот-вот, если одним пальцем, то разницы и нет что begin, что скобки. А вот если набираете десятью, то шифты со скобками - это как булыжник на скоростной трассе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можете считать, что у меня в жопе, но та поделка писаная на Дельфях (я уже писал), которая называлась здесь в качестве "Паскаля для AVR" упала у меня через 4-5 минут работы. Когда прошлый раз у меня что-то падало....э было.... но не припомню когда.

:)

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

:)

Когда вы ответили мне на сравнение с обычным языком, то по принципу "родину не выбирают". "С молоком матери".

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

Это тоже как то унижает людей, которые говорят на конкретном языке.

 

В принципе, мы получили белорусский язык в достаточном объёме. Я, в своё время достаточно им владел. Например читал на нём книги (был момент дифицита разных книг и некоторые приличные "бестселлеры" смог достать только на белорусском). Не просто читал, а легко читал. Практически как на русском. Потом не замечаешь разницы. Тем не менее, русский язык мне нравится больше. Он приятнее.

 

Если вас не затруднит, пришлите проект, который у вас падает. Я бога ради не собираюсь вас поучать/ поправлять/ или что-то там аналогичное. Это чисто для себя. Мне просто любопытно. У меня действительно ничего не падает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Любой inline assembler через жопу.

Если GCC - любой, то таки да, любой.

 

Тот-же бролондячие продукты, как С, так Паскаль встретив "красивую" и "понятную" пишущему ASM вставку ОТКЛЮЧАЮТ ОПТИМИЗАЦИЮ совсем, ибо тупо транслируют ее в код, соответственно совершенно не разбираясь с содежимым.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может просто руки в @опе у тех, у кого что-то падает? Или знаний не хватает?Я без намёков естественно.

 

Это, видать, камень в мой огород (я тут страниц 10 назад жаловался)? Ну так можете мои посты почитать, у меня всегда сначала поиск граблей у себя, потом еще раз у себя, и еще раз у себя, а потом уже у других. Так что можете довериться мне в этом вопросе :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По моему, повально ругая язык, мы несколько оскорбляем людей им пользующихся.
ИМХО верно при отсутствии объективных критериев.

Но Вы же видели листинг.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Одна строчка хуже трёх?

Не скромничайте. У вас, как минимум три строки - оператор, входные аргументы и выходные аргументы. Когда аргументов будет больше одного, к вам придет песец, поскольку именуются они по номеру места, на котором находятся, т.е. при добавлении/удалении новых аругментов будете полностью переписывать весь ассемблерный код. Ну вы наверно должны быть в курсе, если хоть что-то реально писали на вставках в gcc, что я вам рассказываю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И абсолютно правильно делают. Поскольку уж если прогер взялся за ассемблер, то на то есть серьезные причины и оптимизатору не стоит пытаться умничать.
Ога, и вручную писать lds, sts?

Неа, мы как нибудь по старинке, с оптимизацией. :biggrin::biggrin::biggrin:

 

Когда аргументов будет больше одного, к вам придет песец, поскольку именуются они по номеру места,
А я знаю, ха-ха.
т.е. при добавлении/удалении новых аругментов будете полностью переписывать весь ассемблерный код
При добавлении и логика меняется, не находите? Но обычно надо только перенумероватьать. :) Это не трудно.
если хоть что-то реально писали на вставках в gcc,
Писал и пишу, как-то без особых затруднений. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добавьте в начало программы всего две строчки

#define begin {
#define end }

и Ваш любимый С-компилятор начнёт собирать и паскалевские исходники.

:yeah:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

и Ваш любимый С-компилятор начнёт собирать и паскалевские исходники.

:yeah:

Очень умнО ! :crying: Если приходим к такому выводу на 10^6 посте темы, то это действительно диалог слепо-глухонемых.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

И gcc на месте тоже не стоит. Когда-то он и PORTB = value; не умел, сейчас и со вставками работает "красивше"

Можно дать имена всем, в том числе и "локальным" регистрам асм-вставки

    asm("lsl %[_b]": [_b] "+r" (Test_byte) );

и никаких номеров.

3.4.6 такое точно брал.

 

 

И абсолютно правильно делают. Поскольку уж если прогер взялся за ассемблер, то на то есть серьезные причины и оптимизатору не стоит пытаться умничать.
Он "от себя" и не "умничает". Ему задаются пределы, в которых он может заменять эквивалентные регистры не меняя общего хода кода - таким образом, чтобы не поломать оптимизацию того, что до и после вставки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...