Примечание
Вирт Н. Алгоритмы + структуры данных = программы. — М.: Мир, 1985;
Вирт Н. Алгоритмы и структуры данных. Новая версия для Оберона + CD. М.: ДМК Пресс, 2010. ISBN 978-5-94074-584-6, 0-13-022005-9
Антонов Е. «Древнегреческий компьютер» оказался древнее, чем считалось // Наука и жизнь. — 2014. — 11 декабря (№ 12).
The History of the Antikythera Mechanism (англ.). — Сайт, посвящённый Антикитерскому механизму. Дата обращения: 4 марта 2018. Архивировано 5 июля 2012 года.
Ancient Greek Computer’s Inner Workings Deciphered Архивная копия от 29 июня 2011 на Wayback Machine. National Geographic News. November 29, 2006.
Freeth, Tony; Jones, Alexander; Steele, John M.; Bitsakis, Yanis. Calendars with Olympiad display and eclipse prediction on the Antikythera Mechanism (англ.) // Nature : journal. — 2008. — 31 July (vol. 454, no. 7204). — P. 614—617. — doi:10.1038/nature07130. — PMID 18668103. Архивировано 17 октября 2010 года.
А.И. Китов. Электронные цифровые машины. — Москва, 1956.
Основные публикации Китова А.И. Дата обращения: 4 марта 2018. Архивировано 25 августа 2019 года.
Архангельский А.Я. Программирование на C++Builder 6. — Москва: БИНОМ, 2003. — 1152 с. — ISBN 5-7989-0239-0.
Макки Алекс. Введение .Net 4.0 и Visual Studio 2010 для профессионалов. — Москва: ООО "И.Д. Вильямс", 2010. — 416 с. — ISBN 978-5-8459-1639-6. — ISBN 978-1-43-022455-6.История
Коммутационная панель суммирующей машины IBM 402
205 год до н. э.[3] (150 год до н. э.[4]) — антикитерский механизм из Древней Греции был калькулятором, использовавшим шестерни различных размеров и конфигурации, обусловливающих его работу[5] по отслеживанию метонова цикла, до сих пор использующегося в лунно-солнечных календарях[6].
1206 год — Аль-Джазари построил программируемый автомат-гуманоид. Одна система, задействованная в этих устройствах, использовала зажимы и кулачки, помещённые в деревянный ящик в определённых местах, которые последовательно задействовали рычаги, которые, в свою очередь, управляли перкуссионными инструментами[источник не указан 2428 дней].
1804 год — Жозеф Мари Жаккар построил жаккардовый ткацкий станок, который произвёл революцию в ткацкой промышленности, предоставив возможность программировать узоры на тканях при помощи перфокарт. Его иногда считают первым программируемым устройством[источник не указан 2428 дней].
1843 год — Чарлз Бэббидж разработал проект (но не смог его реализовать, в том числе благодаря близорукости английского правительства) «Аналитической машины» — основанного на механических узлах и с приводом в виде парового двигателя первого программируемого вычислительного устройства[источник не указан 2428 дней].
Графиня Ада Августа Лавлейс, дочь английского поэта Джорджа Байрона, написала первую в истории человечества программу для Аналитической машины. Эта программа решала уравнение Бернулли, выражающее закон сохранения энергии движущейся жидкости. В своей первой и единственной научной работе Ада Лавлейс рассмотрела большое число вопросов. Ряд высказанных ею общих положений (принцип экономии рабочих ячеек памяти, связь рекуррентных формул с циклическими процессами вычислений) сохранили своё принципиальное значение и для современного программирования[источник не указан 2428 дней].
В материалах Бэббиджа и комментариях Лавлейс, намечены такие понятия как — подпрограмма и библиотека подпрограмм, модификация команд и индексный регистр, которые стали употребляться только в 1950-х годах[источник не указан 2428 дней]. Однако ни одна из программ, написанных Адой Лавлейс, никогда так и не была запущена[источник не указан 2428 дней].
Первым широко известным и успешным языком программирования высокого уровня был Фортран, разработанный с 1954 по 1957 год, командой исследователей IBM во главе с Джоном Бакусом. Успех Фортрана привёл к образованию комитета учёных по разработке «универсального» компьютерного языка. Отдельно Джон Маккарти из Массачусетского технологического института разработал язык программирования Лисп (основанный на лямбда-исчислении), первый язык, возникший в академических кругах и получивший успех. С успехом этих начальных усилий языки программирования стали активной темой исследований в 1960-х и далее.Языки программирования
править
Основная статья: Язык программирования
Большая часть работы программистов связана с написанием исходных текстов (иногда язык программирования может быть и не текстовым, а графическим), тестированием и отладкой программ на одном из языков программирования. Исходные тексты и исполняемые файлы программ являются объектами авторского права и являются интеллектуальной собственностью их авторов и Инструменты
править
Текстовый редактор среды программирования может иметь специфичную функциональность, такую, как индексация имён, отображение документации (например Doxygen), подсветка синтаксиса, средства визуального создания пользовательского интерфейса. С помощью текстового редактора программист производит набор и редактирование текста создаваемой программы, который называют исходным кодом. Язык программирования определяет синтаксис и изначальную семантику исходного кода.
В процессе программирования в настоящее время широко используются интегрированные среды разработки[9][10], в состав которых обычно входят:
редактор для ввода и редактирования текста программ[10];
транслятор для преобразования текста программы в машинное представление;
отладчик для отладки (поиска и устранения ошибок);
компоновщик для сборки программы из нескольких модулей;
другие служебные модули и инструменты.правообладателей[источник не указан 2428 дней].
Различные языки программирования поддерживают различные стили программирования (парадигмы программирования). Выбор нужного языка программирования для некоторых частей алгоритма позволяет сократить время написания программы и решить задачу описания алгоритма наиболее эффективно. Разные языки требуют от программиста различного уровня внимания к деталям при реализации алгоритма, результатом чего часто бывает компромисс между простотой и производительностью (или между «временем программиста» и «временем пользователя»).
Единственный язык, напрямую выполняемый ЭВМ — это машинный язык (также называемый машинным кодом и языком машинных команд). Изначально все программы писались в машинном коде, но сейчас этого практически уже не делается. Вместо этого программисты пишут исходный код на том или ином языке программирования, затем, используя компилятор, транслируют его в один или несколько этапов в машинный код, готовый к исполнению на целевом процессоре, или в промежуточное представление, которое может быть исполнено специальным интерпретатором — виртуальной машиной. Но это справедливо только для языков высокого уровня. Если требуется полный низкоуровневый контроль над системой на уровне машинных команд и отдельных ячеек памяти, программы пишут на языке ассемблера, мнемонические инструкции которого преобразуются один к одному в соответствующие инструкции машинного языка целевого процессора ЭВМ (по этой причине трансляторы с языков ассемблера получаются алгоритмически простейшими трансляторами).
В некоторых языках вместо машинного кода генерируется интерпретируемый двоичный код «виртуальной машины», также называемый байт-кодом (byte-code). Такой подход применяется в Forth, некоторых реализациях Lisp, Java, Perl, Python, языках для .NET Framework
Соцсеть:Википедия