Компьютерное программирование


Компьютерное программирование — это процесс выполнения определенных вычислений (или, в более общем смысле, достижения определенного результата вычислений ), обычно путем разработки и создания исполняемой компьютерной программы . Программирование включает в себя такие задачи, как анализ, генерация алгоритмов , профилирование точности алгоритмов и потребления ресурсов, а также реализация алгоритмов (обычно на выбранном языке программирования , обычно называемом кодированием ). [1] [2] Исходный код программы написан на одном или нескольких языках, понятных программистам ., а не машинный код , который непосредственно выполняется центральным процессором . Цель программирования — найти последовательность инструкций, которая автоматизирует выполнение задачи (которая может быть такой же сложной, как операционная система ) на компьютере , часто для решения данной проблемы. Таким образом, для профессионального программирования обычно требуются знания в нескольких различных областях, включая знание предметной области , специализированных алгоритмов и формальной логики .

Задачи, сопутствующие и связанные с программированием, включают тестирование , отладку , обслуживание исходного кода , внедрение систем сборки и управление производными артефактами , такими как машинный код компьютерных программ . Их можно рассматривать как часть процесса программирования, но часто термин « разработка программного обеспечения » используется для более крупного процесса, а термин « программирование », « реализация » или « кодирование » зарезервирован для фактического написания кода. Разработка программного обеспечения сочетает в себе инженерные методы спрактики разработки программного обеспечения . Обратное проектирование — это родственный процесс, используемый дизайнерами, аналитиками и программистами для понимания и повторного создания/реализации. [3]

Программируемые устройства существуют веками. Еще в IX веке персидские братья Бану Муса изобрели программируемый музыкальный секвенсор , описавший в « Книге гениальных устройств » автоматический механический флейтист . [4] [5] В 1206 году арабский инженер Аль-Джазари изобрел программируемую драм-машину , в которой музыкальный механический автомат можно было заставить воспроизводить различные ритмы и барабанные партии с помощью колышков и кулачков . [6] [7] В 1801 году жаккардовый ткацкий станокмогли производить совершенно другие переплетения, изменяя «программу» - серию картонных карточек с пробитыми в них отверстиями.

Алгоритмы взлома кода также существовали веками. В 9 веке арабский математик Аль-Кинди описал криптографический алгоритм для расшифровки зашифрованного кода в «Рукописи по расшифровке криптографических сообщений» . Он дал первое описание криптоанализа с помощью частотного анализа , самого раннего алгоритма взлома кода. [8]

Первая компьютерная программа обычно датируется 1843 годом, когда математик Ада Лавлейс опубликовала алгоритм для вычисления последовательности чисел Бернулли , предназначенный для выполнения с помощью аналитической машины Чарльза Бэббиджа . [9]

В 1880-х годах Герман Холлерит изобрел концепцию хранения данных в машиночитаемой форме. [10] Позже к его табулятору типа I 1906 года была добавлена ​​панель управления (разъемная плата), которая позволяла программировать его для различных задач, а к концу 1940-х годов записывающее оборудование , такое как IBM 602 и IBM 604 , программировалось панелями управления. таким же образом, как и первые электронно-вычислительные машины . Однако с концепцией компьютера с хранимой программой, представленной в 1949 году, и программы, и данные хранились и обрабатывались одинаковым образом в памяти компьютера . [11]


Ада Лавлейс , чьи примечания в конце статьи Луиджи Менабреа включали первый алгоритм, разработанный для обработки с помощью аналитической машины . Ее часто называют первым программистом в истории.
Когда-то данные и инструкции хранились на внешних перфокартах , которые содержались в порядке и располагались в программных колодах.
Проводная панель управления для IBM 402 Accounting Machine .
Первой известной реальной ошибкой , вызвавшей проблему в компьютере, была моль, пойманная в ловушку внутри мейнфрейма Гарварда, что было записано в журнале регистрации от 9 сентября 1947 года. ошибка была найдена.