Файл: Современные языки программирования (Машинный язык).pdf

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

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

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

Добавлен: 30.03.2023

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

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

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

Введение

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

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

Современные языки программирования старше Интернета, Windows и персонального компьютера минимум на десятилетие. При этом новые языки не переставали регулярно появляться, однако ни один из них не задержался в практике программирования, хотя приносимые ими новые идеи дополняли уже известные языки (как это произошло с объектно-ориентированным программированием).

Тема «Языки программирования» очень актуальна в настоящее время, это обусловлено тем, что усиливается процесс компьютеризации общества, в следствии чего создается большое количество программ, игр и т.д.

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

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

Задачи исследования:

  1. Ознакомления с языками программирования.
  2. Рассмотрение истории развития языков программирования.
  3. Обзор современных языков программирования.

В первой главе рассматриваются общие сведения о языках программирования и история их развития. Подробнее будут рассмотрены: машинный язык, ассемблер, первые языки программирования высокого уровня, алгоритмические языки, языки объектно-ориентированного программировании, языки программирования для компьютерных сетей, языки программирования на платформе .NET.


Во второй главе рассматривается обзор современных языков программирования. Мне хотелось бы разобрать несколько основных современных языков, таких как Си и его разновидностей, Фортран, Паскаль и Бейсик.

В данной курсовой работе использовался научно-исследовательские методы.

Применяемые технические средства: Intel® Core™ i3 CPU M370 2.40 GHz.

Программные средства OC WINDOWS 7.

Данная курсовая работа выполнена в программе Microsoft Word 2010.

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

Одной из самых революционных идей, приведших к созданию автоматических цифровых вычислительных машин, была высказанная в 20-х годах XIX века Ч.Бэббиджем мысль о предварительной записи порядка действий машины для последующей автоматической реализации вычислений - программе. И, хотя использованная Бэббиджем запись программы на перфокартах, придуманная для управления ткацкими станками французским изобретателем Жозефом Мари-Жаккаром, технически не имеет ничего общего с современными приемами хранения программ в ЭВМ, принцип здесь по-существу один. С этого момента начинается история программирования.

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

Революционным моментом в истории языков программирования стало появление системы кодирования машинных команд с помощью специальных символов. Система кодирования, предложенная Моучли, увлекла одну из сотрудниц его компании - Грейс Мюррей Хоппер, которая посвятила всю свою жизнь компьютерам и программированию. Она вспоминает, что стала «третьим в мире программистом первого в мире большого цифрового компьютера». Впоследствии она писала: «Я имела то преимущество, что изучала как технику, так и математику и знала, как работает машина от начала и до конца».[1]

Язык программирования — это система обозначений, служащая для точного описания программ или алгоритмов для ЭВМ. Они относятся к искусственным языкам, и отличаются от естественных ограниченным числом "слов", а также очень строгими правилами записи команд (операторов). В них не допускается свободное толкование слов и выражений, характерное для обычного языка. Язык программирования определяет набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполнит исполнитель (компьютер) под ее управлением.


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

десятка разнообразных языков программирования.

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

  1. Функция: язык программирования предназначен для написания компьютерных программ, которые применяются для передачи компьютеру инструкций по выполнению того или иного вычислительного процесса и организации управления отдельными устройствами.
  2. Задача: язык программирования отличается от естественных языков тем, что предназначен для передачи команд и данных от человека к компьютеру, в то время как естественные языки используются для общения людей между собой. Можно обобщить определение «языков программирования» — это способ передачи команд, приказов, чёткого руководства к действию; тогда как человеческие языки служат также для обмена информацией.
  3. Исполнение: язык программирования может использовать специальные конструкции для определения и манипулирования структурами данных и управления процессом вычислений.

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

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

1.1 Машинный язык


Машинный язык появился в 40-50 годы XX в. Это язык программирования, содержание и правила которого реализованы аппаратными средствами ЦВМ. М. я. состоит из системы команд ЦВМ и метода кодирования информации (исходных данных, результатов вычислений), принятого в ЦВМ. Символами М. я. являются двоичные цифры. Эффективность решения различных задач на ЦВМ в значительной степени зависит от того, насколько М. я. приспособлен для реализации заданных алгоритмов. В программе, составленной на М. я., или, как иногда говорят, в машинном коде, должны быть заданы вполне определённые команды для выполнения каждой операции. При этом точно указывается, где должны храниться числа (ячейка запоминающего устройства), как пересылать и обрабатывать числа и где хранить результаты вычислений.

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

1.2 Ассемблер (машинно-ориентированный язык)

Язык ассемблера появился в начале 50-ых годов XX в. — это машинно-зависимый язык низкого уровня, в котором отдельным машинным командам соответствуют мнемонические (легко запоминаемые) имена, записываемые в текстовом виде. Трансляция программы в исполняемый машинный код производится ассемблером — программой-транслятором, которая и дала языку ассемблера его название. Команды языка ассемблера один к одному соответствуют командам процессора, фактически, они представляют собой более удобную для человека символьную форму записи (мнемокод) команд и их аргументов. При этом одной команде языка ассемблера может соответствовать несколько вариантов команд процессора.


Каждая модель (или семейство) процессоров имеет свой набор команд и соответствующий ему язык ассемблера. Наиболее популярные синтаксисы — Intel-синтаксис и AT&T-синтаксис.

Достоинства: язык ассемблера позволяет писать самый быстрый и компактный код, какой вообще возможен для данного процессора.

Если код программы достаточно большой, данные, которыми он оперирует, не помещаются целиком в регистрах процессора, то есть частично или полностью находятся в оперативной памяти, то искусный программист, как правило, способен значительно оптимизировать программу по сравнению с высокоуровневыми трансляторами (компилятор-это транслятор текста на машинный язык, который считывает исходный текст) по одному или нескольким параметрам: скорость работы (за счёт оптимизации вычислений и/или более рационального обращения к ОП, перераспределения данных), объём кода (в том числе за счёт эффективного использования промежуточных результатов).

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

Язык ассемблера применяется для создания драйверов оборудования и ядра операционной системы. Также используется для создания «прошивок» BIOS.

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

Недостатки

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

В силу машинной ориентации («низкого» уровня) языка ассемблера человеку сложнее читать и понимать программу на нём по сравнению с языками программирования высокого уровня; программа состоит из слишком «мелких» элементов — машинных команд. Требуется высокая квалификация программиста. Отсутствует переносимость программ на компьютеры с другой архитектурой и системой команд.

Исторически можно рассматривать язык ассемблера как второе поколение языков программирования ЭВМ (первый-машинный код). Недостатки языка ассемблера, сложность разработки на нём больших программных комплексов привели к появлению языков третьего поколения — языков программирования высокого уровня (Фортран, Лисп, Кобол, Паскаль, Си и др.). Однако языки ассемблера сохраняют свою нишу, обусловливаемую их уникальными преимуществами в части эффективности и возможности полного использования специфических средств конкретной платформы.