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

Автор работы: Пользователь скрыл имя, 20 Марта 2014 в 14:11, курсовая работа

Описание работы

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

Содержание работы

Введение
Основная часть
1. Языки программирования высокого уровня
2. Логические выражения
Заключение
Глоссарий
Список использованных источников

Файлы: 1 файл

Основные данные о работе Языков программирования.doc

— 164.00 Кб (Скачать файл)

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

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

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

1. Имена (идентификаторы) — употребляются  для обозначения объектов пpогpаммы (переменных, массивов, функций и  др.).

2. Операции. Типы операций:

• арифметические операции + , — , * , / и дp. ;

• логические операции и , или , не ;

• операции отношения < , > , <= , >= , = , <> ;

• операция сцепки (иначе, "присоединения", "конкатенации" ) символьных значений друг с другом с образованием одной длинной строки; изображается знаком "+".

3. Данные — величины, обрабатываемые пpогpаммой. Имеется три основных вида данных: константы, переменные и массивы.

• Константы — это данные, которые зафиксированы в тексте программы и не изменяются в процессе ее выполнения.

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

• Массивы — последовательности однотипных элементов, число которых фиксировано и которым присвоено одно имя. Положение элемента в массиве однозначно определяется его индексами (одним, в случае одномерного массива, или несколькими, если массив многомерный). Иногда массивы называют таблицами.

4. Выражения — предназначаются  для выполнения необходимых вычислений, состоят из констант, переменных, указателей функций (напpимеp, exp(x)), объединенных знаками операций.

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

Различают выражения арифметические, логические и строковые.

• Арифметические выражения служат для определения одного числового значения.

• Логические выражения описывают некоторые условия, которые могут удовлетворяться или не удовлетворяться. Таким образом, логическое выражение может принимать только два значения — "истина" или "ложь" (да или нет).

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

5. Операторы (команды). Оператор —  это наиболее крупное и содержательное  понятие языка: каждый оператор  представляет собой законченную фразу языка и определяет некоторый вполне законченный этап обработки данных.

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

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

Символы языка — это основные неделимые знаки, в терминах которых пишутся все тексты на языке.

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

Выражение в языке программирования состоит из элементарных конструкций и символов, оно задает правило вычисления некоторого значения.

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

Программирование на паскале

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

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

Во-вторых, Паскаль хорошо приспособлен для применения технологии разработки программ сверху-вниз (пошаговой детализации).

В-третьих, Паскаль содержит большое разнообразие различных структур данных, что обеспечивает простоту алгоритмов, а следовательно снижение трудоемкости при разработке программ.

Основные отличия алгоритмических языков от машинных языков:

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

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

3. формат предложений достаточно  гибок и удобен для использования, что позволяет с помощью одного  предложения задать достаточно  содержательный этап обработки  данных;

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

5. для задания операндов операций, используемым в алгоритме данным  присваиваются уникальные имена, выбираемые программистом, и ссылка  на операнды производится, в основном, по именам;

6. в языке может быть предусмотрен  значительно более широкий набор  типов данных по сравнению  с набором машинных типов данных.

Из вышеперечисленного следует, что алгоритмический язык в значительной мере является машинно-независимым.

Для описания синтаксиса алгоритмического языка используется специальный метаязык, позволяющий в компактной форме отразить все особенности конкретных конструкций алгоритмического языка. Мы воспользуемся для этих целей металингвистическими формулами Бэкуса-Наура (язык БНФ).

При описании синтаксиса языка используются некоторые его понятия: определив простейшие из них, с их помощью можно уже достаточно просто определить более сложные понятия и т.д., пока не будет определено наиболее сложное понятие – программа. С точки зрения синтаксиса каждое определяемое понятие (но не основной символ) есть метапеременная языка БНФ, значением которой может быть любая конструкция (т.е. последовательность основных символов) из некоторого фиксированного для этого понятия набора конструкций.

Для каждого понятия языка должна существовать единственная метаформула, в левой части которой указывается определяемое понятие (метапеременная языка БНФ), а правая часть формулы тем или иным способом задает все множество значений этой метапеременной (все допустимые конструкции, которые объединяются в это понятие). Все метапеременные заключаются в специальные угловые скобки < и >, которые не принадлежат алфавиту определяемого языка, т.е. являются метасимволами, например, <выражение>, <число> и т.д. Основные же символы языка указываются непосредственно. Левая и правая части метаформулы разделяются специальным знаком : : =, смысл которого можно интерпретировать как «по определению есть». Обычно в качестве значений метапеременной может приниматься любая из нескольких допустимых конструкций. Все допустимые конструкции указываются в правой части формулы и разделяются метасимволом «|», смысл которого можно передать словом «или» («либо»). Кроме перечисления всех возможных значений метапеременной в правой части метаформулы может быть указано правило построения значений. Турбо Паскаль — это не только язык и транслятор с него, но еще и операционная оболочка, обеспечивающая пользователю удобство работы. Турбо Паскаль вышел за рамки учебного предназначения и стал языком профессионального программирования с универсальными возможностями. С помощью встроенного в систему текстового редактора можно формировать в памяти любые тексты, не только программы на Паскале. В частности, это могут быть исходные данные решаемой задачи в текстовой форме. Текст программы, созданный редактором, можно сохранить на диске в виде файла с именем следующего формата. В Паскале заложены возможности непосредственного обращения к некоторым машинным командам, к определенным участкам памяти компьютера. Программы на Паскале, всегда компилируются. Компиляция является аналогом полного предварительного перевода; интерпретация — аналогом синхронного перевода. Паскаль как учебный язык структурного программирования.идентификатор — это любая последовательность букв и цифр, начинающаяся с буквы. В Турбо Паскале к буквам приравнивается также знак подчеркивания. Строчные и прописные буквы в идентификаторах и служебных словах не различаются. Например: max, MAX, MaX и mAx — одно и то же имя.

