Ім'я файлу: реферат.docx
Розширення: docx
Розмір: 44кб.
Дата: 08.03.2023
скачати
Пов'язані файли:
Шоковая терапия.docx
ЭССЕ.docx
курсовая работа - Анализ платежеспособности предприятия.docx
Контрольная работа - система налогообложения.docx


Реферат

по дисциплине: История и философия науки»

на тему: «Из истории языков программирования»

Выполнил:

Проверил:

2023

Содержание

ВВЕДЕНИЕ …………………………………………………………………….…3

1. Происхождение программирования…………………………………………...5

2. Первое поколение компьютерного языка – машинный язык………………..7

3. Компьютерный язык второго поколения – язык ассемблера……………….12

4. Компьютерный язык третьего поколения – язык высокого уровня………..19

ЗАКЛЮЧЕНИЕ ……………………………………………………………….…23

Список использованной литературы …………………………….25

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

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

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

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

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

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

Предметом исследования является история развития технологий программирования.

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

- проанализировать информационные источники по языкам программирования;

- рассмотреть историю развития языков программирования;

- выявить этапы развития языков программирования.

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

1. Происхождение программирования

Программирование восходит к самым ранним, и мы должны упомянуть имя Ады Лавлейс, дочери известного британского поэта Байрона и математика. Она разработала «алгоритмы» для вычислительных программ, написала первую «блок-схему программирования» и считалась «первым человеком, написавшим программы для компьютеров» (также известным как первый в мире программист). Компьютером в то время была Аналитическая машина (предшественник современного электронного компьютера), изобретенная Чарльзом Бэббиджем. Ада однажды предсказала: «Эта машина может быть использована для набора текста, аранжировки музыки или различных более сложных целей в будущем» [6, стр. 204].

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

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

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

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

Первый компьютер был изобретен в 1940-х годах. В то время различные элементы управления компьютером в основном реализовывались ручным управлением, но это было серьезно недостаточно с точки зрения удобства. После многих лет разработки соответствующий персонал предложил использовать язык программирования. Модель программирования в то время не была совершенной, это дало огромный толчок развитию языков программирования [7, стр. 235].

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

В сочетании с появлением некоторых языков высокого уровня, таких как Паскаль, фортран и язык С, работа с компьютером больше не требует большого капитала и труда. До 1990-х годов область компьютерного программирования быстро развивалась, и некоторые объектно-ориентированные Языки высокого уровня, такие как Java и т. д., заставляют компьютерные программы постепенно развиваться от первоначального общения и вычислений до анализа видео, передачи изображений, интеллектуального моделирования и обработки знаний. С непрерывным развитием современной цивилизации языки компьютерного программирования смогли удовлетворить информационные потребности различных областей.
2. Первое поколение компьютерного языка – машинный язык
Машинный язык представляет собой систему набора инструкций. Этот набор инструкций, называемый машинным кодом (machine code), представляет собой данные, которые ЦП компьютера может напрямую интерпретировать.

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

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

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

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

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

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

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

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

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

2.  Адрес операнда. CPU может получить требуемый операнд через этот адрес.

3.  Адрес хранения результата операции. Результат обработки операнда сохраняется по этому адресу для повторного использования.

4. Адрес следующей инструкции. Когда программа выполняется, большинство инструкций последовательно выбираются и выполняются из основной памяти, и порядок выполнения программы меняется только при встрече с командой передачи. Чтобы сократить длину инструкции, можно использовать программный счетчик (ProgramCounter, PC) для хранения адреса инструкции [3, стр. 211].

Каждый раз, когда выполняется инструкция, адрес инструкции ПК автоматически равен +1 (при условии, что инструкция занимает только один блок оперативной памяти), указывая адрес следующей инструкции, которая должна быть выполнена. Когда встречается инструкция передачи, содержимое ПК модифицируется адресом передачи. Из-за использования ПК адрес следующей инструкции, которая должна быть выполнена, не должен быть явно указан в инструкции.

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

Инструкции включают поле кода операции и поле адреса. В зависимости от количества адресов, участвующих в адресном поле, общие форматы инструкций, следующие:

1. Трехадресная инструкция: в поле общего адреса A 1 и A 2 соответственно определяют адрес первого и второго операнда, а A 3 определяет адрес результата. Адрес следующей инструкции обычно задается последовательно программным счетчиком;

2.  Двухадресная инструкция: 1 в поле адреса определяет адрес первого операнда, а A 2 одновременно определяет адрес второго операнда и адрес результата;

3. Одноадресная инструкция: A в поле адреса определяет адрес первого операнда. Фиксировано использовать определенный регистр для хранения второго операнда и результата операции. При этом их адрес подразумевается в инструкции;

4.  Инструкция с нулевым адресом: в стековом компьютере операнды обычно хранятся в двух блоках наверху стека, а результат помещается на вершину стека. Все адреса подразумеваются, поэтому большинство инструкций имеют только коды операций и не имеют адресных полей;

