Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Язык Си

ЛЕКЦИЯ 17, 18. РАЗРАБОТКА ПРИКЛАДНОЙ ПРОГРАММЫ НА ЯЗЫКАХ ВЫСОКОГО УРОВНЯ

Литература

1. Язык программирования Си/ Брайан В. Керниган, Деннис М. Ритчи

2.www. AVR123_nm_ru

4. Шпак Ю.А. Программирование на языке Си для AVR и PIC. Киев, «МК-Пресс», 2006.

5. Белов А.В. Самоучитель разработчика устройств на МК AVR. C-Пб, Наука и техника, 2008.

6. Павловская Т.А. C/C++. Программирование на языке высокого уровня.- СПб.: Питер, 2005.

16.1. Ассемблер или СИ?

Язы́к программи́рования — формальная знаковая система, предназначенная для записи программ.

Языки разделяются на низкоуровневые и высокоуровневые.

Низкоуровневыйязык (ассемблер) дает возможность осуществлять непосредственный доступ к аппаратуре, что позволяет создавать более эффективные программы с меньшими затратами ресурсов, с меньшим количеством команд и обращений к памяти. Что позволяет увеличить скорость и уменьшить размер программы.

Высокоуровневый язык программирования — язык программирования, разработанный для быстроты и удобства использования программистом. Основная черта высокоуровневых языков — это абстракция, то есть введение смысловых конструкций, кратко описывающих такие структуры данных и операции над ними.

Главное преимущество ассемблера почти полностью нивелируется хорошей оптимизацией в современных компиляторах языков высокого уровня.

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

На ассемблере пишутся программы или фрагменты программ, для которых критически важны:

  1. быстродействие (драйверы, игры);
  2. объем используемой памяти, когда пишутся программы для микроконтроллеров и процессоров с ограниченными ресурсами.

Одна из возможностей - добавление языка низкого уровня (язык ассемблера) в ряд современных профессиональных высокоуровневых языков программирования. Такими возможностями обладает и язык Си.

Язык Си в настоящее время является лидером и применяется в самых различных прикладных задачах. Первоначально язык Си задумывался как заменитель ассемблера для написания операционных систем. Язык Си был изобретен и реализован Денисом Ритчи для компьютера DEC PDP-11 в операционной системе UNIX (1970 год).

Тем не менее, область применения языка Си не ограничилась разработкой операционных систем. Язык Си оказался очень удобен в программах обработки текстов и изображений, в научных и инженерных расчетах. В 1989 году был принят стандарт языка. В 1995 году была принята поправка к стандарту, добавлено несколько библиотечных функций (C++). Язык С называют еще языком среднего уровня потому, что он объединяет черты языков высокого уровня с возможностями ассемблера.

Особенности языка Си:

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

Запись PORTB = 0x23 на Си означает: не читая содержимое переменной PORTB присвоить ей значение 0x23 уничтожив то, что было там раньше.

2. В языке Си малое количество ключевых слов (32 ключевых слова – остальное в библиотеке файла; в Бэйсике, например, 100 ключевых слов), то есть небольшое число высокоуровневых механизмов, что делает его легким для понимания и изучения. Математические функции вынесены в стандартные библиотеки.

Ключевое слово – это зарезервированное слово четко определенного назначения. Ключевые слова не могут использоваться в качестве идентификаторов. Примеры ключевых слов:

Asm, bit, const, do, else, float, int, return, true, unsigned, while.

3. Свобода пользования указателей на данные. Все языки высокого уровня придерживаются концепции типов данных. Обычные типы данных – целые числа, символы и числа с плавающей точкой. В Си можно смешивать переменные символьного и целого типов, что позволяет рационализировать многие операции, но это, конечно, создает возможность для программистских ошибок.

4. Язык Си является хорошо структурированным языком.

Главная конструкция структурного программирования на языке Си – функция, являющейся единственным видом подпрограммы. Функция позволяет определить и отдельно закодировать различные части, решаемые программой. Структурировать можно с помощью программных блоков. Любая программа на Си состоит из одной или нескольких функций.

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

6. Использование препроцессора для, например, определения макросов и включения файлов с исходным кодом.

7. Непосредственный доступ к памяти компьютера через использование указателей.

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

 

<== предыдущая лекция | следующая лекция ==>
Обжалование решения суда. Исполнение решения суда | Функции
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 754; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.