Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Программирование: Классификация языков программирования высокого уровня

Содержание:

Введение

В настоящее время, во всем мире присутствует порядка 5 сложных языков программирования, среди них: Фортран, Алгол, С, С++, Java, Паскаль и другие.

Объектом рассмотрения данной курсовой работы являются

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

Целью этой курсовой работы являются:

1) Обзор области применения языков программирования,

2) Обзор высокоуровневых языков программирования,

3) Описание преимуществ высокоуровневых языков программирования,

4) Взгляд на историю становления языков программирования, в целом, и программирования, в частности,

5) Пример функций высокоуровневых языков программирования на основе языка C++

1) Область использования и типы высокоуровневых языков программирования

Высокоуровневые языки программирования применяются в машинно-независимых системах программирования. Подобные системы программирования в сравнении с машинно-ориентированными системами более просты в применении.
Языки программирования высокого уровня делятся на определенные группы:

1) процедурно-ориентированные языки, которые употребляются для записи процедур или алгоритмов обработки информации на любом круге задач:
а) язык Фортран (Fortran) (от Formulae Translation — «преобразование формул»). Фортран является одним из старейших языков программи-
рования высокого уровня. Его существование и применение объясняется простотой его структуры;
б) язык Бейсик (Basic), который можно расшифровать как «Beginner’s All-purpose Symbolic Instruction Code» (BASIC) — «многоцелевой симво-
лический обучающий код для начинающих», применяется с 1964 г. как язык для обучения программированию;
в) язык СИ (С), используется с 1970-х гг. как язык системного программирования специально для написания операционной системы UNIX. В 1980-е гг на основании языка С разработали язык С++, который включает в себя язык С и дополнен средствами объектно-ориентированного программирования;
г) язык Паскаль (Pascal) получил свое название в честь французского ученого Б. Паскаля. Его начал применять с 1968—1971 гг. Н. Вирт. При создании Паскаль использовали для обучения программированию, но впоследствии он стал применяться для разработки программных средств в профессиональном программировании;

2) проблемно-ориентированные языки применяются для разрешения целых классов новых задач, которые появляются при постоянном расширении области применения вычислительной техники:
а) язык Лисп (Lisp — List Information Symbol Processing) изобрел в 1962 г. Дж. Маккарти. Изначально он использовался как средство работы со
строками символов. Лисп применялся в экспертных системах, системах аналитических вычислений и т. п.;
б) язык Пролог (Prolog — Programming in Logic) предназначается для логического программирования в системах искусственного интеллекта;

3) объектно-ориентированные языки, которые развиваются и в наше время. Большинство из таких языков — развитые версии процедурных и проблемных языков, но программирование с помощью языков такой группы более наглядно и просто. Среди таких языков можно выделить следующие:
а) Visual Basic (Basic);
б) Delphi (Pascal);
в) Visual Fortran (Fortran);
г) С++ (С);
д) Prolog++ (Prolog).

2) Достоинства высокоуровневых языков программирования

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

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

3) Конструкции команд (операторов) отражают содержательные виды обработки данных и задаются в удобном для человека виде.

4) Используется аппарат переменных и действий с ними.

5) Поддерживается широкий набор типов данных.

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

3) Эволюция языков программирования

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

40-е годы XX века. Создание программ на основе кодирования машинных команд (Грейс Мюрей Хоппер).

50-60-е годы. Роль программирования в машинных кодах уменьшается, появляются процедурные языки программирования высокого уровня (FORTRAN, ALGOL). Для преобразования команд в машинные коды используются трансляторы.

Середина 60-х годов. Создание специализированного языка программирования, состоящего из простых слов английского языка (BASIC), попытки создать универсальный язык (PL/1, АЛГОЛ-68).

Начало 70-х. Развитие идеи АЛГОЛА о структуризации разработки алгоритмов, создание Н. Виртом языка Паскаль. Создание языка АДА, предназначенного для создания и длительного сопровождения больших программных систем, допускающего возможность параллельной обработки, управления процессами в реальном времени и др.

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

В течение многих лет программное обеспечение строилось на основе операциональных и процедурных языков (Ассемблеры, Фортран, Бейсик, Паскаль, Ада, Си). По мере эволюции языков программирования широкое распространение получили и другие принципиально новые подходы к созданию программ непроцедурноепрограммирование: объектно-ориентированное программирование (языки Си++, Delphi, Visual Basic) и декларативное программирование. Декларативные языки делятся на логические (Пролог) и функциональные (Лисп). В настоящее время разработаны языки работающие в управляемом окружении, обеспечивающие высокую надежность и защищенность создаваемых программ (Java, C#, VB.net).

4) Описание и примеры функций и процедур в языке С++

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

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

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

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

Вызовом подпрограммы называется обращение к ней по имени с целью её использования. Вызов — это запуск подпрограммы.

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

Итак, конкретизируем понятие функции:

Функция — это определенная группа операций с уникальным именем, которая может:

Вызываться по имени в любом месте программы.

Получать определенный набор значений из внешней программы в момент вызова.

Возвращать в качестве значения некоторый результат заранее заданного типа.

Также функцию можно рассматривать как операцию, созданную самим разработчиком.

Известный примером функции является main. Она автоматические вызывается при запуске программы.

Создание функции:

До того, как функция будет вызвана, она должна быть объявлена.

Объявление функции, аналогично объявлению переменной, указываются имя функции, тип значения, которое она может возвращать, набор её параметров (для каждого параметра задаётся тип и, при желании, имя).

Объявление функции называют также её прототипом.

Схема:

Тип_результата Имя_функции (Тип_пар1, Тип_пар2, ...);

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

Имя_функции — уникальный для данного пространства имён идентификатор.

Тип_парN — некоторый существующий (например, встроенный) тип данных для N-oro аргумента.

Примеры:

int max (int, int);

double cube (double)

float massa();

void printarr(*int, int);

После объявления к функции можно обращаться в программе по имени, хотя пока и не понятно, какие действия она будет производить.

Если функция не возвращает никакого результата, т. е. объявлена как void, ее вызов не может быть использован как операнд более сложного выражения (например, значение такой функции нельзя чему-то присвоить).

Определение (описание) функции

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

Схема:

Тип_результата Имя_функции (Тип_пар1 Имя_пар1, Тип_пар2 Имя_пар2, ...) {

Оператор1;

Оператор2;

...

ОператорN;

return n;

};

Имя_парN — уникальное внутри функции имя N-ro параметра. Имена параметров можно задавать и в прототипе функции, тогда в определении надо использовать те же имена.

ОператорN — некоторые операторы и выражения, содержащиеся внутри функции и выполняющиеся каждый раз при вызове функции. Внутри операторов мы можем обращаться к глобальным объектам программы; к локальным объектам, объявленным внутри функции; а также к аргументам функции.

return n — оператор, останавливающий работу функции и возвращающий n в качестве её значения (при этом тип n должен соответствовать типу результата в объявлении функции). Наличие этого оператора обязательно для функции возвращающей значение. Для функции объявленной как void можно вызывать оператор return без аргументов, это досрочно завершит функцию, иначе — будут выполнены все действия до конца блока описания функции.

Блок определения функции называется также её телом.

Одна функция не может объявляться или определяться внутри другой (т.е. нельзя объявлять и определять функции внутри main).

Пример объявления и описания функции:

int max (int, int);

int max (int n1,int n2) {

if(nl > n2) {

return n1;

} else {

return n2;

}

}

int main(void) {

int а = 100 - max(10,20);

cout << a;

return 0;

}

Видно, что вся информация, имевшаяся в прототипе функции, повторяется в её определении, поэтому  если функция определена до её первого вызова, то отдельно прототип указывать не обязательно.

Пример:

double cube (double a) {

return a*a*a;

}

int main(void) {

double pi = 3.1415;

cout << cube(pi);

return 0;

}

Но отдельно прототип указывают в тех случаях, когда функция будет описываться позже своего использования. Например, можно было объявить функцию до main, вызвать её из main, но описать только после main.

Пример:

double cube (double);

int main(void) {

double pi = 3.1415;

cout << cube(pi);

return 0;

}

double cube (double a) {

return a*a*a;

}

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

Заключение

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


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

Список использованной литературы и ресурсов

Вирт Н. Алгоритмы и структуры данных. - М.: Мир, 1989

Информация с сайта https://intellect.ml по теме истории и эволюции языков программирования

Информация с сайта http://life-prog.ru

Информация с сайта http://toltekplus.ru с примерами функций и работы в C++