Файл: Классификация языков программирования. Критерии выбора среды и языка разработки программ (Синтаксис языков).pdf
Добавлен: 14.05.2023
Просмотров: 306
Скачиваний: 3
Введение
На современном этапе развития компьютерных технологий невозможно представить какого–либо высококвалифицированного специалиста, не владеющего информационными технологиями. Поскольку деятельность любого субъекта в значительной степени зависит от степени владения информации, а также способности эффективно ее использовать. Для свободной ориентации в информационных потоках современный специалист любого профиля должен уметь получать, обрабатывать и использовать информацию, прежде всего, с помощью компьютеров, а также телекоммуникаций и других новейших средств связи, в том числе и уметь, обращаться с языками программирования.
Актуальность данной темы обусловлена тем, что прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов – языков программирования.
Объектом исследования послужили Классификация языков программирования. Критерии выбора среды и языка разработки программ.
Целью курсовой работы является изучение классификации языков программирования и Критерии выбора среды и языка разработки программ
Цели исследования:
- Просмотреть общие сведения и уровни языков программирования.
- Выбор наилучшего языка для решения определенных задач
Задачи исследования:
- Ознакомления с языками программирования.
- Сравнение языков программирования
- Обзор современных языков программирования.
В первой главе рассматриваются общие сведения о языках программирования
Во второй главе рассматривается обзор современных языков программирования.
В данной курсовой работе использовались научно-исследовательские методы.
Применяемые технические средства:
Процессор: intel i3-6100
Оперативная память: 4 ГБ, ddr4
Видеокарта: Intel (R) HD Graphics 530
Диски: 2x ssd 120 ГБ
Программные средства:
Ос: Windows 10 , Debian Linux 10
asm: Fasm
c++: mingw
IDE) Qt creator.visual studio
Работа выполнена в программе LibreOffice 6
1. Языки программирования
Языки проговаривания, далее ЯП, являются средством для создания приложений для ЭВМ. ЯП являются искусственно созданными языками. От естественных языков они отличаются ограниченным числом “слов” и очень строгими правилами записи команд (операторов). Поэтому при применении их по назначению они не допускают свободного толкования выражений, характерного для естественного языка.
Можно сформулировать ряд требований к языкам программирования и классифицировать языки по их особенностям.
Основные требования, предъявляемые к языкам программирования:
стандартизация — использования в ЯП общих форм и порядков
гибкость - ЯП не должен ограничивать программиста
ЯП можно разделить на несколько групп:
- машинные;
- машинно - ориентированные (ассемблеры);
- машинно-независимые (языки высокого уровня).
Язык машинного кода очень сложно воспринимается человеком вследствие чего разработка программ занимает огромное количество времени поэтому были придуманы языки программирования, цель которых - представлять машины инструкции в виде человека понятных слов наподобие add mul и так далее
Первые языки назывались «ассемблеры», где числовое представление команд были заменены на мнемоники. Это позволило сильно упростить процесс программирования и даже Сейчас языке ассемблера применяются для решения узко специализированных задач. Как правило, эти задачи включали оптимизацию математических алгоритмов, либо создание Низкоуровневых в частей операционных систем и загрузчиков.
Недостатком ассемблера была невозможность переноса на другие архитектуры ЭВМ. Это побудило программистов создание еще более высоких языков, целью которых было скрытие команд ЭВМ.
На данный момент это самый популярный класс языков программирования. Так как это позволяет создать программу, которую можно портировать на другие архитектуры. Но даже этого не всегда бывает достаточно. Одной из главных проблем, даже сегодняшнего, времени является наличие нескольких операционных систем со своими стандартами и форматами.
1.1 Синтаксис языков
Однойиз главных вещей в языках программирования — их синтаксический набор выражений, который в определяет направление языка, а так же стандарт в связанные с использованием этого языка для создания приложений. Важно отметить, что большинство языков на данный момент использует синтаксис, схожий с языка C его конструкций, что позволяет достаточно быстро привыкать к новым языкам.
Модификация синтаксиса языка к его конструкциям, является неотъемлемой частью эволюции языков программирования, первопроходцы в конструкциях и синтаксисе в большинстве случаев страдают от неудобных средств, а также могут усложнить читаемость кода, либо сделать его настолько специфическим, что это может привести к том что эти конструкции не будут использоваться. Либо сам язык не наберёт должной популярности и перестанет развиваться.
Так что, в большинстве случаев, новые языки программирования куда как более удобны, чем старые. Это приводит к тому, что огромное количество языков со временем теряет свою актуальность, не перестает развиваться. Это, например, случилось с бесиком и Pascal. Но стоит отметить, что иногда из-за того, что язык был первым в своей области, его крайне сложно заменить на другой, например, это касается си Sharp и Java.
Также огромное количество языков, синтаксис которых сильно отличается от других, в большинстве случаев это связано с узкой направленностью данных языков ярким примером тому служат Haskell и Scala
1.2 Новая концепция
Например, в начале ЭВМ компьютеры использовались в большинстве случаев в научных или военных целях, но сегодня задача языка в программе сильно расширились, что привело к тому, что старые языки стали устраивать по концепциям. Одной из главных концепции на текущий момент, является ооп.
Объектно-ориентированный подход использует следующие базовые понятия:
• объект;
• свойство объекта;
• метод обработки;
• событие;
• класс объектов.
Объект — совокупность свойств (параметров) определенных сущностей и методов их обработки (программных средств).
Свойство — это характеристика объекта и его параметров. Все объекты наделены определенными свойствами, совокупность которых выделяет (определяет) объект.
- Метод — это набор действий над объектом или его свойствами.
- Событие — это характеристика изменения состояния объекта.
- Класс — это совокупность объектов, характеризующихся общностью, применяемой к ней методов обработки или свойств.
Существуют различные объектно-ориентированные технологии, которые обеспечивают выполнение важнейших принципов объектного подхода:
• инкапсуляция;
• наследование.
Под инкапсуляцией понимается скрытие полей объекта с целью обеспечения доступа к ним только посредством методов класса (т.е. скрытие деталей, несущественных для использования объекта). Инкапсуляция (объединение) означает сочетание данных и алгоритмов их обработки, в результате чего и данные, и процедуры во многом теряют самостоятельное значение.
Класс может иметь образованные от него подклассы. При построении подклассов осуществляется наследование данных и методов обработки объектов исходного класса
Фактически объектно-ориентированное программирование можно рассматривать как модульное программирование нового уровня, когда вместо, во многом случайного, механического объединения процедур и данных, акцент делается на их смысловую связь.
Программа на объектно-ориентированном языке, решая некоторую задачу, по сути, описывает часть мира, относящуюся к этой задаче. Описание действительности в форме системы взаимодействующих объектов естественнее, чем в форме взаимодействующих процедур
Важно. Стоит отметить, что некоторые современные языки программирования пытаются отойти от стандартов ооп. Связано это, в первую очередь, с приобретенным опытом среди программистов и понимание того факта, что многие концепции могут привести к усложнению проекта, а также создать больше проблем при модернизации, либо исправление ошибок. Большинство новых концепций связано именно с решением проблем возникающих при разработке с использованием парадигму ооп в классическом языке программирования Как C++
1.3 Компиляция и интерпретация
Стандартный вид Program - является программа, которая компилирует код, понятный для целевой платформы. Основными преимуществами такого способа является возможность работать напрямую с одной платформой, и в следствие чего получать большую производительность.
Одной из основных проблем при разработке является переносимость программы между операционными системами хоть операционные системы. и позволяют значительно увеличить переносимый с программы, но при этом очень редко операционной системой используют одни стандарты. Яркий пример тому Windows и unix, и тому подобные операционные системы. Всё это привело к тому, что бынамла добавлено прослойка в виде интерпретатора, задачей которого является выполнение программы в реальном времени и унификации её работы в любой среде, в которой работает сам интерпретатор. Яркими примерами таких языков служат Python, Ruby, Java, Java Script и многие другие.
К недостатком интерпретации можно отнести низкую производительность по сравнению с программой, которая контролируется для целевой платформы. Также не всегда таким языкам доступны все средства операционной системы. Что приводит к тому что на подобных языка в большинстве случаев пишется либо небольшие программы для автоматизации, либо программы который не зависит от операционной системы и производительности.
В каких случаях необходимо использовать программы, работающие с помощью интерпретатора
- для решения небольших рутинных задач
- Для создания веб приложений
- Для создания программ которые необходимо запустить как можно на большем количестве устройств
- Для обучения программирование
- Для прототипирования данные знаки подходят хорошо. Связано это, в первую очередь, Стем что в большинстве случаев языки решают банальные задачи собственными средствами. Огромное количество библиотек и других компонентов позволяет автоматизировать и упростить разработку будущей системы. В итоге после завершения прототипирования, программа переписывается на более быстрый язык программирования, либо остаётся на этом же языки программирования
В каких случаях не стоит принимать программы, работающие с помощью Интерпретатора:
- В случае необходимости большой производительности
- Необходимости работать с определенной операционной системой, либо её компонентами
- Обычных настольных приложений
На данный момент самым популярным языками программирования являются языки, интерпретируемые в реальном времени. Это связано с достаточно большим количеством факторов
- Общая легкость языков программирования. Большинство подобных языков упрощает многие задачи и предлагают уже готовые решения многим стандартным языковым средствам, наподобие контейнеров системы ввода. Использование в уникальных средах вывода много поточности автоматическому управлению памятью и так далее.
- Использование в уникальных средах. Таких как, работа в браузере, вспомогательный язык для приложений, язык для расширения возможностей операционной системы язык командной оболочки
- Огромное количество уже готовых решений. Например, для работы с сетью, для создания графических приложений игр.
- Использование для автоматизации задач, даже обычными пользователями
1.4 Библиотеки и Фреймворки
При выборе языков программирования на данный момент ключевой ролью играет в наличии так называемых библиотек и Фреймворков.
При выборе языка очень важно наличие всевозможных библиотек. Так как это позволяет не переписывать одни и те же структуры по нескольку раз, а также в принципе, использовать некоторые технологии. В большинстве случаев, в библиотеке представлены особо узкие ориентированные сборники функций и методов. Крайне редко библиотека предлагает широкий спектр возможностей.
Фреймворки - это также необходимая часть для некоторых языков программирования. Они позволяют интегрировать приложение в определённые среды. В отличие от библиотеки представляет собой полный комплекс решение охватывающих почти каждый аспект работы программа
1.5 Стандартные средства языка
Стандартные средства языка также играют большую роль при выборе первого языка обучения для программиста А также, выбор языка при написании приложений. Основным стандартным средством языков является система сборки, а также стандартная библиотека.