5.  Инструкция с переменным номером адреса: количество адресов, задействованных в адресном поле, изменяется в зависимости от определения операции. Например, количество адресов в инструкциях компьютера может быть от 0 до 6 [12, стр. 237].

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

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

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

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

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

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

3. Компьютерный язык второго поколения – язык ассемблера
Язык ассемблера (assembly language) — это язык низкого уровня, используемый в электронных компьютерах, микропроцессорах, микроконтроллерах или других программируемых устройствах, также известный как символьный язык. В языке ассемблера вместо кодов операций для машинных инструкций используются мнемоники, а вместо адресов инструкций или операндов используются адресные символы или метки.

Язык ассемблера — это любой низкоуровневый язык программирования, в котором существует строгое соответствие между инструкциями языка и инструкциями машинного кода архитектуры. Поскольку ассемблер основан на инструкциях машинного кода, каждый язык ассемблера предназначен для конкретной компьютерной архитектуры. Язык ассемблера также можно назвать символьным машинным кодом [8, стр. 230].

Ассемблерный код преобразуется в исполняемый машинный код утилитой, называемой ассемблером. Процесс преобразования называется сборкой, как и при сборке исходного кода. Языки ассемблера обычно имеют по одному оператору на машинную инструкцию (1:1), но часто также поддерживают константы, комментарии, ассемблерные инструкции, символические метки для программ и ячеек памяти и макросы.

Термин «ассемблер» часто приписывают Уилксу, Уилеру и Гиллу в их книге 1951 года «Подготовка электронных цифровых компьютерных программ», однако они использовали этот термин для обозначения «программы, которая собирает другую программу, программа состоит из нескольких программы. Части объединены в одну программу".

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

Язык ассемблера использует мнемонику для представления каждой низкоуровневой машинной инструкции или кода операции, а часто также каждого архитектурного регистра, флага и т. д. Для многих операций требуется один или несколько операндов для формирования полной инструкции. Большинство ассемблеров допускают именованные константы, регистры и метки для программ и областей памяти, а также могут вычислять выражения для операндов [11, стр. 183].

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

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

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

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

Язык ассемблера более удобочитаем, чем машинный язык, но все же менее удобочитаем, чем языки высокого уровня. Однако программы, написанные с его помощью, отличаются меньшим объемом памяти и высокой скоростью выполнения, которые не могут быть заменены языками высокого уровня. В реальном приложении использование языка ассемблера зависит от конкретных требований приложения, времени разработки и качества, чтобы найти компромисс. Данный язык часто используется для загрузочного кода системы, который представляет собой низкоуровневый код, который инициализирует и тестирует аппаратное обеспечение системы перед загрузкой операционной системы и обычно хранится в ПЗУ. (Примером являются BIOS на IBM-совместимых ПК и CP/M).

Некоторые компиляторы перед полной компиляцией переводят язык высокого уровня в ассемблер, что позволяет просматривать ассемблерный код в целях отладки и оптимизации [4, стр. 251].

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

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

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

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

Как язык программирования второго поколения над машинным языком, язык ассемблера также имеет много преимуществ:

- может легко считывать состояние памяти и состояние аппаратного интерфейса ввода/вывода;

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

- как низкоуровневый язык, он обладает высокой расширяемостью [2].

Можно выделить также недостатки языка. Перечислим их:

- поскольку код очень монотонный и в нем мало специальных символов команд, это делает код избыточным и трудным для написания;

- поскольку ассемблер все еще должен вызывать память для хранения данных сам по себе, легко иметь BUG, ​​и его нелегко отлаживать;

- даже если программа завершена, потребуется много времени для последующего обслуживания;

- дефект плохой совместимости кода вызван особенностью машины.

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

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

В большинстве случаев разработки программного обеспечения пользователи используют программирование на языке высокого уровня для повышения эффективности программирования. Однако в случае небольшого объема памяти, высокой скорости выполнения и необходимости прямого управления оборудованием для достижения цели оптимизации скорости программы используется программирование на языке ассемблера [3, стр. 206].

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

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

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

По мере того, как современные программные системы становятся больше и сложнее, также появилось большое количество инкапсулированных языков высокого уровня, таких как C/C++, Pascal / Object Pascal, как того требует время. Эти новые языки позволяют программистам быть проще и эффективнее в процессе разработки, позволяя разработчикам программного обеспечения соответствовать требованиям быстрой разработки программного обеспечения [5, стр. 268].

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

Хотя с непрерывным развитием полупроводниковых технологий и технологий программирования язык ассемблера редко встречается в реальных инженерных приложениях, это не означает, что язык ассемблера бесполезен и был заменен другими языками высокого уровня. Базовый драйвер встроенной системы и BIOS компьютера по-прежнему необходимо реализовать на языке ассемблера. Язык ассемблера — это язык для обучения студентов пониманию аппаратных ресурсов, он является основой для изучения и понимания других продвинутых языков программирования, является прелюдией ко многим профессиональным курсам, таким как принципы компоновки компьютеров, интерфейс и коммуникационные технологии, технология компьютерного управления и данные и пр.


