Важная информация

User Tag List

Страница 15 из 18 ПерваяПервая ... 1112131415161718 ПоследняяПоследняя
Показано с 141 по 150 из 180

Тема: 32-разрядный процессор, полностью совместимый с архитектурой PDP-11.

  1. #141
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от bigral Посмотреть сообщение
    неужели есть шанс сделать лучше оптимизацию чем в древнем компиляторе на котором unix и был изначально скомпилен?
    Если речь идёт о компиляции Unix для машин с 64К ОЗУ, где борьба идёт за каждый байт - имеющиеся (для PDP-11) компиляторы C практически непригодны, потому что оптимизируют код очень слабо. Главная (по количеству бездарно потраченных компилятором байтов) проблема - наличие у функций прологов и эпилогов, а также использование стека для передачи параметров и создания локальных переменных. LLVM позволяет выделить пул временных регистров ( например для PDP11 - R0, R1, R2 ) и тогда первые три параметра вызова функции будут передаваться не в стеке, а в этих регистрах. Если же параметров у функции меньше (или их вообще нет) - свободные временные регистры будут автоматически использоваться для хранения локальных переменных. Когда исходник состоит из большого количества небольших функций с малым числом параметров - даже такая простенькая оптимизация сокращает объём генерируемого кода чуть ли не вдвое.

    Проще говоря - есть реальный шанс сделать компилятор, который для базового ядра Unix уменьшит объём генерируемого кода в разы (по сравнению с изначальным).
    Последний раз редактировалось Patron; 17.07.2018 в 01:26.

  2. #142
    Master
    Регистрация
    27.11.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    827
    Спасибо Благодарностей отдано 
    34
    Спасибо Благодарностей получено 
    128
    Поблагодарили
    108 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    не большой оффтоп:
    openwatcom также поступает: по максимуму использует регистры для передачи параметров, а что не помещается то идет через стек. Докучи это "поведение" компилятора можно "переопределить". Жалко что он только для интел и поверпс

  3. #143
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,992
    Спасибо Благодарностей отдано 
    284
    Спасибо Благодарностей получено 
    630
    Поблагодарили
    530 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    "Многие спрашивали, Windows написана на C или C++. Ответ такой: несмотря на объектно-ориентированный дизайн NT, как и большинство ОС, Windows почти полностью написана на C! Почему? Потому что C++ увеличивает потребление памяти и привносит накладные расходы на выполнение кода. Даже сегодня скрытые затраты на выполнение кода C++ могут удивить, но ещё в 1990-х, когда память стоила около $60/МБ (да… $60 за МЕГАБАЙТ!), скрытые затраты на vtables и прочее были значительными. Кроме того, затраты на косвенное обращение к виртуальным методам и разыменование объектов в то время могли привести к очень значительным потерям производительности и масштабированию кода C++"

  4. #144
    Master Аватар для xolod
    Регистрация
    01.02.2010
    Адрес
    Москва
    Сообщений
    743
    Спасибо Благодарностей отдано 
    157
    Спасибо Благодарностей получено 
    174
    Поблагодарили
    86 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Насколько мне известно, ядро и системные библиотеки всех широко распространенных ОС написаны на С. Linux, *BSD, Windows, MacOSX. Во многом из-за того, что у них у всех в разностепени, но корни идут от UNIXa Кернигана и Ричи.

  5. #145
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,992
    Спасибо Благодарностей отдано 
    284
    Спасибо Благодарностей получено 
    630
    Поблагодарили
    530 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    У Windows корни не из Unix-а - от слова совсем
    Последний раз редактировалось Hunta; 23.08.2018 в 06:45.

  6. #146
    Guru Аватар для CodeMaster
    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,225
    Спасибо Благодарностей отдано 
    138
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    182 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    У Windows корни не из Unix-а - от слова совсем
    Ну, как бы да:
    Для разработки ОС NT фирма Microsoft пригласила группу специалистов из компании DEC во главе с Дэвидом Катлером, обладающую опытом создания многозадачных операционных систем, таких как VAX/VMS и RSX-11. Некоторое сходство, отмеченное между внутренними архитектурами Windows NT и ОС семейства VMS, дало основания обвинить вновь принятых сотрудников Microsoft в краже интеллектуальной собственности DEC.
    Но и они же наверняка не C++ писаны. Ещё одной причиной почему Windows NT на С возможно является это:
    Переносимость NT была одной из её первоочередных задач ... В качестве ОС высокой переносимости при разработке NT были взяты за пример ОС Unix и Mach.
    Вряд ли тогда существовали надёжные и проверенные компиляторы C++ под все интересующие платформы.
    "Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.

  7. #147
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,992
    Спасибо Благодарностей отдано 
    284
    Спасибо Благодарностей получено 
    630
    Поблагодарили
    530 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CodeMaster Посмотреть сообщение
    Вряд ли тогда существовали надёжные и проверенные компиляторы C++ под все интересующие платформы.
    Наверняка. Но приведённая мной цитата - от сотрудника MS. В статье (она про новую версию cmd.exe и инфраструктуру консольных приложений) ещё говорится о том, что сейчас они постепенно переписывают код под C++ - но потому, что стоимость этого варианта (по ресурсам) стала ниже, чем во времена началаписания windows.

    Учитывая количество доступных ресурсов на процах семейства PDP-11 - врят ли писание на C++ сильно взлетит. А С - он вообще делался с прицелом и на основе PDP-11, так что можно считать (классические компиляторы) своеобразным макро-ассемблерами.

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

  8. #148
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Почему C-подмножество C++ это "С здорового человека" - небольшой пример.

    Допустим, в уже написанной программе есть функция LF(), выводящая на экран перевод строки, и надо модифицировать программу, добавив аналогичную функцию с числовым аргументом, задающим количество выводимых LF.

    На С++ есть два варианта решения задачи: 1) добавить вторую функцию, принимающую числовой аргумент; 2) модифицировать исходную функцию, добавив числовой аргумент со значением по умолчанию 1.

    Код:
    void LF( int n = 1 ) { while(n--) printf "\012"; }
    На C второй вариант точно не прокатит - в стандарте C дефолтные значения параметров вызова не предусмотрены.

  9. #149
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,992
    Спасибо Благодарностей отдано 
    284
    Спасибо Благодарностей получено 
    630
    Поблагодарили
    530 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Почему C-подмножество C++ это "С здорового человека" - небольшой пример
    Потому что есть фундаментальные свойства языка, а есть синтаксический сахар. Дефолтные значения - пример синтаксического сахара.
    И если добавить такие конструкции (удобства) в С - С++ окажется в ещё большем проигрыше.

  10. #150
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    И если добавить такие конструкции (удобства) в С - С++ окажется в ещё большем проигрыше.
    О каком "проигрыше" речь, когда исходники обоих стандартов компилирует один и тот же компилятор, создающий из обоих вариантов один и тот же код, а разница только в удобстве синтаксиса у варианта C++.

    C-подмножество C++ - это и есть то самое добавление нормальной функциональности в кривоногий синтаксис ванильного C, без которого о нормальном программировании говорить сложно.

    Но помимо этого - при C-программировании на C++, появляется возможность использовать и некоторые простые "плюсы" расширенного стандарта. Хороший пример - задание начальных значений полей структур.

    Вариант ванильного C:
    Код:
    struct s {
        int one;
        int two;
    };
    
    struct s *pS1 = (struct s*) malloc( sizeof(s) );
    (*pS1).one = 1;
    (*pS1).two = 2;
    
    struct s *pS2 = (struct s*) malloc( sizeof(s) );
    (*pS2).one = 1;
    (*pS2).two = 2;
    Вариант здорового C ( т.е. C++ ):
    Код:
    struct s {
        int one;
        int two;
     
       s(): one(1), two(2) {}
    };
    
    struct s *pS1 = new s;
    struct s *pS2 = new s;

Страница 15 из 18 ПерваяПервая ... 1112131415161718 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Fuzebox - полностью открытая 8-битная игровая приставка
    от CityAceE в разделе Зарубежные компьютеры
    Ответов: 22
    Последнее: 09.03.2017, 15:35
  2. MSX и EPSON-совместимый принтер
    от ipkin в разделе MSX
    Ответов: 3
    Последнее: 01.12.2011, 19:23
  3. Ответов: 5
    Последнее: 20.06.2011, 03:18
  4. Собрал комп полностью своими руками
    от scooby-do в разделе Зарубежные компьютеры
    Ответов: 14
    Последнее: 27.06.2009, 11:25
  5. Куплю ZX совместимый компьютер.
    от billgilbert81 в разделе Барахолка (архив)
    Ответов: 19
    Последнее: 05.12.2008, 20:33

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •