Автоматное программирование
- 1 year ago
- 0
- 0
Программи́рование — процесс создания и модификации компьютерных программ .
По выражению одного из основателей языков программирования Никлауса Вирта «Программы = алгоритмы + структуры данных » .
Программирование основывается на использовании языков программирования и средств программирования. В основном языки программирования основаны на текстовом представлении программ, но иногда программировать можно используя, например, визуальное программирование или "zero-code" программирование.
205 год до н. э. (150 год до н. э. ) — антикитерский механизм из Древней Греции был калькулятором , использовавшим шестерни различных размеров и конфигурации, обусловливающих его работу , по отслеживанию метонова цикла , до сих пор использующегося в лунно-солнечных календарях .
1206 год — Аль-Джазари построил программируемый автомат - гуманоид . Одна система, задействованная в этих устройствах, использовала зажимы и кулачки , помещённые в деревянный ящик в определённых местах, которые последовательно задействовали рычаги , которые, в свою очередь, управляли перкуссионными инструментами [ источник не указан 2141 день ] .
1804 год — построен жаккардовый ткацкий станок , построенный Жозефом Мари Жаккаром , который произвёл революцию в ткацкой промышленности, предоставив возможность программировать узоры на тканях при помощи перфокарт , его иногда считают первым программируемым устройством [ источник не указан 2141 день ] .
1843 год — Чарлз Бэббидж разработал проект (но не смог его реализовать, в том числе благодаря близорукости английского правительства) « Аналитической машины » — основанного на механических узлах и с приводом в виде парового двигателя первого программируемого вычислительного устройства [ источник не указан 2141 день ] .
Графиня Ада Августа Лавлейс , дочь английского поэта Джорджа Байрона , написала первую в истории человечества программу для Аналитической машины. Эта программа решала уравнение Бернулли , выражающее закон сохранения энергии движущейся жидкости. В своей первой и единственной научной работе Ада Лавлейс рассмотрела большое число вопросов. Ряд высказанных ею общих положений (принцип экономии рабочих ячеек памяти , связь рекуррентных формул с циклическими процессами вычислений) сохранили своё принципиальное значение и для современного программирования [ источник не указан 2141 день ] .
В материалах Бэббиджа и комментариях Лавлейс , намечены такие понятия как — подпрограмма и библиотека подпрограмм, модификация команд и индексный регистр, которые стали употребляться только в 1950-х годах [ источник не указан 2141 день ] . Однако ни одна из программ, написанных Адой Лавлейс, никогда так и не была запущена [ источник не указан 2141 день ] .
Первым широко известным и успешным языком программирования высокого уровня был Фортран , разработанный с 1954 по 1957 год, командой исследователей IBM во главе с Джоном Бакусом . Успех Фортрана привёл к образованию комитета учёных по разработке « » компьютерного языка. Отдельно Джон Маккарти из Массачусетского технологического института разработал язык программирования Лисп (основанный на лямбда-исчислении ), первый язык, возникший в академических кругах и получивший успех. С успехом этих начальных усилий языки программирования стали активной темой исследований в 1960-х и далее.
Первой советской открытой книгой по программированию, электронным вычислительным машинам и их различным применениям была выпущенная в начале 1956 года монография Анатолия Ивановича Китова « » . Заключительная треть этой книги посвящена «Неарифметическому использованию ЭВМ» — применению компьютеров для управления производственными процессами, решению задач экономики , искусственного интеллекта , машинного перевода и т. д. Книга переведена на несколько иностранных языков и опубликована в США , Китае , Польше , Чехословакии и других странах. Об этой книге Президент Академии наук СССР Г. И. Марчук писал «Вышедшая в 1956 году книга А. И. Китова „Электронные цифровые машины“ фактически сделала переворот в сознании многих исследователей». Выдающийся учёный современности В. М. Глушков отмечал: «А. И. Китов — признанный пионер кибернетики , заложивший основы отечественной школы программирования и применения ЭВМ для решения военных и народнохозяйственных задач. Я сам, как и десятки тысяч других специалистов, получил свои начальные компьютерные знания из его книги „Электронные цифровые машины“ — первой отечественной книги по ЭВМ и программированию». Профессор Мичиганского университета Джон Карр (John Carr, USA) в своей монографии « » ( 1958 , США) писал о том, что, проанализировав по рассматриваемой тематике порядка 150 выпущенных в мире на тот момент времени книг, пришел к выводу, что вопросы как ручного, так и автоматического программирования лучше всего освещены в книге Анатолия Китова.
Через шесть месяцев в том же 1956 году вышла в свет под редакцией А. И. Китова книга (А. И. Китова, и ) « » (для электронных вычислительных машин). Эта почти трёхсотстраничная книга стала второй в СССР общедоступной компьютерной монографией. В заключении этой книги продекларировано: «Широкое применение этих машин (ЭВМ) поднимет на новый небывало высокий уровень все виды производства в нашей стране, позволит резко повысить материальное благосостояние нашего народа и значительно укрепить обороноспособность нашей Родины». Данные две книги, покрыли громадный дефицит литературы по ЭВМ и программированию, существовавший в то время в Советском Союзе.
Вышедшая в свет в 1959 году книга « » (Китова А. И. и Криницкого Н. А.) была первым в СССР официальным учебником по ЭВМ и программированию, официально допущенным Министерством образования СССР для обучения в ВУЗах и университетах . Об этой книге Президент Академии наук СССР Г. И. Марчук писал: «В 1959 году появился другой фундаментальный труд А. И. Китова, написанный вместе с Н. А. Криницким — „Электронные цифровые машины и программирование“. Это была фактически энциклопедия науки об ЭВМ. Многие поколения студентов в университетах и вузах страны с помощью этой замечательной книги получили фундаментальное образование и стали первоклассными учёными во многих областях знаний. Книги А. И. Китова, написанные в начале эры ЭВМ в нашей стране, не должны быть забыты». Эта книга была издана в Румынии , Венгрии , Германской демократической республике и ряде других стран. Второе стереотипное издание книги «Электронные цифровые машины и программирование» появилось в 1961 году . Общий тираж иностранных и двух советских изданий составил свыше 130 000 экземпляров. Об этом учебнике-энциклопедии в своих воспоминаниях ветеран кафедры вычислительной техники МЭИ (первая кафедра ЭВМ в стране), д. т. н., профессор А. К. Поляков написал так: «По-моему мнению, учебник А. И. Китова и Н. А. Криницкого „Электронные цифровые машины и программирование“ (1959) в то время был лучшим в мире». .
Большая часть работы программистов связана с написанием исходных текстов (иногда язык программирования может быть и не текстовым, а графическим ), тестированием и отладкой программ на одном из языков программирования . Исходные тексты и исполняемые файлы программ являются объектами авторского права и являются интеллектуальной собственностью их авторов и правообладателей [ источник не указан 2141 день ] .
Различные языки программирования поддерживают различные стили программирования ( парадигмы программирования ). Выбор нужного языка программирования для некоторых частей алгоритма позволяет сократить время написания программы и решить задачу описания алгоритма наиболее эффективно. Разные языки требуют от программиста различного уровня внимания к деталям при реализации алгоритма, результатом чего часто бывает компромисс между простотой и производительностью (или между « временем программиста» и « временем пользователя» ).
Единственный язык, напрямую выполняемый ЭВМ — это машинный язык (также называемый машинным кодом и языком машинных команд ). Изначально все программы писались в машинном коде, но сейчас этого практически уже не делается. Вместо этого программисты пишут исходный код на том или ином языке программирования, затем, используя компилятор , транслируют его в один или несколько этапов в машинный код, готовый к исполнению на целевом процессоре , или в промежуточное представление , которое может быть исполнено специальным интерпретатором — виртуальной машиной . Но это справедливо только для языков высокого уровня . Если требуется полный низкоуровневый контроль над системой на уровне машинных команд и отдельных ячеек памяти, программы пишут на языке ассемблера , мнемонические инструкции которого преобразуются один к одному в соответствующие инструкции машинного языка целевого процессора ЭВМ (по этой причине трансляторы с языков ассемблера получаются алгоритмически простейшими трансляторами).
В некоторых языках вместо машинного кода генерируется интерпретируемый двоичный код «виртуальной машины», также называемый байт-кодом ( byte-code ). Такой подход применяется в Forth , некоторых реализациях Lisp , Java , Perl , Python , языках для .NET Framework .
Текстовый редактор среды программирования может иметь специфичную функциональность, такую, как индексация имён , отображение документации (например Doxygen ), подсветка синтаксиса , средства визуального создания пользовательского интерфейса . С помощью текстового редактора программист производит набор и редактирование текста создаваемой программы, который называют исходным кодом . Язык программирования определяет синтаксис и изначальную семантику исходного кода .
В процессе программирования в настоящее время широко используются интегрированные среды разработки , в состав которых обычно входят:
Для улучшения этой статьи
желательно
:
|