Файл: Современные языки программирования (1. Основы программирования).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 04.07.2023

Просмотров: 83

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Введение

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

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

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

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

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

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

На сегодняшний день в мире существуют сотни различных языков программирования, которые в общем можно разделить на языки программирования низкого (Asembler) и высокого уровня (Pascal, Basic, Delphi, C и т.д.).

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


Объект исследования – основы алгоритмизации и программирования.

Предмет исследования – языки программирования высокого уровня.

Основные задачи работы:

  1. Определить этапы решения задач с помощью ЭВМ;
  2. Исследовать развитие языков программирования;
  3. Исследовать классификации языков программирования;
  4. Определить классификацию языков программирования высокого уровня;
  5. Сделать обзор некоторых языков программирования высокого уровня (Basic, Java).

1. Основы программирования

1.1.Языки программирования. Почему нельзя обойтись одним языком?

В современном мире сложно представить себе жизнь без персонального компьютера, смартфона, планшетного компьютера и многих других цифровых устройств, так называемых «гаджетов» (англ. gadget — штуковина, приспособление, устройство, безделушка)[3], которые призваны разнообразить и облегчить жизнь человеку. Каждый день ученые и инженеры различных компаний работают над разработкой нового или усовершенствования старого «гаджета», наделяя его новыми функциями и возможностями.

Резкий технологический прорыв конца 20-го начала 21 веков повлек за собой и активное развитие языков программирования, причем активно развивались как новые языки, так и языки, основанные на других языках. Еще в 20-м веке было известно о 120 языках программирования, которые использовались в США[1].

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

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


Для ответа на эти вопросы необходимо рассмотреть понятие «язык программирования», а также историю появления и основные направления развития современных языков программирования.

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

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

Использование символьных обозначений машинных команд (мнемоник) привело к облегчению, хоть и небольшому, работы программистов. Также программисты научились сопоставлять имена и адреса в памяти ЭВМ. Это стало развитием языков программирования второго уровня. Наиболее ярким представителем языков программирования второго уровня является ассемблер (от англ. assembler — сборщик)[2]. Программы, написанные на ассемблере, имели ряд недостатков, а именно – при переходе на ЭВМ иной архитектуры возникали проблемы совместимости, а также программисту необходимо в решении задачи оперировать терминами «регистр», «ячейка», «команда».

Начиная с середины 1950-х г.г. разработаны так называемые языки высокого уровня, которые не имели жесткой привязки к аппаратной платформе. За исполнение программ высокого уровня на любой платформе отвечает транслятор, переводящий программный код в машинный код. Наиболее яркими представителями языка программирования высокого уровня того времени являются Фортран, Лисп и Кобол[6].

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

Так, например, язык APL был первым языком программирования, в котором была реализована обработка массива. Этот язык оказал основное влияние на функциональное программирование.

Первый язык программирования, в котором реализована поддержка объектно-ориентированного программирования, стал язык Симула,


С 1969 по 1973 г.г. велась активная разработка языка Си (С), который приобрел наибольшую популярность в мире. Многие операционные системы, например, Windows, были написаны на этом языке программирования.

Среди языков логического программирования можно выделить Пролог, созданный в 1972 году.

Каждый из приведенных языков программирования стал родоначальником целых семейств современных языков. На рисунке 1 представлено генеалогическое дерево языков программирования[4]:

Рисунок 1. Генеалогическое дерево языков программирования.

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

Действительно, программирование микроконтроллеров и написание прикладной программы требует разных подходов, к тому же, несмотря на сложность в написании, программы на языке программирования низкого уровня (на ассемблере) работают быстрее и дают разработчику полный контроль над каждой ячейкой памяти. Однако код программ, написанных на разных языках программирования и выполняющих одно и то же действие, будет отличаться разительно. Ниже приведен код программы на ассемблере, выводящий на экран компьютера строку «Hello world» :

.MODEL SMALL

.STACK 100h

.DATA

HelloMessage DB 'Hello World',13,10,'$'

.CODE

START:

mov ax,@data

mov ds,ax

mov ah,9

mov dx,OFFSET HelloMessage

int 21h

mov ah,4ch

int 21h

END START

Эта же программа на языке С++ будет выглядеть так:

#include <iostream>

int main()

{

std::cout << "Hello, World!" << std::endl;

return 0;

}

А с использованием языка python этаже программа займет всего 2 строчки:

#!/usr/bin/python

print 'Hello World!'

Но почему же нельзя обойтись каким-либо одним языком программирования?

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

  1. Неструктурное программирование – создание программы ведется под конкретную платформу. Такой код обладает повышенной скоростью исполнения за счет более быстрой компиляции кода в машинный код. Неструктурное программирование применяется, когда необходимо написать драйвер для какого-либо устройства, или запрограммировать микросхему[5].

В неструктурном программировании в основном используется Ассемблер.

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

Наиболее яркими представителями языков, применяемых в структурном программировании, являются такие языки как С, Pascal и Fortran.

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

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

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

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

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

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

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

Наиболее известными языками объектно-ориентированного программирования являются С++, Delphi, Java, Python.

Заложенные в объектно-ориентированные языки свойства, такие как полиморфизм, инкапсуляция и наследование, предоставляет гибкость использования раннее написанного программного обеспечения через использование уже созданных библиотек и классов, вместе с тем позволяет разрабатывать крупные проекты группой лиц без ущерба для производительности.[5]

С помощью языков объектно-ориентированного программирования обычно реализуют сложные и объемные проекты.

Рассмотрев историю развития языков программирования, а также их основные направления, можно сделать вывод о том, что в процессе создания и последующей эволюции каждый язык программирования был направлен на решение задач в какой-то определенной области. Созданные ранее методы решения популярных задач, находили свою реализацию в библиотеках и классах, что позволило современным программистам не тратить время на «изобретение велосипеда». В рамках рассматриваемых вопросов вывод напрашивается сам собой – использование одного языка программирования невозможно из-за разнообразия возникающих перед программистом задач: невозможно написать на скриптовом языке JavaScript драйвер, например, для клавиатуры, так же как и невозможно написать обработчик нажатия виртуальной кнопки на Ассемблере или на Prolog.