Файл: Обзор и анализ характеристик языков программирования.pdf
Добавлен: 25.04.2023
Просмотров: 326
Скачиваний: 2
СОДЕРЖАНИЕ
ГЛАВА 1. СИСТЕМЫ ПРОГРАММИРОВАНИЯ
1.1 Понятие о языках программирования
1.2 Виды языков программирования
Декларативные языки программирования
Функциональные языки программирования
1.3 История развития языков программирования
ГЛАВА 2. ОБЗОР СОВРЕМЕННЫХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ДЛЯ РАБОТЫ С «БОЛЬШИМИ ДАННЫМИ»
2.1. Возможности синтаксиса и использования
ВВЕДЕНИЕ
На сегодняшний день сложно представить высококвалифицированного специалиста, не владеющего информационными технологиями. Поскольку деятельность любого субъекта в значительной степени зависит от степени владения информацией, а также способности эффективно использовать ее в работе. Для свободной ориентации в информационных потоках современный специалист любого профиля должен уметь получать, обрабатывать и использовать информацию, прежде всего, с помощью компьютеров, а также телекоммуникаций и других новейших средств связи, в том числе и уметь, обращаться с языками программирования.
Язык программирования – это знаковая формальная система, которая предназначена для записи компьютерных программ. Он определяет набор лексических, синтаксических и семантических правил, который определяет внешний вид программы и действия, выполняемых под ее управлением исполнителем.
Актуальность данной темы обусловлена тем, что прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов – языков программирования.
Языки программирования делятся на уровни: языки высокого уровня, языки низкого уровня и универсальные языки. Разработка программ на языках высокого уровня значительно проще и ошибок намного меньше. К тому же время разработки программы значительно уменьшается, что является особенно важным фактором при работе над сложными программными проектами. Недостаток некоторых языков высокого уровня состоит в большом размере программ по сравнению с программами на языках низкого уровня. В то же время текст программ на языке высокого уровня гораздо меньше, но в байтах код, написанный на ассемблере, будет более компактным. Поэтому языки высокого уровня преимущественно используют для создания программного обеспечения для компьютеров и вычислительных устройств с большим объемом памяти. Языки же низкого уровня используются для написания программ к устройствам, для которых критичным является размер программы. Языки высокого уровня делятся на универсальные и проблемно-ориентированные. Наиболее распространенные универсальные языки C#, C++, Basic, Pascal (Delphi) используются для разработки Windows-приложений.
Большой вклад в программирование на начальных этапах внесли проблемно-ориентированные языки Fortran, Cobol, Algol, C и др.
Проблемно-ориентированный язык представляет собой язык высокого уровня, который разработан для программирования особого типа задач. Проблемно-ориентированные языки – это формальные языки связи человека с ЭВМ, предназначенные для описания данных (информации) и алгоритмов их обработки (программ) на вычислительной машине. Языки программирования для разработки Интернет-приложений скорее относятся к универсальным языкам. К ним относятся современные версии C#, Basic, J#.
Предметом исследования является характеристика языков программирования.
Объект исследования – языки программирования.
Целью данной курсовой работы является краткий обзор и анализ языков программирования.
Задачи, направленные на достижение цели курсовой работы:
1. Проанализировать системы программирования.
2. Изучить возможности языка программирования.
3. Выявить особенности Паскаль, C++, Python.
Рассмотрению вопроса графических приложений в языках программирования посвящены работы авторов И. А. Бабушкиной, С. М. Окулова, О. Е. Масленниковой, И. В. Гавриловой, Л. Г. Гагариной, Е. В. Кокоревой и других.
ГЛАВА 1. СИСТЕМЫ ПРОГРАММИРОВАНИЯ
1.1 Понятие о языках программирования
Согласно определению Б.Л Ворфа: «Язык формирует наш способ мышления и определяет то, о чём мы можем мыслить»[10, с.198]. Для компьютера важнее не просто язык, а язык программирования, под которым понимают формальную знаковую систему, предназначенную для записи программ, задающих алгоритм в форме, понятной для исполнителя (например, компьютера). Язык программирования определяет набор лексических, синтаксических и семантических правил, используемых при составлении компьютерной программы. Он позволяет программисту точно определить то, на какие события будет реагировать компьютер, как будут храниться и передаваться данные, а также какие именно действия следует выполнять над этими данными при различных обстоятельствах.
Со времени создания первых программируемых машин человечество придумало уже более восьми с половиной тысяч языков программирования. Каждый год их число пополняется новыми. Некоторыми языками умеет пользоваться только небольшое число их собственных разработчиков, другие становятся известны миллионам людей. Профессиональные программисты иногда применяют в своей работе более десятка разнообразных языков программирования.
Компьютер воспринимает только программы, представленные на машинном языке (в машинном коде). Самому написать программу в машинном коде весьма сложно, причем эта сложность резко возрастает с увеличением размера программы и трудоемкости решения нужной задачи. Условно можно считать, что машинный код приемлем, если размер программы не превышает нескольких десятков байтов и нет потребности в операциях ручного ввода/вывода данных.
Поэтому сегодня практически все программы создаются с помощью языков программирования. Теоретически программу можно написать и средствами обычного человеческого (естественного) языка – это называется программированием на метаязыке (подобный подход обычно используется на этапе составления алгоритма), но автоматически перевести такую программу в машинный код пока невозможно из-за высокой неоднозначности естественного языка.
Языки программирования – искусственные языки. От естественных они отличаются ограниченным числом «слов», значения которых понятны транслятору, и очень строгими правилами записи команд (операторов). Совокупность подобных требований образует синтаксис языка программирования, а смысл каждой команды и других конструкций языка – его семантику. Нарушение формы записи программы приводит к тому, что транслятор не может понять назначение оператора и выдает сообщение о синтаксической ошибке. Правильное написание команд языка, не отвечающее алгоритму, приводит к семантическим ошибкам (называемым еще логическими ошибками или ошибками времени выполнения).
Процесс поиска ошибок в программе называется тестированием, процесс устранения ошибок – отладкой.
В мире насчитывается несколько сотен символических языков программирования различных структур и возможностей, которые могут быть классифицированы по различным признакам.
Рисунок 1. Классификация языков программирования
Классификация языков программирования:
По способу выполнения языки программирования делятся на компилируемые, интерпретируемые, компилируемые на основе псевдокода и совмещенные.
- Компилируемые языки. К этой группе относят язык программирования, исходный код которых преобразуется специальной программой-компилятором в объектные модули, которые затем собираются при помощи программы сборки (линковщика) в единый загружаемый модуль. Это представляет собой выполняемую программу. Компилируемыми являются языки C, C++, Object Pascal.
- Интерпретируемые языки. К этой группе относят язык программирования, исходный код которых считывается и выполняется специальной программой-интерпретатором инструкция за инструкцией. Интерпретируемыми являются большинство версий языков Basic и Forth.
- Языки, компилируемые на основе псевдокода («шитого» кода). В этих языках исходный код программы компилируется и выполняется как последовательность вызовов подпрограмм из существующих библиотек. Таковыми являются некоторые версии Basic.
- Совмещенные языки. В совмещенных языках исходный код проходит две стадии обработки. На первой стадии происходит компиляция исходного кода до уровня промежуточного языка (байт-код в Java или язык MSIL в технологии .NET). На второй стадии происходит интерпретация промежуточного кода (в Java этим занимается виртуальная машина Java) или докомпиляция промежуточного кода до выполняемого машинного кода (эту функцию осуществляет среда выполнения CLR в технологии .NET).
По факту созданию процесса языки программирования делятся на создающие процесс и сценарные.
- Языки создающие процесс. После запуска программы создается отдельный процесс выполнения этой программы. Так происходит в языках C, C++, Object Pascal.
- Сценарные языки. Сценарий, или скрипт, - это программа, которую выполняет другая программа. В качестве примеров можно привести скрипты оболочки в UNIX, программы на языках PHP, Python, Ruby.
По степени автономности языки программирования делятся на автономные и встроенные.
- Автономные языки программирования (C, C++, Java) являются автономным инструментом для создания программ.
- Встроенные языки программирования являются частью какой-то системы и позволяют создавать программы, предназначенные для работы только в этой системе. Пример наиболее известного встроенного языка – VBA (Visual Basic for Application), который используется только внутри приложений Microsoft Office для автоматизации и расширения их функциональности. Встроенными являются также язык программирования системы 1C и язык JavaScript, который выполняется только внутри интернет-приложений.
По уровню отдаленности языка программирования от естественных языков их делят на низкоуровневые и высокоуровневые.
- Языки низкого уровня ближе к логике процессора вычислительной машины, например, машинный язык, ассемблер.
- Языки высокого уровня ближе лингвистически к человеческому языку. Это все остальные языки программирования.
По парадигмам языки программирования делятся на императивные (процедурные), функциональные, логические и объектно-ориентированные.
- Императивные (процедурные) языки описывают решение задачи как последовательность процедур. К императивным относится большинство современных языков программирования.
- Функциональные языки описывают требуемый результат в виде набора вложенных друг в друга функций (Haskell).
- Логические языки описывают требуемый результат в виде суммы логических операций (Prolog).
- Объектно-ориентированные языки способны определять абстрактные типы данных и реализовывать основные парадигмы объектно-ориентированного программирования (ООП): инкапсуляцию, наследование и полиморфизм (C++, Java, Object Pascal, и др.). [5, С. 557-559]
Главным квалификационным признаком языков и, следовательно, систем программирования является принадлежность к одному из оформившихся к настоящему времени стилей программирования, каждому из которых соответствует своя собственная модель вычислений.
Языки программирования – это формальные языки специально созданные для общения человека с компьютером. Каждый язык программирования, равно как и «естественный» язык (русский, английский и т.д.), имеет алфавит, словарный запас свои грамматику и синтаксис, а также семантику[7].
Алфавит – фиксированный для данного языка набор основных символов, допускаемых для составления текста программы на этом языке.
Синтаксис – система правил, определяющих допустимые конструкции языка программирования из букв алфавита.
Семантика – система правил однозначного толкования отдельных языковых конструкций, позволяющих воспроизвести процесс обработки данных.
При описании языка и его применении используют понятия языка. Понятие подразумевает некоторую синтаксическую конструкцию и определяемые ею свойства программных объектов или процесса обработки данных[4].
Взаимодействие синтаксических и семантических правил определяют те или иные понятия языка, например, операторы, идентификаторы, переменные, функции и процедуры, модули и т.д. В отличие от естественных языков правила грамматики и семантики для языков программирования', как и для всех формальных языков, должны быть явно, однозначно и четко сформулированы.
Языки программирования, имитирующие естественные языки, обладающие укрупненными командами, ориентированными на решение прикладных содержательных задач, называют языками «высокого уровня». В настоящее время насчитывается несколько сотен таких языков, а если считать и их диалекты, то это число возрастет до нескольких тысяч. Языки программирования высокого уровня существенно отличаются от машинно-ориентированных (низкого уровня) языков. Во-первых, машинная программа в конечном счете записывается с помощью лишь двух символов 0 и 1. Во-вторых, каждая ЭВМ имеет ограниченный набор машинных операции, ориентированных на структуру процессора. Как правило, этот набор состоит in сравнительно небольшого числа простейших операций, типа: переслать число и ячейку; считать число из ячейки; увеличить содержимое ячейки на +1 и т.п. Команда на машинном языке содержит очень ограниченный объем информации, поэтому она обычно определяет простейший обмен содержимого ячеек памяти, элементарные арифметические и логические операции. Команда содержит код и адреса ячеек, с содержимым которой выполняется закодированное действие[2].
Языки программирования высокого уровня имеют следующие достоинства:
− алфавит языка значительно шире машинного, что делает его гораздо более выразительным и существенно повышает наглядность и понятность текста;