Первая программа для программирования
Я даже не знаю как правильно спросить, потому что не знаю начинки эвм (или что там было).
Но попытаюсь объяснить от обратного. Сейчас куча IDE, языков программирования и пр. Так вот, а как был написан первый язык/набор команд/что-то еще? Как написан ассемблер (или он не является отправным пунктом?)?
Или объясните как это работает =)
Первая программа была написана в 1843 году Адой Лавлейс, кстати, очень незаурядной личностью, умершей от рака в 36 лет, дочкой английского поэта Байрона. Ею же был создан первый язык программирования, введены понятия "цикл" и так далее.
У истоков современных языков программирования стоит Грейс Хоппер, разработавшая первый компилятор, впоследствии контр-адмирал флота США, тоже весьма незаурядная женщина, в отличие от Ады Лавлейс дожившая до глубокой старости и работавшая почти до 90 лет.
А первые программы для ЭВМ набирали тумблерами (переключателями) на приборных досках. Потом вместо этого приспособили перфокарты, изобретенные Германом Холлеритом для машин для обработки результатов переписей населения. Первые программы писались в виде чисел, скажем, 23 - команда сложения. А потом придумали язык ассемблера, который сначала просто заменял легкие для запоминания буквенные обозначения, которыми записывались команды, на соответствующие числа по таблице, например, ADD заменялось на 23. А дальше шла самораскрутка - на примитивном языке писался ассемблер или компилятор для более сложной версии того же языка или для другого языка, потом этот процесс повторялся.
В машине есть процессор, в зависимости от конструкции у процессора есть набор поддерживаемых им команд (машинных кодов) . ассемблер написан машинными кодами, т. е составлен нуликами и еденичками.
Вообще первый язык программирования придуман Природой. Это рефлексы животных. А потом, как "обновление версии" - работа человеческого мозга.
Первый искусственный язык программирования придуман неадертальцами-кроманьонцами. Это человеческая речь.
Первые сложные многоцелевые вычислительные устройства появились еще в XIX веке. Тогда же возникла необходимость в разработке программ для них, и впервые с такой задачей столкнулась легендарная Ада Лавлейс, работавшая с вычислительной машиной Чарльза Бэббиджа, которая называлась "Машина для исчисления разностей". Но настоящие языки программирования появились все-таки в эпоху электронных вычислительных машин. Считают, что первый язык программирования - это язык Short Code, появившийся в 1949 году.
Первыми языками программирования высокого уровня были Фортран, Кобол и Алгол, появившиеся в 50-е годы XX века. Первые два из них "здравствуют" и поныне - это языки-долгожители, а Алгол стал родоначальником целого семейства языков, в числе которых и Паскаль.
Первый машинный язык программирования - язык машины Тьюринга и первой программистки Ады.
Первый электронно-машинный язык программирования - машинный код.
сами языки не пишутся на языках программирования, пишутся компиляторы под них, которые превращают твой код на высокоуровневом языке в машинные коды (нули и единицы), есть еще языки низкого уровня, которые по сути машинные коды, записанные понятными для человека мнемо-командами, например ассемблер
10 декабря 1815 года на свет появилась Ада Лавлейс, большинству из нас известная как самый первый в мире программист. Так уж получилось, что это звание принадлежит представительнице прекрасного пола. Сегодня исполняется двести один год со дня рождения этого человека. И в этом посте я бы хотел немного рассказать о самых интересных моментах из ее жизни, не отделываясь обрывочными фразами, но и не слишком уж углубляясь в детали. Материал можно найти, где угодно, имея под рукой Интернет. Однако мало кто полезет искать его просто ради интереса. Поэтому кому интересно, добро пожаловать под кат.
Учась в школе, сидя на уроках литературы, я прекрасно знал, кто такой Джордж Байрон.
Мы читали и по желанию заучивали его стихотворения. Спустя время, выбрав себе профессию я узнал о том, кем была загадочная Ада Лавлейс – первая девушка-программист, дочь того самого лорда Джорджа Байрона. Тогда для меня это оказалось удивительным открытием. Я на всю жизнь запомнил, кем была Ада и, как-то совсем незаметно для самого себя, забыл о самом Байроне.
Августа Ада Кинг (впоследствие графиня Лавлейс, но об этом чуть позже) – была дочерью английского поэта лорда Джорджа Гордона Байрона и его жены – Анны Изабеллы Байрон. Однако Байрон спустя месяц после рождения своей дочери покинул их, и они больше никогда не виделись. Сам Байрон умер, когда Аде было восемь лет. Сам он еще не раз вспоминал свою дочь в своих стихах.
Видно, что Ада сама росла в довольно талантливой семье. Ее мать, Анна Изабель, еще до рождения дочери сильно интересовалась математикой, за что когда-то получила от мужа забавное прозвище – “королева параллелограммов”. Это была действительно необычная семья. Анне после ухода мужа все же удалось воспитать дочь в одиночку и вот что из этого получилось.
В двенадцать лет Ада собрала свой летательный аппарат! До этого двенадцатилетняя девочка некоторое время запиралась от матери в комнате и что-то писала. Мать боялась, что она начнет зачитываться стихами отца и пойдет той же дорогой. Однако все это время она чертила.
Математическая логика занимала ее больше всего остального. Однажды Ада заболела и три года провела в постели. Но все это время она хотела и продолжала учиться. К ней приходили самые разные доктора и учителя. Одним из них был Август де Морган – известный математик и логик (да-да, закон де Моргана назван в его честь). С тех пор Ада еще больше погрузилась в мир математики.
В итоге Ада выросла уникальной девушкой. Она была красива и умна, точно также как и ее мама занималась математикой, а в разговорах на научные темы обходила даже ребят из Кембриджа и Оксфорда. Среди других людей, в основном женского пола, это вызвало скрытую злость и зависть. О ней нередко говорили как о чем-то темном, даже дьявольском. Надо сказать, что Ада и сама в себе чувствовала необычные силы (забавно, но на русском ее имя звучит и правда немного дьявольски). Но в этом нет ничего необычного, так как девушка-математик в высшем английском обществе того времени – со стороны это действительно выглядело странно. А многие мужчины меж тем были от нее без ума.
Математика математикой, но как же так вышло, что помнят о ней в первую очередь именно программисты? Одной из самых судьбоносных встреч Ады Лавлейс стала встреча с Чарльзом Бэббиджем – изобретателем первой аналитической вычислительной машины.
В то время, во Франции, куда и прибыл Бэббидж, был развернут крупномасштабный проект по созданию таблиц значений логарифмов и тригонометрических функций. Бэббидж стал мечтать о том, чтобы автоматизировать этот труд, заодно исключив возможные человеческие ошибки, так как в то время именно люди вручную занимались созданием таких таблиц. Так Бэббидж задумался о построении своей разностной машины (вычисление многочлена с помощью разностного метода).
Им было создано огромное количество чертежей, а сам прототип закончен в 1832 году, тот самый, который Ада Лавлейс увидит спустя год.
В 1835 году Ада выйдет замуж за очень достойного человека – барона Уильяма Кинга, который впоследствии был удостоен титула графа, а сама Ада стала графиней Лавлейс. Спустя четыре года у них уже было трое детей – два сына и дочь. Сыновьям Ада дала имена в честь отца – одного назвали Ральфом Гордоном, а другого – Байроном.
А как же с той самой первой в мире программой? И какова судьба машины Бэббиджа? В 1842 году итальянский ученый Луис Манебреа напишет книгу о машине Бэббиджа. Ада по просьбе Бэббиджа займется ее переводом. Во время перевода самой книги она сделала огромное количество замечаний, видя в этой машине кажется больше, чем сам Бэббидж.
Вот ее слова: «Суть и предназначение машины изменятся от того, какую информацию мы в нее вложим. Машина сможет писать музыку, рисовать картины и покажет науке такие пути, которые мы никогда и нигде не видели» Алан Тьюринг впоследствие читал ее записи, введя в свои работы термин возражение леди Лавлейс относительно способности машин мыслить.
В то же самое время, при описании машины Бэббиджа именно Ада ввела в обиход такие компьютерные термины как цикл и ячейка. Она также составил набор операций для вычисления чисел Бернулли. Именно это по сути и стало самой первой компьютерной программой. Бэббидж так и не построил свою машину, она была собрана уже после его смерти и сейчас хранится в Музее науки в Лондоне.
Сама Ада Лавлейс умерла 27 ноября 1852 года всего в возрасте 36 лет. Ровно столько, сколько прожил ее отец. Ее похоронили в фамильном склепе вместе с отцом, которого она так и не узнала.
В честь Ады Лавлейс был назван разработанный в 1980-х годах Министерством Обороны США язык программирования Ада.
P.S. Наверное, тем людям, у которых фраза “Первым программистом была девушка” вызывает недовольство или улыбку, стоит хотя бы раз поинтересоваться биографией этого человека. О таких людях, как Ада Лавлейс или Алан Тьюринг и о многих других стоит помнить. А для кого-то эти истории еще один повод понять, что в мире нет ничего невозможного.
Спасибо тем, кто прочел эту статью. Делитесь своими мнениями, комментариями или замечаниями).
Многие из нас задавались вопросом: на чём и каким образом была написана самая первая программа, когда писать было ещё не на чем. И что появилось первее: программа или среда разработки? Спойлер: сначала появилась программа.
Итак, 19 век. С этого времени начинается история программирования. Ада Ла́влейс и Чарльз Бэббидж . С этих имён и начинается история программирования!
Не буду углубляться в биографию, если интересно, можете о ней узнать из видео, скажу лишь, что Чарльз был весьма талантливым математиком. Первый его проект выглядел вот так:
Суть данного изобретения в том, что оно позволяло автоматизировать вычисление различных математических формул, функций, логарифмов посредством перемещения скомбинированных между собой шестерёнок.
Вторым его проектом по счёту, но не по значимости, была Аналитическая машина . Это огромный механизм на паровом двигателе, назначением которого являлось исполнение основных математических операций: сложение, вычитание, деление, умножение. Данное устройство давало возможность работать с большими числами, с большой точностью и большой скоростью (по крайней мере для того времени)
Инструкции по её программированию были написаны Адой Лавлейс. Они-то и являлись по факту первыми программами в мировой истории.
Программирование же в том виде, в котором мы привыкли его видеть сегодня (то есть ввод команд с клавиатуры в среду разработки, затем компиляция и выполнение) появилось только в 20-м веке, когда вычислительные машины научились работать с электричеством. И стали по праву называться Электронными Вычислительными Машинами - ЭВМ. Сначала программирование производилось лишь перепадами напряжения. Наличие напряжения = 1. Отсутствие напряжения = 0. Так и появился двоичный код. После всем двоичным командам присвоили "имена" в виде конкретных слов. Например в двоичном коде команда сложения выглядела как: 000010. А после она обозначалась лишь словом ADD. Так и появился первый язык Ассемблера.
Каждая вычислительная машина программировалась на своём уникальном языке, что было не очень удобно. Дабы привести программирование к единому формату на всех платформах, был изобретён язык Fortran. После чего уже начинается история языков программирования высокого уровня.
Более подробно о первом программировании и первых программистах я рассказываю в своём ролике. Можете его посмотреть или просто послушать, если не хочется читать вышеприведённый текст.
Приятного просмотра :)
Что нужно чтобы начать программировать на C++? Вы можете скачать себе текстовой редактор, скачать IDE или воспользоваться онлайн компиляторами.
IDE - позволяет не только писать код, но и предоставляет комплекс инструментов, который позволяет скомпилировать код в приложение, тестировщик, отладчик. "интегрирован среда разработки" - превращает ваш код в функционирующие приложение.
3 IDE для написания кода :
Лично я пользуюсь Visual Studio.
Как написать первую программу?
После того как вы создали проект у вас в текстовом редакторе появится краткая инструкция о возможностях языка.
Примерно она выглядит так:
Теперь мы можем все стереть и написать свою первую программу.
Будет она выглядеть примерно так:
После того как вы завершили написание программы нажмите клавишу: F5
У вас откроется консоль и вы учите следующие:
Почему примерно, потому что нужно поставить перед include знак решётки. Лучше всего посмотрите картинку, которая над кодом. Сейчас подробно разберём каждую строчку кода. Разберём комментарии и как включить русский язык в вашем коде. И так, начнём:
1 строчка кода
Данная строчка является директивой препроцессора. Препроцессор - это программа, которая выполняет обработку файла исходного файла перед началом собственно компиляции. Говорится о препроцессоре, обрабатывающем директивы, имена которых начинаются со *знак решетки*. Эта директива заставляет препроцессор добавить содержимое файла iostream в вашу программу. Часть io в iostream означает ввод и вывод.
2 строчка по 7 строку кода
Данные строки говорят о том, что существует функция по имени int main(), и они описывают её поведение. Этот маленький код образует определение функции. int main() - заголовок функции. Часть которая заключена в фигурные скобки - тело функции. Операторы - выражение C++ завершаемое точкой с запятой. Оператор return 0 - оператор возврата. Его назначение завершить выполнение функции.
4 строка
Данная строка говорит, о том что существует директива using. Пространство имён - предназначено для упрощения разработки. Средство пространства имён позволяет поставщику упаковать свой продукт в модуль - пространства имён. Эта строка не обязательна.
5 строка
И в консоли мы получаем следующие:
Endl - манипулятор. "\n" - символ новой строки.
Как "включить" русский язык?
Для того чтобы включить русский язык в нашей программе мы должны написать в теле функции main, другую функцию но, уже она будет называется setlocale. Для начала давайте добавим одну строку в нашу программу.
И вот что нам выдаст консоль:
Что-то такое непонятное. Так вот как раз функция setlocale решает эту проблему. Напишем ее
Консоль выводит следующее:
Теперь все верно. Правда если вы напиши setlocale после cout, то вам также вылезет что-то непонятное. Так что, setlocale нужно использовать до cout.
Комментарии
Последнее что сейчас рассмотрим это комментарии. Они обозначаются двумя косыми чертами "//". Комментарий - это примечание, написанное программистом для пользователя программы, которое идентифицирует ее раздел или содержит пояснения к определенному коду. Компилятор игнорирует комментарии. Комментарий начинается с "//" и простирается до конца строки. Используйте комментарии для документации своих программ. Они могут помочь вам в будущем и другим программистам тоже. Также существует еще один вид комментариев "/**/" - это все те же комментарии, только они начинаются с "/*" и заканчиваются "*/". Он может занимать несколько строчек, а не одну.
Конец
На этом все. Спасибо, если вы прочитали эту статью полностью, нашли или узнали что-то для себя новое.
У меня уже появился второй урок, буду признателен, если вы оттуда черпнете какую-либо информацию - ссылка
Если коротко, то новые языки программирования и другие инструменты создаются на основе уже существующих. Полная аналогия с другими областями техники, где новые станки и материалы позволяют создавать всё более совершенные станки и материалы. Как все станки начались с палки-копалки и кремниевого рубила, так и языки программирования начались с перфокарт и нечитаемого двоичного кода.
Центральный процессор вашего компьютера понимает только программы, написанные на языке ноликов и единичек. Например, команда «прибавить константу 5 к числу, записанному в регистре AL» записывается так:
0000 0100 0000 0101
Здесь 0000 0100 — код операции «прибавить число к регистру AL», а 0000 0101 — двоичное представление числа 5.
На заре индустрии для ввода программы в компьютер нужно было либо перещёлкнуть сотни тумблеров на специальной панели (тумблер ВЫКЛ — нолик, тумблер ВКЛ — единичка), либо пробить дырочки в специальной перфокарте. Ошиблись в одной ячейке из тысячи — программа будет работать неправильно, будьте добры сами найти ошибку методом пристального взгляда.
Ясно, что такой способ программирования жутко неудобен и подвержен ошибкам. Чтобы не тратить время на это занудство, ленивые программисты начали думать, как переложить неблагодарную работу на машину.
Можно один раз хорошенько помучиться и написать на языке ноликов и единичек вспомогательную программу, которая называется ассемблер («сборщик»). Этот волшебный ассемблер принимает на вход человеко-читаемый текст и преобразует его в нолики и единички. Например, та же самая команда «прибавить константу 5 к числу, записанному в регистре AL» записывается на языке ассемблера x86 так:
Думаю, вы согласитесь, что это всё-таки более читаемо, чем 0000 0100 0000 0101. Здесь хотя бы понятно, что речь идёт о сложении (ADD) и числе 5. Теперь уже дело ассемблера преобразовать эту строчку в 0000 0100 0000 0101. На языке ассемблера сложно писать большие программы, процессоры разных производителей могут требовать разных ассемблеров, но всё равно это был большой шаг вперёд.
на основе математической логике а потом уже из этого делали упрашеную версию тоесть програму для програмирования
Суть вопроса вероятно о первом компиляторе? Он был написан вручную, в виде бинарного компьютерного кода.
Физические принципы работы электронных устройств ЭВМ таковы, что компьютер может воспринимать команды, состоящие только из единиц и нулей – последовательность перепада напряжения, т. е. машинный код. На начальной стадии развития ЭВМ человеку было необходимо составлять программы на языке, понятном компьютеру, в машинных кодах. Каждая команда состояла из кода операций и адресов операндов, выраженных в виде различных сочетаний единиц и нулей. Итак, любая программа для процессора выглядела на то время как последовательность единиц и нулей.
Середина 50-х гг. характеризуется стремительным прогрессом в области программирования. Роль программирования в машинных кодах стала у
С середины 50-х гг. XX в. начали создавать первые языки программирования высокого уровня (high-level programming languages). Эти языки не были привязаны к определенному типу ЭВМ (машинонезависимы). Для каждого из них были разработаны собственные компиляторы. Компиляция – трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду (абсолютный код, объектный модуль, иногда язык ассемблера).
начинать надо не с "программ для программирования", а с языков. Программа для программирования называется блокнот или блокнот +
Именно в них программируют.
а программы для компиляции - эту уже совсем иное
Читайте также: