Файл: «Современные языки программирования» (История развития языков программирования).pdf
Добавлен: 28.03.2023
Просмотров: 203
Скачиваний: 4
ВВЕДЕНИЕ
Каждый год число языков программирования растет. Профессиональному программисту необходимо анализировать актуальность тех или иных языков и все время обучаться новым.
Актуальность темы курсовой работы обусловлена тем, что в современном ритме жизни существует потребность автоматизирования задач, процессов с помощью современных ЭВМ. Основными инструментами автоматизации являются языки программирования.
В данной курсовой работе объектами исследования выступают языки программирования.
Целью курсовой работы изучение языков программирования, их классификации и истории развития.
Цели исследования:
1. Изучить историю развития языков программирования;
2. Изучить основные понятия и классификации языков программирования;
3. Изучить понятие алгоритма и его построения;
4. Сделать обзор современных языков программирования
Задачей исследования является практическое применение программирования на языке VBA.
Для написания курсовой работы были изучены достоверные, актуальные на сегодняшний день источники, полностью раскрывающие тему данного исследования.
Применяемы технические средства: Intel(R) Core (TM) I5-7300U @ 2.60GHz, операционная система Microsoft Windows 10
Данная курсовая работа выполнена в программе Microsoft Word 2016, Microsoft Excel 2016.
ГЛАВА 1. ОСНОВНЫЕ ПОНЯТИЯ И КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
Язык программирования – это инструмент для планирования поведения некоторого устройства-исполнителя. Планы, управляющие поведением компьютеров, называются компьютерными программами. Уточненное определение: язык программирования – это нотация для записи компьютерных программ. Отличие универсальных языков программирования – алгоритмическая полнота, т.е. возможность описания на таком языке любого вычисления (алгоритма).
Можно условно выделить три периода развития языков программирования:
-период зарождения (1950- начало 1960гг.);
-период бурного роста (1960-1980 гг.);
-эволюционный период 1980 гг. И по наше время [13, с.4]
В пятидесятые годы ХХ века с появлением компьютеров на электронных лампах началось бурное развитие языков программирования. Компьютеры, стоившие в то время значительно дороже, чем разработка любой программы, требовали высокоэффективного кода. Такой код разрабатывался вручную на языке Ассемблер. В середине 1950-х годов под руководством Джона Бэкуса для фирмы IBM был разработан алгоритмический язык программирования FORTRAN. Несмотря на то, что уже существовали разработки языков, выполняющие преобразование арифметических выражений в машинный код, создание языка FORTRAN (FORmula TRANslator), представляющего возможность записи алгоритма вычислений с использованием условных операторов ввода/вывода, стало точкой отсчета эры алгоритмических языков программирования.
Как альтернатива языку FORTAN, первоначально ориентированному на архитектуру IBM, под руководством Питера Наура в конце 1950-х годов был разработан язык ALGOL (ALGOrithmic Language). Основной целью, преследуемой разработчиками этого языка, была независимость от конкретной архитектуры вычислительной системы. Кроме того, создатели языка ALGOL стремились разработать язык, удобный для описания алгоритмов и применяющий систему обозначений, близкую к той, что принята в математике.
Языки FORTRAN и ALGOL были первыми языками, ориентированным и на программирование вычислений.
Язык PL/I, первые версии которого появились в начале 1960-х годов, был первоначально ориентирован на IBM 360 и расширял возможности языка FORTRAN некоторыми средствами языка COBOL, разработанного в те же годы. Несмотря на определенную популярность языка PL/I у программистов, работавших на компьютерах IBM и машинах серии ЕС, в настоящее время он представляет чисто теоретический интерес.
В конце 1960-х годов под руководством Найарда и Дала был разработан язык Simula-67, использующий концепцию пользовательских типов данных. Фактически это первый язык, применяющий понятие классов.
В середине 1970-х годов Вирт предложил язык Pascal, который сразу стал широко использоваться. В это же время по инициативе Министерства обороны США началась работа по созданию языка высокого уровня, получившего название Ada — в честь Ады Лавлейс, программистки и дочери лорда Байрона. Создание языка началось с определения требований и выработки спецификаций. Над проектом работали четыре независимые группы, но все они использовали как основу язык Pascal. В начале 1980-х годов был разработан первый промышленный компилятор языка Ada.
Универсальный язык программирования С был разработан в середине 1970-х годов Денисом Ритчи и Кеном Томпсоном. Этот язык стал популярным языком системного программирования и в свое время использовался для написания ядра операционной системы UNIX. Стандарт языка С начал разрабатываться рабочей группой института стандартов ANSI в 1982 году. Международный стандарт языка С принят в 1990 году. Язык С лег в основу разработки языков программирования С++ и Java.
Наряду с алгоритмическими языками параллельно развивались и языки, предназначенные для обработки деловой информации, а также языки искусственного интеллекта. К первым относится язык COBOL (COmmon Business Oriented Language), а ко вторым - языки LISP (LISt Processing) и Prolog. Язык LISP, разработанный в 1960-х годах под руководством Дж. Маккарти, был первым функциональным языком обработки списков, который нашел широкое применение в теории игр.
С появлением персональных компьютеров языки стали составными частями интегрированных сред разработки. Появились языки, применяемые в различных офисных программах, например VBA (Visual Basic for Application).
В 1990-х годах с распространением сети Интернет расширяется возмоность распределенной обработки данных, что отражается и на развитии языков программирования. Появляются языки, ориентированные на создание серверных приложений, такие как Java, Perl и PHP, языки описания документов - HTML и XML. Традиционные языки программирования С++ и Pascal также претерпевают изменения: под языком программирования начинает пониматься не только функциональность самого языка, а также библиотеки классов, предоставляемые средой программирования. Акцент со спецификации самих языков программирования переносится на стандартизацию механизмов взаимодействия распределенных приложений. Появляются новые технологии - СОМ и CORBA, специфицирующие взаимодействие распределенных объектов.
С течением времени одни языки развивались, приобретали новые черты и остались востребованы, другие утратили свою актуальность и сегодня представляют в лучшем случае чисто теоретический интерес. В значительной степени это связано с такими факторами, как:
-наличие среды программирования, поддерживающей разработку приложений на конкретном языке программирования;
- удобство сопровождения и тестирования программ;
- стоимость разработки с применением конкретного языка программирования;
- четкость и ортогональность конструкций языка;
- применение объектно-ориентированного подхода. [8, с.13-15]
Языки программирования – это формальные языки для описания данных (информации) и алгоритма их обработки на ЭВМ. [2, с.8]
Существующие языки программирования можно разделить на две группы: процедурные и не процедурные.
Процедурные (или алгоритмические) программы представляют собой систему предписаний для решения конкретной задачи. Роль компьютера сводится к механическому выполнению этих предписаний.
Процедурные языки разделяют на языки низкого и высокого уровня.
К языкам низкого уровня относятся языки ассемблера (от англ. To assemble – собирать, компоновать). В языке ассемблера используются символьные обозначения команд, которые легко понятны и быстро запоминаются. Вместо последовательности двоичных кодов команд записываются их символьные обозначения, а вместо двоичных адресов данных, используемых при выполнении команды, символьные имена этих данных, выбранные программистом. Иногда язык ассемблера называют мнемокодом или автокодом. [14, с.4]
В группу языков низкого уровня входят машинные языки и языки символического кодирования: (Автокод, Ассемблер). Операторы этого языка – это те же машинные команды, но записанные мнемоническими кодами, а в качестве операндов используются не конкретные адреса, а символические имена. Все языки низкого уровня ориентированы на определенный тип компьютера, т.е. являются машинно-зависимыми. [2, с.9]
Машинно-ориентированные языки – это языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.). Машинно-ориентированные языки позволяют использовать все возможности и особенности машинно-зависимых языков. [14, с.5]
Если язык близок к естественному языку программирования, то он называется языком высокого уровня, если ближе к машинным командам – языком низкого уровня. [2, с.9]
Большинство программистов пользуются для составления программ языками высокого уровня. Как и обычный человеческий язык, такой язык имеет свой алфавит – множество символов, используемых в языке. Из этих символов составляются так называемые ключевые слова языка. Каждое из ключевых слов выполняет свою функцию. Также, как и в привычном для нас языке, слова, составленные из букв алфавита данного языка, могут выполнять функции разных частей речи. Ключевые слова связываются друг с другом в предложения по определенным синтаксическим правилам языка. Каждое предложение определяет некоторую последовательность действий, которые должен выполнить компьютер.
Язык высокого уровня играет роль посредника между человеком и компьютером, позволяя человеку общаться с компьютером более привычным для человека способом. Часто такой язык помогает выбрать правильный метод решения задачи.
Классическое процедурное программирование требует от программиста детального описания того, как решать задачу, т.е. формулировки алгоритма и его специальной записи.
Языки символического кодирования. Языки символического кодирования, являются командными. Однако коды операций и адреса в машинных командах, представляют собой последовательность двоичных (во внутреннем коде) или восьмеричных (часто используемых при написании программ) цифр, в них замены на символы (идентификаторы), форма написания которых помогает программисту легче запоминать смысловое содержание операции. Это обеспечивает существенное уменьшение числа ошибок при составлении программ.
Макрос. Язык, являющийся средством замены последовательности символов, описывающих действий ЭВМ на более сжатую форму, называется Макрос (средство замены). В основном макрос предназначен для того, чтобы сократить запись исходной программы.
Машинно-независимые языки – это средство описания алгоритмов решения задач и информации, подлежащей обработке. Они удобны в использовании для широкого круга пользователей и не требуют от них знания особенностей организации функционирования ЭВМ и ВС.
Проблемно ориентированные языки. Такие языки программирования, которые, используя в данной области обозначения и терминологию, позволяют описывать требуемые алгоритмы решения для поставленных задач. Языки, ориентированные на решение определенных проблем, должны обеспечить программиста средствами, позволяющими коротко и четко формулировать задачу и получать результаты в требуемой форме.
Диалоговые языки. Программные средства, обеспечивающие оперативное взаимодействие человека с ЭВМ. Специальные управляющие языки для обеспечения оперативного воздействия на прохождение задач, которые составлялись на любых ранее неразработанных (не диалоговых) языках. Эти языки позволяют решать достаточно широкий круг задач.
Универсальные языки. Созданы для широкого круга задач: коммерческих, научных, моделирования и т.д.
Непроцедурные языки. Непроцедурные языки составляют группу языков, описывающих организацию данных, обрабатываемых по фиксированным алгоритмам (табличные языки и генераторы отчетов), и языков связи с операционными системами. Позволяя четко описывать как задачу, так и необходимые для ее решения действия, таблицы решений дают возможность в наглядной форме определить, какие условия должны быть выполнены, прежде чем переходить к какому-либо действию. [14, с.4-6]
Языки высокого уровня машинно-независимы, т.к. они ориентированы не на систему команд той или иной ЭВМ, а на систему операндов, характерных для записи определенного класса алгоритмов. Однако программы, написанные на языках высокого уровня, занимают больше памяти и медленнее выполняются, чем программы на машинных языках.