Добавлен: 05.04.2023
Просмотров: 539
Скачиваний: 1
Введение
Функционирование ЭВМ осуществляется на основе принципа программного управления. Программа, представляющая собой последовательность команд, реализующих алгоритм решения задачи, вводится в память ЭВМ, после чего начинается ее автоматическое выполнение с первой команды. После каждой выполненной команды машина автоматически переходит к выполнению следующей команды, и так до тех пор, пока не встретится команда, предписывающая закончить вычисления.
При планировании программного проекта имеется огромный выбор языков программирования, в лабиринтах которых легко заблудиться. Выбор языка зависит от многих факторов. Если это личный проект или хобби, можно выбрать знакомый вам язык. Если выбор зависит от имеющихся ресурсов, результат может быть весьма неочевидным. Можно также потратить много времени на разработку повторно используемых компонентов, так что документация превратится в кошмар.
Актуальность исследования в данной курсовой работе базируется на двух аспектах:
- Изучение компьютерных и интернет-технологий – основополагающая сторона каждого человека, стремящегося к развитию и смотрящего в будущее;
- Невозможно программировать, создавать те или иные программы, игры, иной софт без применения определенной среды разработки, его языка.
Целью данной курсовой работы является изучение языков программирования, их классификации, а также анализ критериев выбора среды и языка разработки.
Указанная цель будет достигнута решением следующих задач:
- Дать понятие и охарактеризовать структуру языка программирования;
- Выполнить классификацию языков программирования;
- Охарактеризовать критерии выбора среды и языка разработки.
Курсовая работа состоит из введения, трех разделов, заключения и списка использованной литературы.
Понятие и структура языка программирования
Каждый процессор имеет свою систему команд. Компьютер способен понять только последовательность команд, понятных процессору, — машинный код. Первоначально программы для компьютеров писались с использованием машинного кода. Программирование в машинном коде – трудоемкий процесс, в ходе которого трудно избежать ошибок. Упростить этот процесс можно, если автоматизировать работу, поручив часть ее самому компьютеру. Поэтому сегодня для записи программ используются языки программирования. Язык программирования — это формальный язык для записи алгоритмов в виде, допускающем их автоматическую подготовку к выполнению на компьютере.
Структура команды ЭВМ в простейшем случае включает в себя две части: операционную и адресную [7].
Операционная часть содержит код операции (сложить, вычесть, ...).
Адресная часть содержит адреса ячеек памяти; в них хранятся значения операндов, с которыми надо выполнить заданную операцию.
В зависимости от числа адресов, указанных в команде, различают одно-, двух-, трехадресные команды. Физические принципы работы электронных устройств ЭВМ таковы, что компьютер может воспринимать команды, состоящие только из единиц и нулей, т.е. машинный код.
На начальной стадии развития ЭВМ человеку было необходимо составлять программы на языке, понятном компьютеру, в машинных кодах. Каждая команда состояла из кода операций и адресов операндов, выраженных в виде различных сочетаний единиц и нулей. Как показала в дальнейшем практика общения с компьютером, такой язык громоздок и неудобен. При пользовании им легко допустить ошибку, записав не в той последовательности 1 или 0. Программу очень трудно контролировать. Кроме того, при программировании в машинных кодах надо хорошо знать внутреннюю структуру ЭВМ, принцип работы каждого блока. И самое плохое в таком языке, что программирование в машинных кодах требует от программиста много времени, труда, повышенного внимания.
Все сказанное выше привело к необходимости найти такое средство, которое позволит более просто наладить общение человека и компьютера. И такое средство было найдено: различные символические языки и соответствующие им трансляторы (системы программирования).
Для автоматизации программирования разрабатывался для каждой ЭВМ свой автокод (или Ассемблер). Этот язык в полной мере повторяет набор команд машинного языка и появился лишь для упрощения программирования на машинном коде [7].
Виды языков программирования
Дальнейшее развитие языковых средств шло по пути создания машинно-независимых языков, позволяющих писать программы на любой доступной ЭВМ с предусмотренной возможностью переноса на более совершенную архитектуру. В мире насчитывается несколько сотен символических языков программирования различных структур и возможностей, которые могут быть классифицированы по различным признакам. Если в качестве признака классификации взять синтаксис образования конструкций языков программирования, то их можно условно разделить на следующие классы:
- машинные языки (computer language) – языки программирования, воспринимаемые аппаратной частью компьютера (машинные коды); ♣ машинно-ориентированные языки (computer-oriented language) – языки программирования, которые отражают структуру конкретного типа компьютера (Ассемблеры);
- алгоритмические языки (algorithmic language) – не зависящие от архитектуры компьютера языки программирования для отражения структуры алгоритма (Паскаль, Фортран, Бейсик и др.);
- процедурно-ориентированные языки (procedure-oriented language) – языки программирования, где имеется возможность описания программы как совокупности процедур (подпрограмм);
- проблемно-ориентированные языки (universal programming language) – языки программирования, предназначенные для решения задач определенного класса (Лисп, РПГ, Симула и др.);
- интегрированные системы программирования [11].
Если в качестве признака классификации взять принадлежность к одному из оформившихся к настоящему времени стилей программирования, каждому из которых соответствует своя собственная модель вычислений, то языки программирования можно условно разделить на следующие классы:
- процедурные;
- функциональные;
- логические;
- объектно-ориентированные [4].
Программа на процедурном языке программирования состоит из последовательности операторов (инструкций), задающих те или иные действия. Одним из важнейших квалификационных признаков процедурных языков является их уровень, характеризующий степень близости языка программирования и машинного языка. За начало отсчета уровней принимается машинный язык, уровень которого равен нулю. Язык человека рассматривается как язык наивысшего уровня.
Некоторые языки программирования в порядке увеличения их уровня
Двоичный язык – в настоящее время программистами не применяется.
Шестнадцатеричный язык – упрощение за счет представления четырех двоичных цифр одной шестнадцатеричной. Используется в качестве дополнения к языкам высокого уровня для программирования критичных к времени выполнения фрагментов алгоритмов.
Язык Ассемблера – предназначен для представления в удобочитаемой символической форме программ, написанных на машинном языке.
Язык программирования C – разработан в начале 70-х годов. Сочетает достоинства современных высокоуровневых языков (в части структур данных и управляющих структур) и возможность доступа к аппаратным средствам машины на уровне языка Ассемблера.
Fortran (Formula Translator) разработан в 1956 г. Считается «рабочей лошадью» научных работников за счет своей «приспособленности» к ведению сложных вычислений и широко используется до настоящего времени, несмотря на свою ограниченность и «корявость».
Pascal – разработан в 1968 г. профессором Никлаусом Виртом. Язык назван в честь французского учёного Блеза Паскаля, внесшего вклад в развитие средств вычислительной техники.
Modula-2 – создан в 1978 г. Никлаусом Виртом для создания системного программного обеспечения. По существу – развитие Паскаля. Его особенности состоят в высокой модульности программ и наличии средств описания параллельных процессов.
Ada – разработан в 1979 г. по заказу Министерства обороны США для использования во встроенных системах с управляющими ЭВМ, что требует поддержки режима реального времени.
Logo – разработан с целью обучения детей и используется в настоящее время. Отличается простотой, но весьма богат возможностями, среди которых процедуры, графические средства и т.д. [6]
Функциональные языки программирования. Программа на таком языке представляет собой совокупность описаний функций и выражения, которые необходимо вычислить. Функциональное программирование не использует концепцию памяти как хранилища значений переменных. Операторы присваивания отсутствуют, вследствие чего переменные обозначают не области памяти, а объект программы, что полностью соответствует понятию переменной в математике. Наличие стройной математической основы обеспечивает возможность использования алгебраических методов создания структуры, преобразования и исследования программ. Это в какой-то мере приближает их к описанию структуры мышления человека.
Примером функционального языка является язык LISP (List Processing – обработка списков). Разработан и реализован в Массачусетском технологическом институте в 1959 г. Рассматривается специалистами как основной язык программирования систем искусственного интеллекта.
Логическое программирование. Логика и программирование долгое время были непересекающимися областями исследований. Только в 1973 впервые было опубликовано описание языка PROLOG (PROgramming in LOGic – программирование в терминах логики).
Центральным понятием в логическом программировании является отношение. Программа представляет собой совокупность определений отношений между объектами и цели. В логическом программировании нужно только специфицировать факты, на которых алгоритм основывается, а не определять последовательность шагов, которые требуется выполнить. Логические программы отличаются принципиально низким быстродействием, так как вычисления осуществляются методом проб и ошибок (посредством поиска с возвратами).
В настоящее время для ПК существует около двух десятков реализации PROLOG’а, некоторые из них оформлены в виде интегрированных сред. Объектно-ориентированное программирование.
Корни объектно-ориентированного программирования уходят в одну из ветвей логики, в которой первичной является не отношение, а объект. Прототипом объектно-ориентированного программирования явился язык SIMULA-67. Этот стиль программирования характеризуется богатыми графическими возможностями и средой программирования, развитой модульной структурой программ. Именно модульность упрощает разработку сложных программных продуктов. Как пример объектно-ориентированного языка можно назвать Visual Basic и Delphi.
Язык C – это самый распространённый язык программирования. На нём написано больше программ, чем на любом другом. Подавляющее большинство профессиональных программистов владеют им. Исторически этот язык неотделим от операционной системы UNIX, которая в наши дни переживает своё второе рождение.
60-е годы были эпохой становления операционных систем и языков программирования высокого уровня. Язык с самого начала создавался так, чтобы на нём можно было писать системные задачи. Разработчики языка – Кеннет Томсон и Деннис Ричи. Но поскольку в языке не хватало высокоуровневых средств (абстрактных типов данных и объектов, обработки исключений) в начале 80-х годов Бьерн Страуструп стал разрабатывать расширение языка С под условным названием «C с классами».
Первый коммерческий транслятор «С++» появился в 1983 году. Одна из главных целей создания С++ – увеличить процент повторного использования уже написанного кода. Когда появился язык Java, на него обратили очень пристальное внимание, так как он был близок по синтаксису C++ и показался знакомым многим программистам. Однако он не стал, как опасались некоторые, «убийцей С++». Рисунок
Язык Паскаль, названный в честь французского математика и философа Блеза Паскаля (1623– 1662), был создан как учебный язык программирования в 1968–1971 годах Никлаусом Виртом в Высшей технической школе (ETH) в Цюрихе. Этот язык быстро превратился из средства для обучения студентов программированию в инструмент для создания новых программных проектов. Одно из достоинств языка – лаконичность. Язык был создан в то время, когда языков высокого уровня было не много, к тому же все они, в отличие от языка Pascal, были созданы для решения конкретных задач.
Целью работы Н. Вирта было создание языка, который:
- строился бы на небольшом количестве базовых понятий,
- имел бы простой синтаксис,
- допускал бы перевод программ в машинный код простым компилятором.
Basic. Это одни из самых старых языков программирования. Его создатели – Джон Кемени и Том Куртц, работавшие в Дортмундском колледже в 1964 году. Свой язык они назвали по первым буквам слов «Beginner’s All Purpose Symbolic Instructions Code». Интерпретатор Basic был первым программным продуктом фирмы Microsoft, основанной Полом Аленом и Уильямом Гейтсом в 1975 году. В дальнейшем он не только поставлялся как программа, но и зашивался в ПЗУ компьютеров.