4. Компьютерный язык третьего поколения – язык высокого уровня
Язык высокого уровня (язык программирования высокого уровня) — это машинно-независимый, процессно-ориентированный или объектно-ориентированный язык. Язык высокого уровня — это язык, похожий на повседневную беседу, созданный со ссылкой на язык математики. Например, чтобы добавить две переменные и присвоить значение третьей переменной, выразите это на языке высокого уровня как var3=var1+var2 [3, стр. 265].

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

Из-за ясной цели и простоты понимания новичку легко освоить языки программирования высокого уровня. В то же время язык программирования высокого уровня имеет множество библиотек функций из-за истории развития. Пользователи могут добавлять заголовочные файлы в код в соответствии со своими потребностями, чтобы вызывать эти функции для реализации своих собственных функций. Конечно, пользователи также могут писать функции в соответствии со своими предпочтениями [6, стр. 205].

Являясь языком программирования общего назначения, язык программирования высокого уровня не имеет ничего общего с аппаратным обеспечением и системой команд самого компьютера, он более удобочитаем, может удобно выразить функцию программы и лучше описать используемый алгоритм. В то же время новичкам легче понять и легко научиться. И легко учиться, и осваивать. Однако, поскольку язык программирования высокого уровня является компилируемым языком, его скорость работы ниже, чем у ассемблера, а поскольку язык высокого уровня более многословен, скорость выполнения кода также ниже [5, стр. 208].

С момента появления первого языка программирования до настоящего времени существуют сотни языков программирования высокого уровня, многие из которых стали вехами в развитии языков программирования и оказали большое влияние. Например: BASIC, JAVA, C, C++, python и т. д.

Языки программирования высокого уровня также изменились от ранних управляющих сигналов к инструментам программирования со структурами и форматами, а появление таких языков, как C++, открыло новую главу в объектно-ориентированных языках программирования. В то же время, с повышением эффективности написания программного обеспечения, разработка программного обеспечения постепенно становится коммерческим проектом с масштабом и промышленностью.

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

Программы, разработанные на языках высокого уровня, должны быть «переведены», прежде чем их можно будет выполнять на машинах. Есть два метода «перевода»: один — интерпретация, а другой — компиляция. Интерпретация — это процесс перевода исходной программы и выполнения предложения, а компиляция — это процесс перевода исходной программы в целевую программу в виде машинных инструкций, а затем связывание целевой программы в исполняемую программу с компоновщиком перед ней. может быть выполнено [9, стр. 167].

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

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

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

Можно выделить основные преимущества, которые дает абстрагирование языков программирования от машинного языка к языку высокого уровня:

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

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

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

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

ЗАКЛЮЧЕНИЕ

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

Многие исследователи, такие как Абрамов С.А., Зима Е.В., Грызлов В.И., Грызлова Т.П., рассматривают вопросы, связанные с историей программирования, основными принципами и подходами к созданию языков программирования.

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

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

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

- последовательность высказываний от частного (программирование деталей) к общему (программирование более крупных компонентов);
- формирование и совершенствование инструментов программиста (языков программирования высокого уровня и рабочих сред);

- повышение первенства программного обеспечения и информационных систем;

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

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

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

1. Баженова, И.Ю. Языки программирования: Учебник для студентов учреждений высш. проф. образования / И.Ю. Баженова; под ред. В.А. Сухомлин. — М.: ИЦ Академия, 2018. — 368 c.

2. Венчковский, Л.Б. Методы кодирования технико-экономической информации; Советское радио - М., 2018. - 120 c.

3. Вирт, Н. Языки программирования / Н. Вирт, В. Серебряков. - М.: Наука, 2022. - 217 c.

4. Голицына, О.Л. Языки программирования: Учебное пособие / О.Л. Голицына, Т.Л. Партыка, И.И. Попов. - М.: Форум, НИЦ Инфра-М, 2020. - 400 c.

5. Довек, Ж. Введение в теорию языков программирования / Ж. Довек, Ж.-Ж. Леви. - М.: ДМК, 2021. - 134 c.

6. Мамонова, Т. Е. Информационные технологии. Лабораторный практикум: учеб. пособие для СПО / Т. Е. Мамонова. — М.: Издательство Юрайт, 2019. — 178 с.

7. Орлов, С. Теория и практика языков программирования. Учебник для вузов Стандарт третьего поколения / С. Орлов. - СПб.: Питер, 2020. - 688 c.

8. Трофимов, В. В. Основы алгоритмизации и программирования : учебник для СПО / В. В. Трофимов, Т. А. Павловская ; под ред. В. В. Трофимова. — М.: Издательство Юрайт, 2019. — 137 с.

9. Федоров, Д. Ю. Программирование на языке высокого уровня python: учеб. пособие для СПО / Д. Ю. Федоров. — М.: Издательство Юрайт, 2019. — 126 с.

10. Финогенов, К. Г. Использование языка Ассемблера. Учебное пособие / К.Г. Финогенов. - М.: Горячая линия - Телеком, 2019. - 440 c.
скачати

© Усі права захищені
написати до нас