Конспект лекций по предмету "Программирование"


С – универсальный алгоритмический язык

МП2. Введение в C
Тема 1. Введение в язык
Лекция 01. С – универсальный алгоритмический язык
С: Немного истории
· 1970г., Денис Ритчи, AT&T Bell Laboratories.
Авторство языка С принадлежит Денису Ритчи, сотруднику AT&T Bell Laboratories (1970 г.).
– UNIX PDP-11: A (ассеблер) – B – C
Сначала язык программирования С был написан для создания и поддержки операционной системы UNIX. До того времени все программы операционной системы UNIX были написаны либо на языке ассемблера, либо на языке В, разработанном Кеном Томпсоном - создателем системы UNIX.
– Первый продукт - компилятор
Первым программным продуктом, написанным почти полностью на Си, был компилятор с языка Си в код машинных команд компьютера РDР-11/20 (прототип миниЭВМ СМ-4). В 1973 г. Д.Ритчи и К.Томпсон переписали на Си большую часть операционной системы Unix.
Из 13000 машинных команд для РDР-7, на которой появилась первая версия Unix, только 800 пришлось вручную перевести в ассемблер РDР-11. В процессе перевода Unix из однопользовательской операционной системы, ориентированной на работу в конкретной ЭВМ, превратилась в мобильную операционную систему коллективного пользования. Успех этой операции, в значительной мере, предопределил популярность новой операционной системы и ее базового инструмента – языка Си.
– 1976 г. – перенос Unix на Interdata 8/32 . . . . .
В 1976 г. Д.Ритчи и К.Томпсон перенесли Unix с ЭВМ фирмы DEC на компьютеры другой архитектуры (Interdata 8/32), практически ничего не изменив в ядре операционной системы, написанном на Си. Точно таким же образом система Unix распространялась на десятки машин различных типов.
– 1978 г. (85) – первая книга
В 1978 г. появилась первая книга, посвященная описанию Си и технике программирования на этом языке, которая с большим запозданием была переведена на русский язык (Б.Керниган, Д.Ритчи, А.Фьюэр. Язык программирования Си. Задачи на языке Си. - М.: Финансы и статистика, 1985). От фамилий двух первых авторов произошло сокращенное обозначение первого, никем не утверждавшегося, но принятого всеми программистами стандарта языка Си – K&R.
– 1987 г. – стандарт ANSI C
Дальнейшая работа по совершенствованию языка Си и принятию в 1987 г. первого настоящего стандарта ANSI C была выполнена на общественных началах рабочей группой при Американском Национальном Институте Стандартов. Возглавлял эту работу Лэрри Рослер – сотрудник Bell Labs.
– UNIX – OS IBM – MS DOS - . . .
Язык С стал настолько популярным, что его специально приспособили и для других операционных систем, и его применение не ограничивалось только UNIX-системами. Несмотря на такую популярность, язык С не был лишен недостатков.
C++: Продолжение С
· 1980г., Бьярн Страуструп AT&T Bell Laboratories
Бьярн Страуструп из AT&T Bell Laboratories в году разработал на его основе язык программирования C++.
– С++ включает С
Большая часть С - это подмножество языка C++, и, таким образом, большинство С-программ являются также С++-программами. В программах на языке C++ можно использовать тексты на языке С и обращаться к библиотечным функциям языка С.
– С++ расширяет С за счет ООП
Основное отличие языка C++ от С заключается в реализации объектно-ориентированного подхода программирования - чрезвычайно мощного современного способа программирования.
– Visual C++, Borland C++ x.x, Borland C++ Builder
В настоящее время широкое распространение получили реализации языка в системах Visual C++, Borland C++ x.x, Borland C++ Builder x и др.
Общая характеристика С
· Основные свойства
– С – язык низкого уровня
ü компьютерные типы данных (байт, слово)
ü логические операции над битами, сдвиги, работа с адресами и регистрами
– С – язык высокого уровня
ü Структуры данных и операторы структурного программирования
ü Необычно большой набор операций
ü Указатели и функции
– Простой компилятор:
ü Эффективность, экономичность, переносимость
Эти преимущества Си обеспечивают хорошее качество разработ­ки почти любого вида программного продукта. Использование Си в качестве инструментального языка позволяет получать быстрые и компактные программы. Во многих случаях программы, написанные на Си, сравнимы по скорости с программами, написанными на языке ас­семблера. При этом они имеют лучшую наглядность и их более просто сопровождать.
– Препроцессор
В своем составе Си содержит препроцессор, который обрабаты­вает текстовые файлы перед компиляцией. Среди его наиболее полез­ных приложений при написании программ на Си являются: определение программных констант, замена вызовов функций аналогичными, но бо­лее быстрыми макросами, условная компиляция. Препроцессор не ог­раничен процессированием только исходных текстовых файлов Си, он может быть использован для любого текстового файла.
– Стандартные библиотеки
Си сочетает эффективность и мощность в относительно малом по размеру языке. Хотя Си не содержит встроенных компонент языка, выполняющих ввод-вывод, распределение памяти, манипуляций с экра­ном или управление процессами, тем не менее, системное окружение Си располагает библиотекой об"ектных модулей, в которой реализо­ваны подобные функции. Библиотека поддерживает многие из функций, которые требуются.
Это решение позволяет изолировать языковые особенности от специфики процессора, на котором выполняется результирующая прог­рамма. Строгое определение языка делает его независимым от любых деталей операционной системы или машины. В то же время програм­мисты могут добавить в библиотеку специфические системные прог­раммы, чтобы более эффективно использовать конкретной особенности машины.
· Недостатки
– Трудность чтения низкоуровнего кода
ü a++ << --b | 4
– «Слабый» синтаксис: ‘aba’ + baba
Первые версии Си подвергались серьезной критике за отсутствие достаточной строгости, приводившей к многочисленным ошибкам из-за работы с неинициализированными переменными, отсутствия контроля за выходом индексов у элементов массивов из установленных пределов, несоответствия типов формальных и фактических параметров функций и т.п.