Длина идентификатора может быть произвольной, но значащими являются только первые 63 символа.

Комментарии. Следующие конструкции представляют собой комментарии и поэтому игнорируются компилятором:

(любой  текст, не содержащий символ «}» }

(* любой текст, не содержащий символы «*)»*)

Буквы русского алфавита употребляются только в комментариях, в литерных и текстовых константах.

Строка, начинающаяся с символов {$ или (*$, является директивой компилятора. За этими символами следует мнемоника команды компилятора.

Математические задачи

Задача на графику. Постройте оси Х,Y и начертите цветом LightGreen графики функции Y=sinx,Y=cosx,Y=tgx по выбору пользавателя.

uses

Graph,CRT;

const

k = 100;

var

D,R,i,state : integer;

y : Real;

begin

WriteLn('Vvedite');

WriteLn('"1" dlya grafika Y = SIN X');

WriteLn('"2" dlya grafika Y = COS X');

WriteLn('"3" dlya grafika Y = TG X');

D := Detect;

ReadLn(state);

InitGraph(D,R,'..\bgi');

SetBkColor(Black);

ClearDevice;

SetColor(White);

Line(3,3,3,477);

Line(3,240,637,240);

OutTextXY(5,470,'Y');

OutTextXY(630,245,'X');

SetColor(58);

for i:=1 to 637 do

begin

case state of

1: y:=sin(i/k);

2: y:=cos(i/k);

3: y:=sin(i/k)/cos(i/k);

else

begin

Write('Input INCORRECT');

ReadLn;

ReadLn;

halt;

end;

end;

y:= - y * k;

y := y + 240;

putpixel(i+3,round(y),58);

end;

ReadLn;

ReadLn;

end.

Первое знакомство с Паскалем

Паскаль, в его первоначальном виде представляет собою чисто процедурный язык и включает в себя множество алголоподобных структур и конструкций с зарезервированными словами наподобие: if, then, else, while, for, и т. д. Тем не менее Паскаль также содержит большое количество возможностей для структурирования информации и абстракций, которые отсутствуют в изначальном Алголе-60, такие как определение типов, записи, указатели, перечисления, и множества.

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

Программирование заключается в записи алгоритма на языке программирования и отладке программы. Текст программы записывается в текстовом редакторе, затем программа компилируется - переводится транслятором (переводчиком) в машинные коды и запускается на выполнение. Процесс отладки программы начинается с выявления:

- синтаксических ошибок в тексте (неверно записанных операторов),

- ошибок при выполнении программы (недопустимые математические действия, операции с числами, превосходящими предельные значения),

- алгоритмических ошибок (неверно  составлен или запрограммирован  алгоритм ), и заканчивается, как  правило написанием новой программы, поскольку каждый программист знает, что программу можно усовершенствовать до бесконечности, а отлаженную программу лучше не изменять.

Программы на Паскале начинаются с ключевого слова program и следующего за ним имени программы с точкой с запятой (в некоторых диалектах является необязательным), за именем может в скобках следовать список внешних файловых дескрипторов в качестве параметров; за ним следует тело программы, состоящее из секций описания переменных, типов и констант, объявлений процедур и функций и следующего за ними блока операторов, являющегося точкой входа в программу. В языке Паскаль блок ограничивается ключевыми словами begin и end. Операторы разделяются точками с запятой, после тела помещается точка, служащая признаком конца программы. Регистр символов в Паскале не имеет значения. Простые типы данных Паскаля: числа с плавающей запятой (real), целые (integer), символьный (char), логический (boolean) и перечисления (конструктор нового типа, введённый в Паскале).

var { секция объявления переменных }

i: Integer; { переменная целого типа }

c: Char; { переменная-символ }

b: Boolean; { логическая переменная }

s: String; { переменная строки }

t: Text; { переменная для обьявления  текстового файла }

e: (apple, pear, banana, orange, lemon); { переменная типа-перечисл. }

Таким образом, простейшая программа на Паскале будет выглядеть следующим образом:

program p;

begin

end.

Программа не выполняет никаких действий и содержит пустой блок операторов.

Пример программы, выводящей строку «Hello, World!»:

program HelloWorld(output);

begin

writeln('Hello, World!') { оператор вывода строки }

end.

Арифметические выражения записываются по следующим правилам:

• Нельзя опускать знак умножения между сомножителями и ставить рядом два знака операций.

• Индексы элементов массивов записываются в квадратных скобках.

• Для обозначения переменных используются буквы латинского алфавита.

• Операции выполняются в порядке старшинства: сначала вычисление функций, затем возведение в степень, потом умножение и деление и в последнюю очередь — сложение и вычитание.

• Операции одного старшинства выполняются слева направо. В языке Pascal вообще не предусмотрена операция возведения в степень, в Pascal x^y записывается как exp(y*ln(x)), а x^y^z как exp(exp(z*ln(y))*ln(x)).

Некоторые сведения о системе Турбо Паскаль

Название Турбо Паскаль обычно воспринимается в двух смыслах:

Информация о работе Языки программирования высокого уровня