Uploaded by SGrigorieva

1лекция Введение в программирование

advertisement
ВВЕДЕНИЕ В ТЕОРИЮ
ПРОГРАММИРОВАНИЯ
1 лекция
Дисциплина «Программирование IBM PC
совместимых контроллеров»
1. Инструментальное программное
обеспечение. Языки и системы
программирования
Инструментальное программное
обеспечение
Инструментальное программное обеспечение
обеспечивает создание новых программных
продуктов для ПЭВМ. Инструментальное
программное обеспечение представлено языками и
системами программирования.
Язык программирования – формальная знаковая
система, предназначенная для описания алгоритмов
в форме, которая удобна для исполнителя (например,
компьютера).
Составными частями языка программирования
являются:
алфавит – конечный набор элементарных
символов, разрешенных для использования;
синтаксис – набор правил образования языковых
конструкций и символов алфавита;
семантика – набор правил однозначного толкования
языковых конструкций.
Инструментальное программное
обеспечение
Система программирования – это система
разработки программного обеспечения на
каком-либо языке программирования,
включающая в себя следующие компоненты:
интегрированную среду программирования;
транслятор;
редактор текстов программ,
библиотеки функций,
программную документацию,
отладчик и др.
Интегрированная среда программирования (от англ.
Integrated Development Environment, IDE) - это
программа, имеющая встроенный редактор текстов,
подсистему работы с файлами, транслятор, встроенный
отладчик, справочную систему, некоторые библиотеки
функций. Многие современные среды разработки также
включают браузер классов, инспектор объектов и
диаграмму иерархии классов для использования при
объектно-ориентированном программировании.
Транслятор – программа, которая преобразует команды
программ, написанных на языках высокого уровня, в
команды, записанные в машинных кодах, использующих
двоичный алфавит (в последовательность чисел
понятную ПК). Трансляторы бывают двух видов:
интерпретаторы и компиляторы. Оба вида трансляторов
выполняют одну и туже операцию, но делают это поразному.
Интерпретаторы, преобразуя команду на машинный
язык, сразу же дают указания на ее выполнение, не
записывая перевод. Так происходят с каждой командой
программы. Программа будет выполнена машиной
только при наличие интерпретатора, который от строки к
строке переводит команды и сразу же их выполняет. При
повторном выполнении программы снова выполняется
перевод.
Компилятор же не выполняет команды, а просто
переводит всю программу на машинный язык и
записывает свой перевод в специальную, так
называемую, исполнимую программу, программу,
записанную в двоичном коде.
В простейшем случае интерпретатор читает исходный
текст программы по одной строке за раз, выполняет эту
строку и только после этого переходит к следующей.
Компилятор читает сразу всю программу и конвертирует
ее в объектный код (машинный двоичный код). Когда
программа скомпилирована, в ее коде уже нет
отдельных строк исходного кода.
2 Классификация и эволюция языков
программирования





На сегодня существуют сотни языков
программирования. Их можно разделить на
следующие группы:
машинные языки, языки низкого уровня
языки ассемблера
языки высокого уровня
языки визуального программирования
интеллектуальные языки программирования
Языки низкого уровня, ассемблеры


Машинные языки, языки низкого уровня - двоичные языки
процессоров, представляющие собой набор (алфавит) команд,
записанных в двоичном коде (0,1), которые данный процессор может
выполнить непосредственно, если эти команды ввести в его память в
виде последовательности или сразу подать в арифметическологическое устройство процессора. Примеры: язык процессора IBMPC, язык ARM-процессора.
Ассемблеры, автокоды, системные языки, языки среднего
уровня - текстовые языки, понятные человеку и однозначно
переводимые (транслируемые) в языки низкого уровня, то есть
машинный двоичный код. Программирование на 2GL на порядок
производительнее, чем на 1GL, так как более удобны для
человеческого восприятия. Примеры: Макроссемблер, С, PL/1.
Языки ВЫСОКОГО уровня

Языки высокого уровня - текстовые языки, приближенные по
словарю и синтаксису к человеческому языку, позволяющие
записывать программные конструкции в форме, удобной для
человеческого мышления и подобные обычному тексту. На
порядок производительнее, так как более удобны для
человеческого восприятия и на порядок короче ассемблерных.
Примеры: PHP, С++, С# и практически все сетевые языки.


