ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«МОРДОВСКИЙ
ГОСУДАРСТВЕННЫЙ
ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ М. Е.
ЕВСЕВЬЕВА»
Физико-математический факультет
Кафедра физики, информационных технологий и
методик обучения
РЕФЕРАТ
Классификация
языков программирования с примерами.
Автор работы _________________________________________В.
И. Звездина
Направление: 44.03.05
Педагогическое образование
Профиль Физика.
Информатика
Руководитель работы
канд. пед. наук, доцент ______________________________Т.
В. Кормилицына
Оценка __________
Саранск 2022
Содержание
Введение. 3
Классификация
языков программирования. 4
Паскаль. 9
С++. 10
Фортран. 12
Ассемблер. 13
Basics. 15
Java. 16
Заключение. 18
Список
использованных источников. 19
Введение
Общеизвестно, что информационные технологии являются одной из
наиболее быстро развивающихся областей современной жизни. Новые технологии,
проекты, названия и аббревиатуры появляются едва ли не каждый день.
Прогресс компьютерных технологий определил процесс появления новых
разнообразных знаковых систем для записи алгоритмов – языков программирования.
Смысл появления такого языка – оснащенный набор вычислительных формул
дополнительной информации, превращает данный набор в алгоритм.
Программирование - это искусство создавать программные продукты,
которые написаны на языке программирования. Язык программирования - это
формальная знаковая система, которая предназначена для написания программ,
понятных для исполнителя, средствами которой можно выражать алгоритмы. Язык
программирования определяет набор лексических, синтаксических и семантических
правил, задающих внешний вид программы и действия, которые выполняет
исполнитель под ее управлением.
Язык программирования служит двум связанным между собой целям: он
дает программисту аппарат для задания действий, которые должны быть выполнены,
и формирует концепции, которыми пользуется программист, размышляя о том, что
делать.
Языки программирования классифицируются по различным
критериям, но обычно они делятся на языки высокого и низкого уровня. Чем ближе
язык к естественному, тем больше вероятность того, что он будет классифицирован
как язык высокого уровня. И наоборот, если язык ближе к машинным инструкциям,
его называют языком низкого уровня. Поэтому весь спектр языков программирования
можно разделить на две группы: Языки низкого уровня и языки высокого уровня.
Можно сформулировать ряд
требований к языкам программирования и классифицировать языки по их
особенностям.
Основные требования,
предъявляемые к языкам программирования:
•
наглядность - использование в
языке по возможности уже существующих символов, хорошо известных и понятных как
программистам, так и пользователям ЭВМ;
•
единство - использование одних
и тех же символов для обозначения одних и тех же или родственных понятий в
разных частях алгоритма. Количество этих символов должно быть по возможности
минимальным;
•
гибкость - возможность
относительно удобного, несложного описания распространенных приемов
математических вычислений с помощью имеющегося в языке ограниченного набора
изобразительных средств;
•
модульность - возможность
описания сложных алгоритмов в виде совокупности простых модулей, которые могут
быть составлены отдельно и использованы в различных сложных алгоритмах;
•
однозначность - недвусмысленность
записи любого алгоритма. Отсутствие ее могло бы привести к неправильным ответам
при решении задач.
В настоящее время в мире
существует несколько сотен реально используемых языков программирования и для
каждого есть своя область применения.
Любой алгоритм, есть
последовательность предписаний, выполнив которые можно за конечное число шагов
перейти от исходных данных к результату. В зависимости от степени детализации
предписаний обычно определяется уровень языка программирования — чем меньше
детализация, тем выше уровень языка.
По этому критерию можно
выделить следующие уровни языков программирования:
•
машинные;
•
машинно-оpиентиpованные
(ассемблеры);
•
машинно-независимые (языки
высокого уровня).
Машинные языки и машинно-ориентированные
языки — это языки низкого уровня, требующие указания мелких деталей
процесса обработки данных. Языки же высокого уровня имитируют естественные
языки, используя некоторые слова разговорного языка и общепринятые
математические символы. Эти языки более удобны для человека.
Язык ассемблера — это
машинно-зависимый язык низкого уровня, в котором короткие мнемонические имена
соответствуют отдельным машинным командам. Используется для представления в
удобочитаемой форме программ, записанных в машинном коде.
Язык ассемблера позволяет
программисту пользоваться текстовыми мнемоническими (то есть легко
запоминаемыми человеком) кодами, по своему усмотрению присваивать символические
имена регистрам компьютера и памяти, а также задавать удобные для себя способы
адресации. Кроме того, он позволяет использовать различные системы счисления
(например, десятичную или шестнадцатеричную) для представления числовых
констант, использовать в программе комментарии и др.
С помощью языков низкого
уровня создаются очень эффективные и компактные программы, так как разработчик
получает доступ ко всем возможностям процессора. С другой стороны, при этом
требуется очень хорошо понимать устройство компьютера, затрудняется отладка
больших приложений, а окончательная программа не может быть перенесена на
компьютер с другим типом процессора. Подобные языки обычно применяют для
написания небольших системных приложений, драйверов устройств, модулей стыковки
с нестандартным оборудованием, когда важнейшими требованиями становятся
компактность, быстродействие и возможность прямого доступа к аппаратным
ресурсам. В некоторых областях, например в машинной графике, на языке
ассемблера пишутся библиотеки, эффективно реализующие алгоритмы обработки
изображений, требующие интенсивных вычислений.
Таким образом, программы,
написанные на языке ассемблера, требуют значительно меньшего объема памяти и
времени выполнения. Знание программистом языка ассемблера и машинного кода дает
ему понимание архитектуры машины. Несмотря на то, что большинство специалистов
в области программного обеспечения разрабатывают программы на языках высокого
уровня, наиболее мощное и эффективное программное обеспечение полностью или
частично написано на языке ассемблера.
Языки высокого уровня -
были разработаны для того, чтобы освободить программиста от учета технических
особенностей конкретных компьютеров, их архитектуры. Уровень языка
характеризуется степенью его близости к естественному, человеческому языку.
Машинный язык не похож на человеческий, он крайне беден в своих изобразительных
средствах. Средства записи программ на языках высокого уровня более
выразительны и привычны для человека. Например, алгоритм вычисления по сложной
формуле не разбивается на отдельные операции, а записывается компактно в виде
одного выражения с использованием привычной математической символики. Составить
свою или понять чужую программу на таком языке гораздо проще.
Важным преимуществом языков
высокого уровня является их универсальность, независимость от ЭВМ. Программа,
написанная на таком языке, может выполняться на разных машинах. Составителю
программы не нужно знать систему команд ЭВМ, на которой он предполагает
проводить вычисления. При переходе на другую ЭВМ программа не требует
переделки. Такие языки – не только средство общения человека с машиной, но и
людей между собой. Программа, написанная на языке высокого уровня, легко может
быть понята любым специалистом, который знает язык и характер задачи.
Таким образом, можно
сформулировать основные преимущества языков высокого уровня перед машинными:
•
алфавит языка высокого уровня
значительно шире алфавита машинного языка, что существенно повышает наглядность
текста программы;
•
набор операций, допустимых для
использования, не зависит от набора машинных операций, а выбирается из
соображений удобства формулирования алгоритмов решения задач определенного
класса;
•
формат предложений достаточно
гибок и удобен для использования, что позволяет с помощью одного предложения
задать достаточно содержательный этап обработки данных;
•
требуемые операции задаются с
помощью общепринятых математических обозначений;
•
данным в языках высокого уровня
присваиваются индивидуальные имена, выбираемые программистом;
•
в языке может быть предусмотрен
значительно более широкий набор типов данных по сравнению с набором машинных
типов данных.
Таким образом, языки
высокого уровня в значительной мере являются машинно-независимыми. Они
облегчают работу программиста и повышают надежность создаваемых программ.
Основные компоненты
алгоритмического языка:
•
алфавит,
•
синтаксис,
•
семантика.
Алфавит — это фиксированный
для данного языка набор основных символов, т.е. "букв алфавита", из
которых должен состоять любой текст на этом языке — никакие другие символы в
тексте не допускаются.
Синтаксис — это правила
построения фраз, позволяющие определить, правильно или неправильно написана та
или иная фраза. Точнее говоря, синтаксис языка представляет собой набор правил,
устанавливающих, какие комбинации символов являются осмысленными предложениями
на этом языке.
Семантика определяет
смысловое значение предложений языка. Являясь системой правил истолкования
отдельных языковых конструкций, семантика устанавливает, какие
последовательности действий описываются теми или иными фразами языка и, в
конечном итоге, какой алгоритм определен данным текстом на алгоритмическом
языке.
Языки высокого уровня
делятся на:
•
процедурные;
•
логические;
•
объектно-ориентированные.
Процедурные языки
предназначены для однозначного описания алгоритмов. При решении задачи
процедурные языки требуют в той или иной форме явно записать процедуру ее
решения.
Язык Паскаль является одним из самых
распространенных в настоящее время алгоритмических языков, использующихся при
программировании. Он сформировался довольно недавно в 1970 году, а его
разработчиком стал Никлаус Вирт. Однако автор не назвал данный язык своей
фамилией, а предпочел фамилию известного математика и физика Паскаля. На самом
первом этапе этот язык был очень примитивен, и его часто сравнивали с уже существующем
языком Java, но на практике он оказался чрезвычайно удачным и приобрел большую
популярность у программистов.
Основные достоинства языка:
1) гибкость и универсальность;
2) простота и ясность конструкций;
3) легкость реализации на большинстве
современных ЭВМ;
4) возможность достаточно полного контроля
правильности программы, как на этапе трансляции, так и во время выполнения
программы;
5) возможность удовлетворения требованиям
структурного программирования;
6) наличие набора структурных типов данных:
массивов, записей, записей с вариантами, множеств, файлов и т.д.
Некоторые недостатки языка:
1) отсутствие операции возведения в степень;
2) отсутствие средств работы с файлами прямого
доступа.
C++ — компилируемый, статически
типизированный язык программирования общего назначения.
C++ широко
используется для разработки программного обеспечения, являясь одним из самых
популярных языков программирования. Область его применения включает
создание операционных систем, разнообразных прикладных
программ, драйверов устройств, приложений для встраиваемых систем,
высокопроизводительных серверов, а также развлекательных приложений (игр).
Существует множество реализаций языка C++, как бесплатных, так и коммерческих и
для различных платформ. Например, на платформе x86 это GCC, Visual
C++, Intel C++ Compiler, Embarcadero (Borland) C++ Builder и другие.
Синтаксис
C++ унаследован от языка C. Одним из принципов разработки было сохранение
совместимости с C. Тем не менее, C++ не является в строгом смысле надмножеством
C; множество программ, которые могут одинаково успешно транслироваться
как компиляторами C, так и компиляторами C++, довольно велико, но не
включает все возможные программы на C.
Язык
возник в начале 1980-х годов, когда сотрудник фирмы Bell Labs
Бьерн Страуструп придумал ряд усовершенствований к языку C под собственные
нужды. Когда Страуструп работал над задачами теории очередей, он
обнаружил, что попытки применения существующих в то время языков
программирования оказываются неэффективными, а применение высокоэффективных
машинных языков слишком сложно из-за их ограниченной выразительности. Так,
язык Симула имеет такие возможности, которые были бы очень полезны
для разработки большого программного обеспечения, но работает слишком медленно,
а язык BCPL достаточно быстр, но слишком близок к языкам низкого
уровня и не подходит для разработки большого программного обеспечения.
Вспомнив
опыт своей диссертации, Страуструп решил дополнить язык C возможностями,
имеющимися в языке Симула. Язык C, будучи базовым языком системы UNIX, на
которой работали компьютеры Bell, является быстрым, многофункциональным и
переносимым. Страуструп добавил к нему возможность работы с классами и
объектами. В результате практические задачи моделирования оказались доступными
для решения как с точки зрения времени разработки, так и с точки зрения времени
вычислений. Ранние версии языка, первоначально именовавшегося «C with classes»
(«Си с классами»), стали доступны с 1980 года.
Основная
причина, по которой Си++ до сих пор популярен, заключается в том, что он
поддерживает объектно-ориентированное программирование (ООП). ООП — это еще
один способ написания программ, помогающий программисту писать программы
быстрее и с меньшим количеством ошибок. ООП также позволяет увеличить скорость
обслуживания.
C++ —
машино-ориентированный язык программирования, предназначенный для того, чтобы
сделать программирование более приятным для серьезного программиста. Помимо
мелких деталей, С++ — это высокомерие языка программирования Си.
Одним из первых и наиболее удачных компиляторов
стал язык Фортран, разработанный фирмой IBM. Профессор Дж. Букс и группа
американских специалистов в области программирования в 1954 году опубликовало
первое сообщение о языке. Дословно, название языка FORmulae TRANslationF– преобразование
формул.
Среди причин долголетия Фортрана можно отметить
простую структуру, как самого Фортрана, так и предназначенных для него
трансляторов.
Программа на Фортране записывается в
последовательности предложений или операторов (описание некоего преобразования
информации), и оформляется по определенным стандартам. Эти стандарты
накладывают ограничения, в частности, на форму записи и расположения частей
оператора в строке бланка для записи операторов. Программа, записанная на
Фортране,
представляет собой один или несколько сегментов (подпрограмм) из
операторов. Сегмент, управляющий работой всей программы в целом, называется
основной программой.
Фортран был задуман для использования в сфере
научных и инженерно-технических вычислений. Однако на этом языке легко
описываются задачи с разветвленной логикой (моделирование производственных
процессов, решение игровых ситуаций и т.д.), некоторые экономические задачи и
особенно задачи редактирования (составление таблиц, сводок, ведомостей и т.д.).
Язык ассемблера является символическим
представлением машинного языка. Это упрощает процесс программирования по
сравнению с программированием в машинном коде. Некоторые задачи, такие как
обмен сложными структурами с нестандартными устройствами обработки данных, не
могут быть решены с помощью языков программирования более высокого уровня.
Сборщик может это сделать. В основном, язык ассемблера — это машинный язык. А
программист, реализующий задачу на языке высокого уровня с использованием языка
ассемблера, может определить, имеет ли смысл с точки зрения использования
компьютера решать эту задачу. У ассемблера есть особенность, которая отпугивает
многих новичков в языках программирования — ассемблер — это язык, зависящий от
машины. Это означает, что ассемблер работает непосредственно с ресурсами
компьютера, что требует хорошего знания его архитектуры, логики работы
операционной системы и высокой степени точности при написании программы.
Несмотря на то, что ассемблер является
машинно-ориентированным языком, т.е. языком низкого уровня, программист может
использовать его как для работы на высоком, так и на среднем уровне. Низкий
уровень программирования на ассемблере подразумевает прямой доступ к каналам
ввода/вывода устройств, называемым идеальными портами, и прямой доступ к
оперативной памяти. Использование этого режима позволяет неопытному
программисту использовать более четкий и легкий стиль разработки программы.
Более опытные программисты ассемблерного языка могут использовать такие
идеальные возможности режима, как вложенные структуры и объединения.
Ассемблер предоставляет программисту полную
свободу действий при разработке программы, что является как его преимуществом,
так и недостатком, так как требует от разработчика знания системы команд
данного компьютера и его операционной системы. Более того, несмотря на
минимальный размер исполняемого файла на максимальной скорости, время создания
программы значительно увеличивается с увеличением объема разрабатываемого
проекта. По этой причине ассемблер был и остается языком программирования для
профессионалов.
BASIC был разработан в Дартмутском колледже и
предназначен для начинающих. Фортран был сложным языком для студентов не
математических факультетов. Джон Кемени и Томас Курц, учившиеся в Дартмуте,
использовали FORTRAN в качестве основы для разработки BASIC. BASIC — это
аббревиатура от Beginner’s All-purpose Symbolic Instruction Code, название,
которое говорит само за себя. Интерпретатор обычно используется с BASIC, хотя
современные версии BASIC скомпилированы. Это позволяет начинающим программистам
сконцентрироваться на языке программирования, а не на специфике компиляции. Как
и все интерпретируемые языки, программы на BASIC работают медленнее
скомпилированных программ, поэтому программы на BASIC не используются в
коммерческих приложениях.
Этот язык стал одним из самых распространенных.
Изначально он был задуман как очень простой язык, который можно выучить очень
быстро. Язык содержал примитивные инструменты редактирования, освобождавшие
пользователя от необходимости понимать все сложности базовой операционной
системы. Вначале Basic использовался только для обработки числовых значений,
позже он был расширен обработкой строковых переменных и теперь обеспечивается
рядом методов простой манипуляции через символьные цепочки, которые фактически
стали стандартом. Простота Basic сделала его наиболее подходящим языком
программирования для первых микрокомпьютеров. Сегодня это основной язык
программирования для персональных компьютеров.
Java — объектно-ориентированный язык
программирования, разработанный компанией Sun Microsystems. Java-приложения
обычно компилируются в специальный байтовый код, так что они могут быть
выполнены на любой Java-виртуальной машине (JVM) независимо от архитектуры
компьютера. Официальная дата выхода — 23 мая 1995 г. Первоначально язык
назывался Oak, он был разработан Джеймсом Гослингом для программирования
устройств бытовой электроники. Позже он был переименован в Java и использовался
для написания клиентских приложений и серверного программного обеспечения. На
эмблеме на официальном языке, названной в честь марки кофе Java, изображена
чашка поднимающегося кофе.
Преимущество выполнения программ в полной
независимости байт-кода от операционной системы и устройств позволяет
Java-приложениям запускаться на любом устройстве, для которого имеется
соответствующая виртуальная машина. Другой важной особенностью технологии Java
является гибкая система безопасности, благодаря тому, что выполнение программы
полностью контролируется виртуальной машиной. Любая операция, превышающая
определенные разрешения программы (например, попытка получить
несанкционированный доступ к данным или подключиться к другому компьютеру),
приводит к немедленному прерыванию работы.
Одним из недостатков концепции виртуальной
машины является то, что выполнение байтового кода виртуальной машиной может
снизить производительность программ и алгоритмов, реализованных на языке Java.
Это утверждение было верно для первых версий Java Virtual Machine, но в
последнее время оно почти утратило свою значимость. Этому способствовал ряд
улучшений: использование технологии трансляции байт-кода в машинный код во время
работы программы (технология JIT) с возможностью хранения версий класса в
машинном коде, широкое использование платформоориентированного (нативного) кода
в стандартных библиотеках, аппаратного обеспечения, позволяющего ускорить
обработку байт-кода (например, технология Jazelle, поддерживаемая некоторыми
процессорами компании ARM).
Идеи, лежащие в основе концепции и различных
реализаций Java Virtual Machine Environment, вдохновили многих энтузиастов на
расширение списка языков, которые могут быть использованы для создания
программ, запускаемых на виртуальной машине. Эти идеи также нашли выражение в
общей спецификации инфраструктуры языка CLI, лежащей в основе платформы
Microsoft .NET.
Идея создания языков программирования позволила
нам общаться с машиной и понимать ее. Современные языки программирования
обладают огромными преимуществами по сравнению с более ранними языками. Они
более структурированы и предлагают интегрированную среду развития.
Выбор используемого языка определяется многими
факторами. Большинство языков имеют специализацию и подходят для написания
определенных типов программ. Выбор языка определяется ориентацией
разрабатываемой программы. Кроме того, программист должен знать, насколько распространен
этот язык в случае, если кому-то понадобится поддерживать его программу в
будущем.
На сегодняшний день, любое среднее и крупное
предприятие, имеет в своем штате группу программистов, обладающими знаниями
программирования различными языками, которые редактируют, изменяют, и
модифицируют программы используемыми сотрудниками предприятия. Это говорит о
том, что на рынке труда пользуются спросом обладающими знаниями и опытом работы
с различными языками программирования.
Несмотря на то, что современный уровень
развития языков программирования находятся на высоком уровне, тенденция их
развития, а также развития информационных технологий в целом, складывается
таким образом, что можно предположить, что в ближайшем будущем, человеческие
познания в этой сфере, помогут произвести на свет языки, умеющие принимать,
обрабатывать и передавать информации в виде мысли, слова, звука или жеста.
1.
Ассемблер для Windows, Пирогов В.Ю. 2005;
2.
Брюс Экель «Java Philosophy», 2014.
3.
В. В. Васильченко «ФОРТРАН». Программирование
Windows-приложений на FORTRAN. «», 2003 г;
4.
Васильев П. П. «Турбо Паскаль в примерах и
задачах», 2003;
5.
Есипов А.С., «Информатика и информационные
технологии», 2003;
6.
Информатика», базовый курс, 2-е издание / Под
руководством С.В. Симоновича-СПб. Питер, 2004;
7.
Информационные технологии и ИКТ. 10-11, Н.Д.
Угринович, Москва, 2006;
8.
Леонтьев. Последняя энциклопедия компьютерного
программного обеспечения. — Пресса, 2003;
9.
Магданурова Г. I, «Визуальные основы на практике»,
2004..;
10.
Технологии управления информацией»: Инфоматика-М.Ф.
Меняев: Омега-Л, 2003;
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.