Файл: Классификация языков программирования. Критерии выбора среды и языка разработки программ (Средства разработки программ).pdf

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

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

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

Добавлен: 25.04.2023

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

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

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

Введение

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

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

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

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

Для решения задач использовались письменные и цифровые источники, дающие представление об области. Разумеется, существует печатная информация, которая остается актуальной спустя десятилетия, поскольку она, например, характеризует исторические реалии профессии (так, в истории появления языков программирования известен буквально каждый шаг разработчиков, о чем говорят печатные книги еще 80-х годов выпуска). Но следует понимать, что порой новые языки и новые среды разработки появляются быстрее, чем соответствующая литература по ним, и в этом случае требуется обращаться к авторитетным онлайн-изданиям, признанным в профессиональной сфере (англоязычные журналы Electronicdesign и Dr. Dobb's; русскоязычный журнал T_ADVISER и новостные порталы). Необходимо также не забывать о данных информационных агентств, поскольку статистика собирается именно их силами: в случае данной работы это We Are Social и Kantar Worldpanel. Также нужно принять во внимание, что среда профессионального программирования является стандартизируемой и регулируемой; в этом случае на помощь приходят международные и местные стандарты (ISO/IEC/IEEE, ГОСТ ИСО, МЭК и прочие).


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

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

1.1 Понятие языка программирования

Язык программирования – компьютерный язык, предназначенный для записи компьютерных программ посредством определенного набора лексических, синтаксических и семантических правил. [44, 45]

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

В любом, даже самом компактном, компьютере обязательно будет следующий набор программ:

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

Абсолютно все вышеперечисленные программы написаны на определенных языках программирования. [3]

Языком программирования называется система обозначений и правил, позволяющая записать программу (алгоритм) решения задачи в виде последовательного текста в удобном для человека виде. [3]

1.2 История возникновения языков программирования


Середину двадцатого века ознаменовало появление компьютеров на электронных лампах. Поскольку компьютер обязательно должен выполнять некоторую функцию, с появлением первого компьютера не могло не начаться бурное развитие языков программирования. Первыми попытками программирования стали записи программ в виде машинных команд (то есть в кодах). Следует заметить, что семьдесят лет назад аппаратные средства (компьютеры) стоили намного дороже и были намного сложнее, чем любое программное средство (разработка любой программы для выполнения любой функции). Как следствие, компьютеры середины двадцатого века требовали высокоэффективный код. Для облегчения кодирования был разработан машинно-ориентированный язык ассемблера (так называемый машинно-ориентированный язык программирования низкого уровня), позволяющий записывать машинные команды в символическом виде. Хотя для программирования выполнения мелких задач язык ассемблера был достаточно удобен, к тому же позволял быстрое выполнение программ, он напрямую зависел от системы команд конкретно взятого компьютера. Платформенная зависимость языка ассемблера не позволяла ему стать универсальным, равно как и затрудняла разработку крупных проектов – программ, регламентирующих выполнение сложных задач. То есть программа, написанная на языке ассемблера, была строго привязана к архитектуре конкретного компьютера и не могла быть перенесена на другие машины. Как только компьютер устаревал и уходил на обновление аппаратных составляющих, старые программы, написанные на языке ассемблера, переставали быть актуальными. Получив более актуальную версию аппаратного обеспечения, программисты были вынуждены переписывать все необходимые программы заново. [11]

К счастью, платформенно зависимые языки ассемблера достаточно быстро были заменены языками высокого уровня, которые не зависели от конкретной архитектуры аппаратного обеспечения. Для написания программы на языке высокого уровня следует сначала перевести программу на язык машинных команд посредством транслятора (или компилятора). Транслированная таким образом программа выполняется непосредственно компьютером. [10: 289-290]

Также была открыта возможность перевода программы на промежуточный язык, который также не зависел от конфигурации и архитектуры конкретной вычислительной машины, но был максимально приближен к языку машинных команд. Затем программа на промежуточном языке выполнялась специальной программой-интерпретатором. Также был возможен вариант компиляции фрагментов программы непосредственно перед выполнением: конкретно взятый фрагмент программы переводился с промежуточного языка на язык машинных команд, после него следующий фрагмент, и так до выполнения функции аппаратным обеспечением. [10: 289-290]


Примерно десятилетие спустя (в середине 50-х) под руководством Джона Бэкуса группа программистов разработала FORTRAN, алгоритмический язык программирования высокого уровня, специально для IBM. Хотя и до работы группы Бэкуса проводилась разработка языков, преобразующих арифметические выражения в машинный код, именно создание FORTRAN (акроним от FORmula TRANslator), дающего возможность записи алгоритма вычислений с использованием условных операторов и операторов ввода/вывода, стало точкой отсчета эры языков программирования высокого уровня. [12: 63-69]

Программисты, разрабатывавшие язык FORTRAN, столкнулись с требованиями создания высокоэффективного кода, поэтому им пришлось использовать наработки предыдущих поколений языков программирования и конструировать язык с учетом архитектуры IBM 407. Несмотря на относительную платформенную ориентированность, успех разработки этого продукта привел к тому, что производители других вычислительных систем также стали создавать свои версии трансляторов. Но любая отрасль достаточно быстро погрязнет в конфликтных ситуациях, если не будет проведена унификация базовых понятий. Именно с целью унификации языка в качестве первого в истории стандарта был разработан язык FORTRAN IV, а стандарт получил название FORTRAN 66. [12]

Однако даже в середине прошлого века многим исследователям было понятно, что мир электронных вычислительных машин не будет ограничиваться IBM. Поскольку FORTRAN все еще зависел от конкретной архитектуры вычислительной системы, в качестве альтернативы разрабатывался язык ALGOL (акроним от ALGOrithmic Language): в конце 50-х годов прошлого века группа программистов под руководством Питера Наура стремилась к разработке языка, удобного для описания алгоритмов и применяющего систему обозначений, максимально близкую к принятой в математике. [13]

Языки FORTRAN и ALGOL стали первыми в истории языками программирования, ориентированными непосредственно на программирование вычислений.

История программирования также сохранила упоминания о появлении PL/I и COBOL (начало 60-х годов). По сути, совместное использование вышеупомянутых языков расширяло возможности языка FORTRAN и было первоначально ориентировано строго на IBM 360. Несмотря на определенную популярность языка PL/I у программистов, работавших на компьютерах IBM и машинах серии ЕС, в настоящее время он представляет чисто теоретический интерес. [42]

В конце 60-х годов группе под руководством Найарда и Дала удалось разработать язык программирования Simula-67, использующий концепцию пользовательских типов данных. Он также стал достоянием истории, но запомнился как первый язык, применяющий понятие классов. [20]


В середине 70-х годов Виртом был предложен язык Pascal, моментально получивший широчайшее использование в силу своей универсальности. В это же время по инициативе Министерства обороны США началась работа по созданию языка высокого уровня Ada (в честь графини Ады Лавлейс, которую считают первой программисткой в истории). Поскольку создание языка курировалось на министерском уровне, оно началось с определения требований и выработки спецификаций. Над проектом работали четыре независимые группы, но все они использовали как основу язык Pascal. В начале 80-х годов был разработан первый промышленный компилятор языка Ada. [14]

А с середины 70-х годов прошлого века ведет свое исчисление самый успешный язык программирования в истории – язык С (Си) и связанная с ним линия объектно-ориентированных языков: C++, Java, C#. Этот универсальный язык программирования С был разработан Денисом Ритчи и Кеном Томпсоном. Он приобрел широкую популярность для системного программирования и в свое время использовался для написания ядра операционной системы UNIX. Стандартизировали язык С в 1982 году силами Американского национального института стандартов (англ. American national standards institute, ANSI). На разработку ушло чуть меньше десятилетия, и в 1990 году удалось принять международный стандарт языка С. Стандартизированный язык С лег в основу разработки повсеместно используемых сейчас языков программирования C++ и Java. [14]

В чем было отличие С от прочих существовавших на тот момент языков программирования? Он был создан не теоретиками-математиками, а практическими программистами, которые все еще оставались специалистами в области математических наук. Поскольку программа на С вообще не зависит от архитектуры вычислительного устройства, именно С позволил реально избавиться от языков ассемблера при создании операционных систем (например, практически весь текст операционной системы Unix написан на этом языке). Главным достоинством С называют простоту и отсутствие псевдонаучных решений (вроде вложенности блоков программ друг в друга: в С функция не может содержать внутри себя другую функцию, а переменные четко разделяются на глобальные и локальные, в отличие от ALGOL, где локальные переменные подпрограммы являются глобальными для всех вложенных в нее подпрограмм) [1]. Прорывным открытием языка программирования С стал простой и ясный механизм передачи параметров в функцию (только по значению). Программист, создающий программу на С, всегда имел возможность осознавать, как эта программа будет выполняться. Понятие указателя, статические и автоматические (стековые) переменные языка С максимально близко отражают устройство любого современного компьютера, поэтому программы на С эффективны и удобны для отладки и остаются актуальными полсотни лет спустя.