Алгоритмический язык

Что такое алгоритмический язык?
Ответ типа: это язык для записи программ - вообще говоря верен, но порождает… Что такое алгоритм?


Литература

В настоящее время вышло очень много книг по C и C++ различной степени сложности и понятности. Главное достоинство рекомендованного списка – возможность скачать эти книги из Internet:
Основная:
1. Страустрап. Справочное руководство по C++. (509 Кб. 45 c.) http://www.helloworld.ru/texts/comp/lang/c/c4/
Очень краткое , но четкое пособие для «продвинутых» для выяснения как общих, так и «тонких» вопросов
2. Страустрап. Введение в язык С++. (1502Кб. 166 c.) http://www.helloworld.ru/texts/comp/lang/c/c3/aglav.htm
Развернутый аналог «Справочного руководства». Читать уже легче, но дольше.
3. Липпман. C++ для начинающих. (3344Kб. 1198 c.). http://c-plus-plus.narod.ru/docs/books.html
Ну, о-о-о-чень подробная книга с разжевыванием всего, что можно. Хотя читается легко и с интересом (если есть время).

Дополнительная

Классическая книга, с которой все начиналось. Авторы книги – авторы языка. Снимите шляпу!
5. Кетков Ю.Л., Кетков А.Ю., Практика программирования: Бейсик, Си, Паскаль.… Книга – введение в универсальные алгоритмические языки. Интересна сравнением Си с Паскалем и Бейсиком. Написана живо и…


Не сдавайте скачаную работу преподавателю!
Данный конспект лекций Вы можете использовать для создания шпаргалок и подготовки к экзаменам.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем конспект самостоятельно:
! Как написать конспект Как правильно подойти к написанию чтобы быстро и информативно все зафиксировать.