Файл: Программирование и языки программирования: определения, инструменты и характерные особенности.pdf

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

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

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

Добавлен: 14.03.2024

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

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

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

Содержание:

Введение

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

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

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

В более широком смысле под программированием следует понимать полный спектр деятельности, который связан с созданием и дальнейшим поддержанием в рабочем состоянии программного обеспечения. Эта инженерно-техническая дисциплина носит название «программная инженерия» [4, c.21]. Она включает в себя анализ и постановку задачи, проектирование программы, построение алгоритмов, проектирование структур данных, написание текстов программ, отладку и тестирование программы, спецификацию, настройку, доработка и последующее сопровождение.

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

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


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

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

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

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

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

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

В соответствие цели данной работы были поставлены следующие задачи:

  1. Привести классификацию языков программирования.
  2. Определить критерии выбора языка программирования.
  3. Рассмотреть современные среды разработки программного обеспечения.
  4. Сделать выводы по проделанной работе.

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

1. Классификация языков программирования

1.1. Программирование и языки программирования: определения, инструменты и характерные особенности


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

В более узком смысле слова, программирование может быть представлено как кодирование – реализация одного или нескольких связанных между собой алгоритмов на некотором языке программирования [6, c.44]. В более широком смысле, программирование представляет собой процесс создания программ, то есть процесс разработки программного обеспечения.

Самая большая часть работы программиста связана с созданием исходного кода с помощью одного из языков программирования.

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

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

В некоторых языках, вместо машинного кода генерируется интерпретируемый двоичный код «виртуальной машины», также называемый байт-кодом (byte-code). Такой подход применяется в Forth, Lisp, Java, Perl, Python а также в языках платформы Microsoft .NET

Компьютерная программа является связкой многочисленных строк специального текста – программного кода. Он является специальным, потому что создан таким образом, чтобы машине было понятно, какие действия должны быть выполнены (с помощью машинного языка). Самые простые приложения содержат около ста строк кода, а в сложных и масштабных приложениях количество строк кода доходит до миллиарда [2, c.45].


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

Инструментарий типичного программиста чаще всего состоит из следующих вещей:

  • компьютер;
  • интернет (прежде всего он нужен для поиска всего неизученного и неизвестного в любом из известных поисковых сервисов);
  • редактор кода (или IDE – комплекс программных средств, используемый программистами для разработки программного обеспечения), который поможет упорядочить все, что вы создаете;
  • компилятор или интерпретатор. Это программа, которая читает ваш код и пытается найти в нем ошибки. Затем он собирает ваш код в единый пакет и передает компьютеру для выполнения.

Языки программирования зачастую описываются своей парадигмой, которая является способом категоризации видов функций. Например, JavaScript – язык, который может быть запущен в любом веб-браузере, также он заслуженно занимает лидирующие позиции в рейтинге популярности. Он имеет разнообразный набор функций: поддерживает императивные, структурируемые, объектно-ориентированные и управляемые событиями парадигмы.

У языков программирования есть одна особенность – если два языка имеют сходство в парадигмах, то, как правило, они схожи и в синтаксисе. После изучения JavaScript, например, можно понять до 75 % кода на Python или Ruby, поскольку они похожи [9, c.62].

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

1.2. Классификация языков программирования

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


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

Языки низкого и высокого уровня

Формально понятие «язык программирования» не имеет такого критерия как «уровень». Данный термин условное означает некую степень отличия семантики языка от машинного кода целевой архитектуры процессора – иными словами, самый малый масштаб преобразований, необходимых для кода программы перед тем, как этот код сможет выполняться. Тем не менее, известны случаи, когда низкоуровневый язык компилировался как низкоуровневый на одной платформе, при этом на другой платформе он компилировался как «высокоуровневый» (программы на ассемблере VAX на DEC Alpha), или, когда язык, который является «высокоуровневым», реализовывался аппаратно (Лисп-машина, Java Optimized Processor) [3, c.73].

Машинные языки – языки самого низкого уровня, это первое поколение языков программирования. После них появились языки второго поколения, известные как «языки ассемблера». Они могут представлять собой лишь мнемонику над машинным языком, но могут и обладать развитым макроязыком. Языки первого и второго поколения дают возможность тонко контролировать, как нужная функциональность будет реализовываться на данном процессоре с учетом всей специфики его архитектуры. С одной стороны, это дает возможность получить существенное быстродействие и компактность программ, но с другой стороны, для переноса программы на другую аппаратную платформу ее следует перекодировать, а иногда и перепроектировать с нуля. Большинство ассемблеров бестиповые, но есть и типизированные ассемблеры, которые нацелены на гарантию минимальной безопасности программ низкого уровня.

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