Языки визуального программирования - языки блок-схем,
позволяющие отображать алгоритмы в программных проектах,
что облегчает создание и анализ
алгоритмов. Программирование на 4GL на порядок
производительнее, чем на 3GL. Примеры: RAD-системы, CADпакеты, OLAP-системы.
Интеллектуальные языки программирования - позволяют
передать функцию создания алгоритмов компьютеру, а за
человеком оставить лишь постановку задачи.
Программирование на 5GL на порядок производительнее, чем
на 4GL. Примеры: система MatCAD, экспертные системы.
Algol 60
CPL - комбинированный язык программирования
BCPL – базовый комбинированный язык
программирования
CPL
BCPL
B
C
Комитет ANSI/ISO
90-e годы
C++
Dennis Ritchie
70-е годы
C++ standard
Bjarn Stroustrup
80-e годы
Java
C#
Визуальное
программирование
C++ net
C++ builder
Языки ВЫСОКОГО уровня
1957
году – создан ФОРТРАН (англ. FORmula TRANslation, перевод
формул) группой программистов американской фирмы IBM под
руководством Джона Бекуса. Несколько позже в Европе был разработан
язык АЛГОЛ (англ.ALGOrythmic Language, алгоритмический язык). Эти
языки послужили основой для других новых языков программирования.
1965
год – создан БЕЙСИК (англ. basic, базовый, или Beginner's Allpurpose Symbolic Instruction Code, многоцелевой язык символических
команд для начинающих), Джон Кемени, США. Он представляет собой
упрощенную версию ФОРТРАНА, который оказался сложным для
большинства пользователей из-за своей избыточности.
1969
год – разработка языка программирования Pascal швейцарским
математиком Никлаусом Виртом. В него изначально были заложены
широкие возможности. Однако, имел неструктурные операторы.
Дальнейшее
развитие язык Pascal получил в виде системы
программирования DELPHI.
1972
г. Денис Ритчи, сотрудник фирмы Bell Laboratories, США создание языка С.
Языки программирования С и С++: этапы эволюции
и современное состояние
Язык
программирования С был разработан в лабораториях Bell Laboratories в США в
период с 1969 по 1973 год Кеном Томпсоном и Деннисом Ритчи.
Язык назвали С (Си) (C — третья буква латинского алфавита), потому что многие его
особенности берут начало от старого языка B (Би) (B — вторая буква латинского алфавита).
Язык С сделал более простым написание больших программ с минимумом ошибок по
правилам процедурного программирования.
По замыслу автора, язык С должен был обладать противоречивыми свойствами. С одной
стороны, это язык программирования высокого уровня, поддерживающий методику
структурного программирования. С другой стороны, это язык низкого уровня (подобно
Ассемблеру), т.к. позволял манипулировать битами, байтами и адресами, т.е. базовыми
элементами, с которыми работает компьютер. Поэтому С был уникальным языком и его
называли языком среднего уровня.
Язык программирования С – стандартизованный процедурный язык программирования,
обеспечивающий структурный стиль программирования.
В конце 1970-х годов С начал вытеснять Бейсик с позиции ведущего языка для
программирования микрокомпьютеров. В 1980-х годах он был адаптирован для
использования в IBM PC, что привело к резкому росту его популярности.
Несмотря на то что С был одним из самых любимых и распространенных
профессиональных языков программирования, настало время, когда его возможности по
написанию сложных программ достигли своего предела. Желание преодолеть этот барьер и
помочь программисту легко справляться с еще более сложными программами – стало
основной причиной создания С++.
Языки программирования С и С++: этапы эволюции
и современное состояние
В 1979 - 1980 гг. в той же фирме Bell Laboratories ее сотрудником
Бьерном Страуструпом было разработано расширение языка С,
предназначенное для объектно-ориентированного программирования
(ООП), которое называлось «С с классами».
В 1983 язык был назван С++, что можно (имея в виду операцию
инкрементирования языка С) трактовать как увеличенный или
расширенный язык С.
Язык С++ принято считать языком ООП. Однако, С++ произошел от С,
поэтому по-прежнему сохраняет свойства структурного языка
программирования. В дальнейшем, С и С++ развивались независимо, что
привело к некоторой несовместимости между ними.
В 1983 году Американский Национальный Институт Стандартизации
(ANSI) сформировал комитет для разработки стандартной спецификации
С. В 1989 году он был утверждён как ANSI C. ANSI C сейчас
поддерживают почти все существующие компиляторы. Любая программа,
написанная на стандартном С, гарантированно будет правильно
выполняться на любой платформе, имеющей соответствующую
реализацию С. Однако большинство программ написаны так, что они
будут компилироваться только определённым компилятором.
Языки программирования С и С++: этапы эволюции
и современное состояние
Существует множество различных реализаций для С++. Каждая из них имеет
свои достоинства и недостатки. Наибольшей популярностью пользуются
реализации этого языка фирм Borland – Turbo C++, C++ Builder и Microsoft –
Visual C++, а также Symantec – Symantec C++.
С был создан для использования в операционной системе UNIX. С тех пор он
был импортирован на многие другие операционные системы и стал одним из
самых используемых языков программирования.
Язык С++ – это ключ к современному объектно-ориентированному
программированию. Он создан для разработки высокопроизводительного
программного обеспечения и чрезвычайно популярен среди программистов.
Сегодня быть профессиональным программистом высокого класса означает
быть компетентным в С++.
С/С++ ценят за его эффективность; он является самым популярным языком для
создания системного программного обеспечения (операционных систем,
драйверов и др.). Язык С++ – один из основных языков разработки
трансляторов.
С/С++ также часто используют для создания прикладных программ. Разработка
графического пользовательского интерфейса на языке С++ выполняется, в
основном, тогда когда необходимо разрабатывать сложные, нестандартные
интерфейсы.
Консольные и оконные приложения
Консольное приложение – приложение, не имеющее
графического интерфейса, для которого устройством ввода
является клавиатура, а устройством вывода - монитор.
Консольные приложения удобны как иллюстрации при
рассмотрении общих вопросов программирования, когда
необходимо сосредоточиться на сути проблемы не задумываясь
о пользовательском интерфейсе.
На практике консольные
приложения применяются для различного вида утилит, тестовых
программ и т.д.
Оконное приложение (Windows-приложение) – приложение, в
котором используется Windows-интерфейс GUI (Grphical User
Interface – графический интерфейс пользователя).
Реализация заданий данного курса будут выполняться в
консольных приложениях. GUI-программы отличаются высокой
сложностью. Поэтому они не совсем подходят для обучения
языку программирования. Освоив С++ на консольных
приложениях, вы сможете применить свои знания к Windowsпрограммированию.
Download