русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Функциональный базис языка С


Дата добавления: 2013-12-23; просмотров: 968; Нарушение авторских прав


Кен Томпсон Денис Ритчи

Возникновение языка С

Лекция 1.

 

 

Язык программирования Си был разработан в начале 1970-х годов сотрудниками лаборатории Bell Кеном Томпсоном и Денисом Ритчи для использования в создаваемой ими операционной системе Unix. Для выполнения работы по созданию Unix разработчики нуждались в таком языке программирования, который был бы крат­ким, а также мог бы обеспечивать эффективное управление аппаратными средствами, мог бы создавать компактные, быстро работающие программы.

Традиционно такие потребности программистов удовлетворял язык ассемблера, который тесно связан с внутренним ма­шинным языком компьютера. Однако ассемблер — язык низкого уровня, т.е. он привя­зан к определенному типу процессора (или компьютера). Поэтому если программу на языке ассемблера необходимо перенести на компьютер другого типа, ее приходится пе­реписывать заново на другом языке ассемблера. Это можно сравнить с ситуацией, ког­да при покупке нового автомобиля вы каждый раз обнаруживаете, что конструкторы решили изменить расположение и назначение органов управления, вынуждая вас зано­во переучиваться вождению.

Операционная система UNIX предназначалась для работы на компьютерах различных типов (или платформах). А это предполагало использование языка высокого уровня. Язык высокого уровня ориентирован на решение задач, а не на конкретное аппаратное обеспечение. Специальные программы, которые называются компиляторами, транслируют программу, написанную на языке высокого уровня, в ко­манды внутреннего языка конкретного компьютера. Таким образом, используя отдель­ный компилятор для каждой платформы, одну и ту же программу на языке высокого уровня можно выполнять на разных платформах. Разработчики Unix нуждались в языке, который со­четал бы в себе эффективность и возможность доступа к аппаратным средствам, обес­печиваемые языками низкого уровня, с более общим характером и переносимостью, присущими языкам высокого уровня. Поэтому на основе имевшихся в то время более старых языков программирования Ритчи и Томпсоном был разработан язык С.



 

 

 

Рассмотрим философию языка С. В общем случае язык про­граммирования базируется на двух основных понятиях — это данные и алгоритмы. Дан­ные представляют собой информацию, которую программа обрабатывает. А алгоритмы — это методы, которые программа использует (для обработки данных, см. рис.). Язык С, как и болыпинство основных языков программирования того времени, является процедур­ным — это означает, что основной акцент в нем делается на алгоритмах. Теорети­чески процедурное программирование заключается в том, что сначала определя­ется последовательность действий, кото­рая должна быть выполнена компьюте­ром, а затем эти действия реализуются с помощью языка программирования. Программа содержит набор процедур, которые компьютер должен выполнить, чтобы получить требуемый результат. Та­кая деятельность во многом напоминает кулинарный рецепт, который предписы­вает последовательность действий (про­цедур), необходимых для выпечки пирога. При использовании первых проце­дурных языков, таких как FORTRAN и BASIC, по мере увеличения объема программ пришлось столкнуться с проблемами организационного плана. Например, в про­граммах часто используются операторы ветвления, которые в зависимости от результа­тов некоторой проверки направляют ход выполнения программы на тот или иной набор операторов. Во многих старых программах алгоритм настолько запутан, что его крайне сложно понять при чтении текста, а модифика­ция такой программы чревата осложнениями. Чтобы решить эту проблему, компьютер­щики разработали более упорядоченный стиль программирования, называемый структурным программированием. Язык С включает ряд элементов, облегчающих применение структурного программирования. Например, структурное программирование ограничи­вает возможности ветвления (выбора следующего выполняемого оператора) небольшим набором хорошо функционирующих конструкций. Эти конструкции (циклы for, while, do while и оператор if else) входят в словарь языка С.

Еще одним из новых принципов программирования было проектирование программ сверху вниз.

Идея заключается в разбиении большой программы на более мелкие, легче решае­мые задачи. Если одна из этих задач по-прежнему остается слишком обширной, ее так­же следует разделить на более мелкие задачи. Этот процесс продолжается до тех пор, пока программа не будет разделена на маленькие, легко программируемые модули. (Рассмотрим пример. Есть просьба: наведите порядок в своем кабинете. Ой! Хорошо, на­ведите порядок в письменном столе, на столе и на своих книжных полках. Ох! Хорошо, начните с письменного стола и наведите порядок в каждом выдвижном ящике, начиная со среднего. Гм, с этой задачей я, пожалуй, могу справиться.) Язык С упрощает такой подход, поскольку "поощряет" программистов разрабатывать программные единицы (элементы), называемые функциями, которые представляют собой модули отдельных задач. Как можно было заметить, методика структурного программирования отражает процедурный подход, при котором программа рассматривается с точки зрения выполняемых ею действий.

 

Функциональный базис языка С++



<== предыдущая лекция | следующая лекция ==>
 | Объектно-ориентированное программирование.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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