- Понятие о языках программирования
- Лекция 8. Языки программирования
- 2.1. Основные понятия языков программирования.
- 2.2. Структуры и типы данных языка программирования
- 2.3. Ада Лавлейс – первый в мире программист
- 2.3.1. Краткая историческая справка
- 9. Языки программирования
- 9.1. Основные понятия и элементы языков программирования
Понятие о языках программирования
Языки программирования – это формальные языки, специально созданные для общения человека с компьютером. Каждый язык программирования, равно как и «естественный» язык (русский, английский и т.д.), имеет алфавит, словарный запас свои грамматику и синтаксис, а также семантику.
Алфавит – фиксированный для данного языка набор основных символов, допускаемых для составления текста программы на этом языке.
Синтаксис – система правил, определяющих допустимые конструкции языка программирования из букв алфавита.
Семантика – система правил однозначного толкования отдельных языковых конструкций, позволяющих воспроизвести процесс обработки данных.
Взаимодействие синтаксических и семантических правил определяют те или иные понятия языка, например, операторы, идентификаторы, переменные, функции и процедуры, модули и т.д. В отличие от естественных языков правила грамматики и семантики для языков программирования’, как и для всех формальных языков, должны быть явно, однозначно и четко сформулированы.
Синтаксис – описывает структуру программ как наборов символов (обычно говорят — безотносительно к содержанию).
Пример синтаксической ошибки : употребление оператора цикла For без To или Next, или отсутствие знака равенства в приведенной на рисунке программе.
Синтаксические ошибки распознаются встроенным синтаксическим анализатором.
Синтаксису языка противопоставляется его семантика. Синтаксис языка описывает «чистый» язык, в то же время семантика приписывает значения (действия) различным синтаксическим конструкциям.
Семантика – определяет смысловое значение предложений алгоритмического языка.
Пример семантической ошибки :
1) For i As Integer = 1 To 10 Step -2
2) Если надо вычислить , то запись x = a / b * c содержит семантическую ошибку, т.к. приоритет операций деления и умножения одинаков, то вначале а делиться на b , а затем полученный результат умножает на с .
Поиск этих ошибок происходит с помощью логического анализа работы программы и ее тестирования.
Классы языков программирования
- Императивное
- Декларативное
- функциональное
- логическое
- Процедурное
- Объектно-ориентированное
- Неструктурное
- Структурное
- Языки низкого уровня
- Языки высокого уровня
- алфавит языка значительно шире машинного, что делает его гораздо более выразительным и существенно повышает наглядность и понятность текста;
- набор операций, допустимых для использования, не зависит от набора машинных операций, а выбирается из соображений удобства формулирования алгоритмов решения задач определенного класса;
- конструкции операторов задаются в удобном для человека виде;
- поддерживается широкий набор типов данных.
- Фортран – старейший язык программирования, предназначен для решения математических задач.
- Кобол – для решения экономических задач
- Delphi – универсальный.
- Бейсик , Pascal – для обучения.
- Java (джава) – язык сетевого программирования.
- Для системного программирования наиболее подходят языки C, C++, C#. Cи – язык разработанный для написания операционной системы UNIX (обычно ядро операционных систем писали на Assembler ).
Лекция 8. Языки программирования
Компьютерная программа представляет собой логически упорядоченную последовательность команд, предназначенных для управления компьютером. Процессор компьютера исполняет программы, написанные на машинным кодом. Писать программы в машинных кодах вручную очень сложно, причем с ростом размера программы эта задача усложняется. В компьютерах первого поколения использовались программы, написанные в машинных кодах, причем для каждого компьютера существовал свой собственный машинный код. В тот период (начало 50-х гг.) средства программирования и программное обеспечение только зарождались и были еще не развиты. Для того чтобы сделать программу читабельной и иметь возможность следить за ее смысловой структурой, разработали символический язык ассемблер, близкий к машинному (конец 50-х – начало 60-х гг.), в котором появилось понятие переменной. Ассемблер стал первым полноценным языком программирования. Благодаря этому заметно уменьшилось время разработки и возросла надежность программ. Для записи кодов операций и обрабатываемой информации в ассемблере используются стандартные обозначения, позволяющие записывать числа и текст в общепринятом виде, для кодов команд приняты мнемонические обозначения, например MOV AX, BX (переместить машинное слово из регистра AX в регистр BX), ADD AX, CX (сложить регистр AX c CX), JMP loop1 (безусловный переход не метку loop1) и др. Для обозначения величин, размещаемых в памяти, можно применять имена констант. После ввода программы ассемблер сам заменяет символические имена на адреса памяти, а символические коды команд на числовые. Использование ассемблера сделало процесс программирование более наглядным. Дальнейшее развитие этой идеи привело к созданию языков программирования высокого уровня, в которых длинные и сложные последовательности машинных кодов были заменены одним единственным обозначающим их словом – операторы.
2.1. Основные понятия языков программирования.
Любой язык программирования должен включать следующие понятия:
алфавит– множество символов, с помощь которых записывается текст программы;
оператор – синтаксическая конструкция, предназначенная как для записи алгоритмических действий по преобразованию данных, так и для задания порядка выполнения других действий;
идентификатор (имя) – специальная неделимая группа символов из алфавита языка, используемая при записи операторов и ряда других элементов программы;
константа – идентификатор, имеющий постоянное значение, которое может быть в дальнейшем использовано в программе; изменять значение констант запрещается;
метка – элемент программы, предназначенный для указания в программе места, на которое затем можно передать управление.
переменная – элемент данных, с которыми производятся действия; переменная обозначается идентификатором; любая переменная характеризуется таким важным понятием, как
тип – множество значений переменной и, как следствие, множество допустимых операций над этой переменной;
подпрограмма – часть программы в виде отдельной синтаксической единицы, в которой описываются определенные действия; каждая подпрограмма имеет свое имя; подпрограммы, как правило, подразделяются на процедуры и функции;
выражение – элемент программы, содержащий последовательность констант и (или) переменных, соединенных знаками операций, либо включающий одну или несколько функций, аргументом которых может быть другое выражение; константы, переменные и выражения часто называют операндами.
2.2. Структуры и типы данных языка программирования
Любая программа на процедурном языке программирования, как правило, оперирует с числовыми данными, поэтому любой язык программирования содержит числовые типы, которые подразделяются на целые и вещественные типы. Ряд языков обладает по одному или двум представителям целых и вещественных типов (например, в Фортране-77 насчитывается три целых и два вещественных типа – с обычной и одинарной точностью, а в языке Object Pascal – 9 целых и 7 вещественных типов). Каждый тип характеризуется объемом занимаемой памяти и множеством допустимых значений операндов для данного типа.
Современные языки программирования содержат, кроме того, логический, символьный и строковый (текстовый) типы. Практически ни один язык программирования не обходится без массивов. Язык Pascal весьма богат множеством стандартных типов и позволяет программистам создавать свои, пользовательские, типы.
2.3. Ада Лавлейс – первый в мире программист
2.3.1. Краткая историческая справка
Августа Ада Кинг Лавлейс (англ. Augusta Ada King Byron, Countess of Lovelace), английский математик.
Род деятельности: математика
Дата рождения: 10 декабря 1815 г.
Место рождения: Лондон, Великобритания.
Дата смерти: 27 ноября 1852 г.
Авгу́ста А́да Кинг (урождённая Ба́йрон), графиня Ла́влейс (англ. Augusta Ada King Byron, Countess of Lovelace, обычно упоминается просто Ада Лавлейс; 10 декабря 1815, Лондон, Великобритания — 27 ноября 1852, там же) — английский математик. Известна прежде всего созданием описания вычислительной машины, проект которой был разработан Чарльзом Бэббиджем. Составила первую в мире программу (для этой машины). Ввела в употребление термины «цикл» и «рабочая ячейка».
9. Языки программирования
9.1. Основные понятия и элементы языков программирования
Язык программирования – это набор букв, слов, чисел и мнемонических сокращений, используемых при записи компьютерной программы, а также правила записи программы из элементов языка (его синтаксис).
Обычный разговорный (естественный) язык состоит из четырех основных элементов: символов, слов, словосочетаний и предложений. Компьютерный (формальный) язык программирования содержит подобные же элементы, только слова называют элементарными конструкциями, словосочетания – выражениями, предложения – операторами. Язык программирования (как и любой другой язык), образуют три его составляющие: алфавит, синтаксис и семантика.
Алфавит – фиксированный для данного языка набор символов (букв, цифр, специальных знаков и т. д.), которые могут быть использованы при написании программы.
Синтаксис – правила построения из символов алфавита специальных конструкций, с помощью которых составляется команда. Множество правил порождения элементов языка программирования, выражений и предложений называют грамматикой формального языка или формальной грамматикой.
Семантика – система правил толкования конструкций языка. Таким образом, программа составляется с помощью соединения символов алфавита в соответствии с синтаксическими правилами и с учетом правил семантики.
У формального языка много общего с естественным языком, предложения которого также строятся в соответствии с грамматическими правилами. Однако грамматика естественного языка, подобно наукам о природе с известной степенью достоверности описывает и обобщает результаты наблюдений за естественным языком как за явлением окружающего мира. Характерные для грамматики естественных языков исключения из правил свидетельствуют о том, что зафиксированная в грамматике языка система правил не может в точности описать все закономерности развития языка.
Формальные языки проще естественных языков. Они создаются одновременно с системой правил построения слов и предложений. Исключения из правил в формальном языке могут свидетельствовать лишь о противоречивости и некорректности системы грамматических правил.
Иными словами, язык программирования имеет жёсткую структуру. По русски (на естественном языке) мы можем одну и ту же мысль выразить по-разному: «завтра идти на работу», «на работу идти завтра» или «завтра на работу идти». Эмоциональные оттенки этих фраз будут немного отличаться благодаря смысловому ударению. Однако, в программах такие вольности не допускаются. Если в любой конструкции языка программирования изменить порядок следования элементов, конструкция станет ошибочной.
Грамматические правила можно записывать различными способами. Грамматика естественного языка традиционно описывается в виде грамматических правил на естественном языке. Грамматика формального языка также может быть описана в виде множества правил на естественном языке. Но обычно для этого используют специальные средства записи: формулы и схемы.
Для многих широко распространённых языков программирования созданы международные стандарты. Специальные организации проводят регулярное обновление и публикацию спецификаций и формальных определений соответствующего языка. В рамках таких комитетов продолжается разработка и модернизация языков программирования и решаются вопросы о расширении или поддержке уже существующих и новых языковых конструкций.
Основными элементами (понятиями) языков программирования являются следующие.
Имена (идентификаторы) – последовательность символов для обозначения объектов программы (переменных, массивов, функций и дp.).
Операции. Существуют следующие типы операций:
- арифметические операции: сложение, обозначается символом “+”; вычитание, обозначается символом “–”; умножение, обозначается символом “*”; деление, обозначается символом “/” и дp.;
- логические операции: операции “логическое и”, “логическое или”, “логическое не” и др.;
- операции отношения: меньше, обозначается символом “”; меньше или равно, обозначается символами “=”; равно, обозначается символом “=”; не равно, обозначается символами “<>”.
- операция конкатенации символьных значений дpуг с другом, изображается знаком «+».
- числовые: (7.5, 12;)
- логические: (true(истина), false(ложь));
- символьные: («А», «+»; и т.п.)
- строковые: (например «abcde», «информатика»).
- целые,
- вещественные,
- логические,
- символьные
- строковые.
- арифметические;
- логические;
- строковые.