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

Архитектура оптимизированна для языка С

Добрый день.

 

Собственно вопрос, что означает "architecture optimized for C language"? В общем то понятно, что используется определенный набор команд. А вот конкретно в чем выражается эта оптимизация, совсем не ясно. Вроде бы везде есть арифметические операции, операции сдвига, условия.

 

Объясните пожалуйста, что это за "оптимизированные команды".

 

Заранее спасибо.

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


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

что означает "architecture optimized for C language"?
Это - Вы про AVR? Имхо, всё это - маркетинговая щелуха, такая же как и число команд в AVR...

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


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

Имхо, всё это - маркетинговая щелуха,

 

Ну не совсем. Небанкированый доступ к памяти данных и наличие стека в ОЗУ (в отличии от, например, PIC16, с которыми их обожают сравнивать холиварщики) - это таки "optimized for C language", а точнее - "for C compilers".

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


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

Ну не совсем.
Тогда и МК51 - тоже "optimized for C language", хотя я не встречал такой "хвалилки" от производителей этих МК.

 

P.S. Кстати, а почему только С, а как же другие ЯВУ?

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


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

Тогда и МК51 - тоже "optimized for C language"

 

И снова - не совсем ;) Хотя, код после компилятора для x51 куда лучше кода для PIC16.

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


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

И снова - не совсем
Ну, как же? И небанкированный доступ, и стек в ОЗУ...

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


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

P.S. Кстати, а почему только С, а как же другие ЯВУ?

 

Да-да, как же без СOBOL'а? :biggrin:

 

и стек в ОЗУ...

 

Маловат для более-менее серьезного использования стековых переменных и реентерабельности функций.

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


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

Да-да, как же без СOBOL'а?

Ну, прям - COBOL! Чем Pascal разработчикам AVR не угодил? Что в нем такого, что нельзя отпимизировать под этот язык?

 

Маловат для более-менее серьезного использования стековых переменных и реентерабельности функций.
Да, бросьте Вы... Уж, поболее чем у tiny13. Вся эта "оптимизация" не более чем рекламный ход.

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


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

Уж, поболее чем у tiny13.

 

Однако, есть и другой конец линейки, в котором ОЗУ куда больше.

 

Чем Pascal разработчикам AVR не угодил?

 

Ну понимаете-ли, стандартный набор фронтэндов в GNU Compiler Collection включает в себя Ada, C, C++, Fortran, Java, ObjC. Хотя фронтэнд для Паскаля существует, в штатную ветку он не входит. Намек понятен? ;)

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


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

Однако, есть и другой конец линейки, в котором ОЗУ куда больше.
Так что: "optimized for C language" определяется величиной ОЗУ? Есть и клоны 51 и ОЗУ не меньше чем у AVR, и стек в этом "большом" ОЗУ можно размещать...

Этот спор мне напоминает не так давно бывшее обсуждение: "Почему некоторые производители позиционируют свои МК как DSP ?". По-моему, эта "оптимизация" AVR - из той же "оперы"... AVR - более новые МК, у которых нет "тяжелого наследия прошлого" в виде, например, аппаратного стека и т.п., применение которых обуславливалось в прошлом отсталостью технологии. Называть отсутствие этого "наследия" "оптимизацией" - чистой воды рекмамный ход.

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


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

Еще забыли три регистра косвенной адресации. Но вот доступ к указателю стека, методы косвенной адресации у AVR - это скорее диверсия против С-компиляторов.

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


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

Но вот доступ к указателю стека, методы косвенной адресации у AVR - это скорее диверсия против С-компиляторов.

 

Терпимо. Хотя, конечно, прокол знатный.

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


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

А что насчет ARM? Как бы не самая классическая архитектура и система команд - а славится тем, что очень нужно постараться чтобы написАть лучше на asm. Всегда интересовал вопрос - "почему". Я не спец по теории компиляторов и оптимизаций - потому вопрошаю коллективный разум...

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


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

Всегда интересовал вопрос - "почему".

 

Там как раз хорошо навернуто в части удобства генерации кода компилятором - и трехадресная обработка, и сдвиги в одном флаконе с операцией, и масса методов адресации, а условное выполнение - это отдельный перл. Все это, конечно, относится к ARM-режиму, тумба - вот это чистой воды пиар. Пожалуй, единственный прокол - отсутствие загрузки произвольного непосредственного операнда шириной 32 бита без использования адресации [PC+число] и иногда маловат диапазон смещений в адресации [Rx+число].

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


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

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

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

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

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

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

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

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

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

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