Если коротко, то новые языки программирования и другие инструменты создаются на основе уже существующих. Полная аналогия с другими областями техники, где новые станки и материалы позволяют создавать всё более совершенные станки и материалы. Как все станки начались с палки-копалки и кремниевого рубила, так и языки программирования начались с перфокарт и нечитаемого двоичного кода.
Центральный процессор вашего компьютера понимает только программы, написанные на языке ноликов и единичек. Например, команда «прибавить константу 5 к числу, записанному в регистре AL» записывается так:
0000 0100 0000 0101
Здесь 0000 0100 — код операции «прибавить число к регистру AL», а 0000 0101 — двоичное представление числа 5.
На заре индустрии для ввода программы в компьютер нужно было либо перещёлкнуть сотни тумблеров на специальной панели (тумблер ВЫКЛ — нолик, тумблер ВКЛ — единичка), либо пробить дырочки в специальной перфокарте. Ошиблись в одной ячейке из тысячи — программа будет работать неправильно, будьте добры сами найти ошибку методом пристального взгляда.
Написал свою первую программу на Python
Ясно, что такой способ программирования жутко неудобен и подвержен ошибкам. Чтобы не тратить время на это занудство, ленивые программисты начали думать, как переложить неблагодарную работу на машину.
Можно один раз хорошенько помучиться и написать на языке ноликов и единичек вспомогательную программу, которая называется ассемблер («сборщик»). Этот волшебный ассемблер принимает на вход человеко-читаемый текст и преобразует его в нолики и единички. Например, та же самая команда «прибавить константу 5 к числу, записанному в регистре AL» записывается на языке ассемблера x86 так:
Думаю, вы согласитесь, что это всё-таки более читаемо, чем 0000 0100 0000 0101. Здесь хотя бы понятно, что речь идёт о сложении (ADD) и числе 5. Теперь уже дело ассемблера преобразовать эту строчку в 0000 0100 0000 0101. На языке ассемблера сложно писать большие программы, процессоры разных производителей могут требовать разных ассемблеров, но всё равно это был большой шаг вперёд.
Дальше инженерную мысль было не остановить. Нужно один раз помучиться, чтобы написать на ассемблере компилятор языка программирования, например Фортрана. Потом ещё немного помучиться, чтобы написать на Фортране компилятор Алгола. Затем передохнуть, помучиться и написать на Алголе компилятор языка CPL.
Ещё немного мучений, и можно на основе CPL написать компилятор языка C. Дальше можно уже не мучиться и в свое удовольствие писать на C компиляторы C++, Java, C# и других современных языков. Впрочем, никто не запретит использовать Java чтобы написать ассемблер x86 и замкнуть рекурсию.
Источник: vipsofta.ru
Модуль 1. Ваша первая программа Windows
В этом модуле мы напишем минимальную классическую программу для Windows. Все, что он делает, — это создание и отображение пустого окна. Эта первая программа содержит около 50 строк кода, не считая пустых строк и комментариев. Это будет нашей отправной точкой; позже мы добавим графику, текст, ввод данных пользователем и другие функции.
Как программисты написали первую программу без программы?
Если вам нужны дополнительные сведения о создании традиционного классического приложения Windows в Visual Studio, проверка пошаговое руководство. Создание традиционного классического приложения Windows (C++).
Ниже приведен полный код программы:
#ifndef UNICODE #define UNICODE #endif #include LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow) < // Register the window class. const wchar_t CLASS_NAME[] = L»Sample Window Class»; WNDCLASS wc = < >; wc.lpfnWndProc = WindowProc; wc.hInstance = hInstance; wc.lpszClassName = CLASS_NAME; RegisterClass( // Create the window. HWND hwnd = CreateWindowEx( 0, // Optional window styles.
CLASS_NAME, // Window class L»Learn to Program Windows», // Window text WS_OVERLAPPEDWINDOW, // Window style // Size and position CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, // Parent window NULL, // Menu hInstance, // Instance handle NULL // Additional application data ); if (hwnd == NULL) < return 0; >ShowWindow(hwnd, nCmdShow); // Run the message loop. MSG msg = < >; while (GetMessage( 0) < TranslateMessage( DispatchMessage( >return 0; > LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) < switch (uMsg) < case WM_DESTROY: PostQuitMessage(0); return 0; case WM_PAINT: < PAINTSTRUCT ps; HDC hdc = BeginPaint(hwnd, // All painting occurs here, between BeginPaint and EndPaint. FillRect(hdc, EndPaint(hwnd, >return 0; > return DefWindowProc(hwnd, uMsg, wParam, lParam); >
Вы можете скачать полный проект Visual Studio из примера Windows Hello World.
Может быть полезно дать краткое описание того, что делает этот код. В последующих разделах код будет подробно рассмотрен.
- wWinMain — это точка входа в программу. При запуске программа регистрирует некоторые сведения о поведении окна приложения. Одним из наиболее важных элементов является адрес функции с именем WindowProc в этом примере. Эта функция определяет поведение окна: его внешний вид, взаимодействие с пользователем и т. д.
- Затем программа создает окно и получает дескриптор, который однозначно идентифицирует окно.
- Если окно создано успешно, программа переходит в цикл while . Программа остается в этом цикле, пока пользователь не закроет окно и не выйдет из приложения.
Обратите внимание, что программа не вызывает функцию явным WindowProc образом, хотя мы и говорили, что именно здесь определена большая часть логики приложения. Windows взаимодействует с программой, передавая ей ряд сообщений. Код внутри цикла while управляет этим процессом. Каждый раз, когда программа вызывает функцию DispatchMessage , она косвенно заставляет Windows вызывать функцию WindowProc один раз для каждого сообщения.
В этом разделе
- Создание окна
- Сообщения окна
- Написание процедуры Window
- Рисование окна
- Закрытие окна
- Управление состоянием приложения
Источник: learn.microsoft.com
Как написали первую программу без программы для написания программ? Первые компьютеры. Когда и кем был сделан самый первый компьютер Человек создавший первую программу
Самые первые вирусы были безобидными. Это были эксперименты – типа одного из первых вирусов “Creeper”, который просто выводил сообщение “I’M A CREEPER: CATCH ME IF YOU CAN”. Их распространение ограничивалось домашними сетями (Creeper существовал на TENEX ОС). Это было в 1971 году.
Сейчас существуют миллионы вирусов, распространяющихся через интернет всякими путями – файловые раздачи, e-mail, сайты. Когда всё связано со всем, вирусы распространяются быстро. Защита от вирусов – прибыльный бизнес .
Начиналось это довольно медленно и гораздо раньше, чем можно было предположить. Первые вирусы распространялись через оффлайн – они работали с дискетами и переносились на них между компьютерами. Кто же изобрёл вирус?
Первый вирус для Mac был написан в качестве подростковой шутки. Первый вирус для PC был сделан для борьбы с пиратством.
Elk Cloner
Я шутил над сверстниками, меняя копии пиратских игр, чтобы они самоуничтожались через определённое количество запусков. Я раздавал игры, на них подсаживались, а затем она вдруг переставала работать и выдавала какой-нибудь смешной комментарий на экран (чувство юмора девятиклассника).
В итоге друзья перестали подпускать Скренту к своим дискетам. Ему перестали одалживать игры, все перестали играть в его игрушки, и т.п. Но он не угомонился. Он начал штудировать инструкции и описания, пытаясь отыскать дыру в безопасности Apple II. И он придумал способ выполнять код, не притрагиваясь к дискетам.
«Я придумал оставлять определённый след в ОС на работающем школьном компьютере. Если следующий пользователь не перезагружал комп со своего диска, его диск подвергался воздействию моего кода».
Написал он код на ассемблере , и назвал его Elk Cloner. Он стал тем, что впоследствии назвали «вирусом для загрузочного сектора». Когда неинфицированный диск вставляли в дисковод инфицированного компьютера, тот заражал диск, записывая на него копию вируса в загрузочный сектор. Этот код автоматически выполнялся при загрузке. Принося заражённый диск на другой компьютер, и загружаясь с него, человек заражал и этот компьютер копией вируса.
Вирус немного мешал работе компьютера, а на 50-й запуск вместо запуска программы выводил целую поэму на экран:
Elk Cloner: программа, обладающая личностью
Пролезет на ваши диски
Проникнет на ваши чипы
Да, это Клонер!
Прилипнет, словно клей
Оперативку вашу подправит
Пришлите Клонера скорей.
Из-за отсрочки появления программу сразу нельзя было заметить, что улучшало шансы на распространение. Эпидемия продолжалась несколько недель.
Программа добралась и до компьютера учителя Скренты , обвинившего его в проникновении к нему в кабинет. Вирус подхватили и родственники Скренты из Балтимора (сам он жил в Питсбурге), а через много лет он услышал про случай заражения компьютера, принадлежавшего какому-то моряку.
Brain
Для IBM PC стал вирус Brain. Он тоже селился в загрузочном секторе. Он был написан братьями Базитом и Амжадом Фарук Альви из Пакистана в 1986 году. Им было 17 и 24 года.
У братьев была компьютерная фирма Brain Computer Services, и вирус они написали, чтобы отслеживать пиратские копии их медицинского софта. Пиратская программа отжирала оперативку, замедляла работу диска, и иногда мешала сохранить данные. По заверениям братьев, она не уничтожала данные. Программа содержала следующее сообщение:
Добро пожаловать в подземелье… Берегитесь этого вируса… Свяжитесь с нами для лечения…
В заголовке были указаны реальные контакты. Когда кто-либо звонил им за помощью, они могли идентифицировать пиратскую копию. Также вирус подсчитывал количество сделанных копий.
Они обнаружили, что пиратство было широко распространено, и копии их программ распространялись очень далеко. Амжад говорит, что первый их звонок поступил из США, Майами.
Братья Альви в 2011 году
Это был первый из множества звонков из США. Проблема оказалась в том, что Brain распространялся и по другим дискетам, а не только по копиям их программы. В Университете Делавера даже случилась эпидемия этого вируса в 1986 году, а затем он появлялся и во многих других местах. Исков подано не было, но в газетах про это писали много. Создателей даже упоминали в журнале Time Magazine в 1988.
New York Times писала в мае 1988 : «Дерзкая компьютерная программа, которая в этом месяце появилась на компьютерах Бюллетеня Провиденса, уничтожила файлы одного корреспондента и распространилась через дискеты по всей сети газеты. Компьютерщики считают, что это первый случай заражения компьютерной ситемы американской газеты такой дерзкой программой, которую называют компьютерным „вирусом“.
Братьям Альви пришлось сменить телефоны и убрать контакты из поздних версий вируса. Продажи программы они прекратили в 1987 году . Их компания выросла в телекоммуникационного провайдера и сейчас это – крупнейший провайдер в Пакистане. Расположена она всё по тому же адресу.
А теперь – Chaos
Скрента в 2012 году
Скрента работал в области информационной безопасности, а сейчас он CEO компании Blekko , которая занимается поисковыми технологиями.
Хотя дискет уже давно нет, вирусы в загрузочных секторах существуют. Теперь они работают с USB-флешками. Поскольку физические носители всё меньше используются для переноса данных, что дни загрузочных вирусов сочтены.
Война с вирусами переместилась в онлайн. Скрента сказал в интервью : „Грустно, что существует такая большая индустрия антивирусов. Надо делать более защищённые системы, а не организовывать многомиллионную индустрию, чтобы подчищать существующие“.
Скрента и братья Альви не чувствуют вины за то, что начали адское шествие вредоносных программ по миру. „Джин в любом случае выбрался бы из бутылки, — написал Скрента в блоге ,– мне было интересно быть первым, кто его выпустил“.
Первую компьютерную программу написала женщина, мать троих детей и аристократка. И написала она ее еще до того, как появился первый в мире компьютер.
Княгиня Лавлейс или Ада А. Байрон-Кинг — дочь великого британского поэта лорда Байрона. Ее отец бросил ее мать еще когда она была маленькой. Мать чрезвычайно радовалась тому, что ее маленькая дочурка сильно увлеклась математикой, хотя были и попытки пойти по стопам отца и писать стихи. Однажды в 12 лет она показала матери исчерканные листки бумаги, на ней юная Ада изобразила чертеж летательного аппарата.
В 17 лет приставленная ко двору, девушка не стала искать себе ухажера, а примкнула к исследователю математику Чарьзу Бэббиджу. Ее так увлекал идея автоматический счетной машинки, которая считалась безумием в то время, что все свои силы тратила на ее проектирование. Бэббиджа вдохновляло то, что Наполеон уже заказывал нечто подобное и его придворным ученным не удалось закончить изобретение из-за развязавшейся войны.
Бэббидж придумал название для своей будущей машины и назвал ее «дифференциальной». В 1882 году ученый заинтриговал Адмиралтейство Британии и те стали спонсорами его разработок. Размер машины был огромный, она должна была занимать целую комнату и вычислять с точностью до 10-го знака дроби. За 10 лет ученый построил только один блок своего устройства.
Идея аналитической машины захватывала Бэббиджа, он по сути предложил миру схему почти современного компьютера. Центральный процессор он называл мельницей, были перфокарты, программы-инструкции. Машина состояла из множества зубчатых колес и должна была приводиться в действие паром. В 1871 году Чарльз Бэббидж умер и правительство Англии решило, что никто больше не способен изобрести подобную машину и закрыла проект.
Но тем не менее 13 июля 1843 года Ада прислала математику письмо, в нем она изложила алгоритм машинных вычислений чисел Бернулли. Ада считала, что обработка данных машиной вовсе не обязана быть аналитической или арифметической, она считала это заблуждением. Цифры машина понимает так же как и буквы или другие символы. Графиня считала, что в будущем машины смогут писать музыку и даже стихи.
У самой же было развлечение — поиск формулы, которая позволила бы всегда побеждать в тотализаторе на скачках. Ада умерла в возрасте 37 лет, прожила столько же как и ее отец и была похоронена в той же усыпальнице, что и лорд Байрон. В день ее рождения — 10 декабря, во многих странах отмечают День программиста, а в 70-е Пентагон назвал в ее честь язык программирования ADA.
Ада Лавлейс
10 декабря 1815 года на свет появилась Ада Лавлейс, большинству из нас известная как самый первый в мире программист. Так уж получилось, что это звание принадлежит представительнице прекрасного пола. Сегодня исполняется двести один год со дня рождения этого человека.
И в этом посте я бы хотел немного рассказать о самых интересных моментах из ее жизни, не отделываясь обрывочными фразами, но и не слишком уж углубляясь в детали. Материал можно найти, где угодно, имея под рукой Интернет. Однако мало кто полезет искать его просто ради интереса. Поэтому кому интересно, добро пожаловать под кат.
Учась в школе, сидя на уроках литературы, я прекрасно знал, кто такой Джордж Байрон.
Мы читали и по желанию заучивали его стихотворения. Спустя время, выбрав себе профессию я узнал о том, кем была загадочная Ада Лавлейс – первая девушка-программист, дочь того самого лорда Джорджа Байрона. Тогда для меня это оказалось удивительным открытием. Я на всю жизнь запомнил, кем была Ада и, как-то совсем незаметно для самого себя, забыл о самом Байроне.
Августа Ада Кинг (впоследствие графиня Лавлейс, но об этом чуть позже) – была дочерью английского поэта лорда Джорджа Гордона Байрона и его жены – Анны Изабеллы Байрон. Однако Байрон спустя месяц после рождения своей дочери покинул их, и они больше никогда не виделись. Сам Байрон умер, когда Аде было восемь лет. Сам он еще не раз вспоминал свою дочь в своих стихах.
Видно, что Ада сама росла в довольно талантливой семье. Ее мать, Анна Изабель, еще до рождения дочери сильно интересовалась математикой, за что когда-то получила от мужа забавное прозвище – “королева параллелограммов”. Это была действительно необычная семья. Анне после ухода мужа все же удалось воспитать дочь в одиночку и вот что из этого получилось.
В двенадцать лет Ада собрала свой летательный аппарат! До этого двенадцатилетняя девочка некоторое время запиралась от матери в комнате и что-то писала. Мать боялась, что она начнет зачитываться стихами отца и пойдет той же дорогой. Однако все это время она чертила.
Математическая логика занимала ее больше всего остального. Однажды Ада заболела и три года провела в постели. Но все это время она хотела и продолжала учиться. К ней приходили самые разные доктора и учителя. Одним из них был Август де Морган – известный математик и логик (да-да, закон де Моргана назван в его честь).
С тех пор Ада еще больше погрузилась в мир математики.
В итоге Ада выросла уникальной девушкой. Она была красива и умна, точно также как и ее мама занималась математикой, а в разговорах на научные темы обходила даже ребят из Кембриджа и Оксфорда. Среди других людей, в основном женского пола, это вызвало скрытую злость и зависть. О ней нередко говорили как о чем-то темном, даже дьявольском.
Надо сказать, что Ада и сама в себе чувствовала необычные силы (забавно, но на русском ее имя звучит и правда немного дьявольски). Но в этом нет ничего необычного, так как девушка-математик в высшем английском обществе того времени – со стороны это действительно выглядело странно. А многие мужчины меж тем были от нее без ума.
Математика математикой, но как же так вышло, что помнят о ней в первую очередь именно программисты? Одной из самых судьбоносных встреч Ады Лавлейс стала встреча с Чарльзом Бэббиджем – изобретателем первой аналитической вычислительной машины.
В то время, во Франции, куда и прибыл Бэббидж, был развернут крупномасштабный проект по созданию таблиц значений логарифмов и тригонометрических функций. Бэббидж стал мечтать о том, чтобы автоматизировать этот труд, заодно исключив возможные человеческие ошибки, так как в то время именно люди вручную занимались созданием таких таблиц. Так Бэббидж задумался о построении своей разностной машины (вычисление многочлена с помощью разностного метода).
Им было создано огромное количество чертежей, а сам прототип закончен в 1832 году, тот самый, который Ада Лавлейс увидит спустя год.
В 1835 году Ада выйдет замуж за очень достойного человека – барона Уильяма Кинга, который впоследствии был удостоен титула графа, а сама Ада стала графиней Лавлейс. Спустя четыре года у них уже было трое детей – два сына и дочь. Сыновьям Ада дала имена в честь отца – одного назвали Ральфом Гордоном, а другого – Байроном.
А как же с той самой первой в мире программой? И какова судьба машины Бэббиджа? В 1842 году итальянский ученый Луис Манебреа напишет книгу о машине Бэббиджа. Ада по просьбе Бэббиджа займется ее переводом. Во время перевода самой книги она сделала огромное количество замечаний, видя в этой машине кажется больше, чем сам Бэббидж.
Вот ее слова: «Суть и предназначение машины изменятся от того, какую информацию мы в нее вложим. Машина сможет писать музыку, рисовать картины и покажет науке такие пути, которые мы никогда и нигде не видели» Алан Тьюринг впоследствие читал ее записи, введя в свои работы термин возражение леди Лавлейс относительно способности машин мыслить.
В то же самое время, при описании машины Бэббиджа именно Ада ввела в обиход такие компьютерные термины как цикл и ячейка. Она также составил набор операций для вычисления чисел Бернулли. Именно это по сути и стало самой первой компьютерной программой. Бэббидж так и не построил свою машину, она была собрана уже после его смерти и сейчас хранится в Музее науки в Лондоне.
Сама Ада Лавлейс умерла 27 ноября 1852 года всего в возрасте 36 лет. Ровно столько, сколько прожил ее отец. Ее похоронили в фамильном склепе вместе с отцом, которого она так и не узнала.
В честь Ады Лавлейс был назван разработанный в 1980-х годах Министерством Обороны США язык программирования Ада.
P.S. Наверное, тем людям, у которых фраза “Первым программистом была девушка” вызывает недовольство или улыбку, стоит хотя бы раз поинтересоваться биографией этого человека. О таких людях, как Ада Лавлейс или Алан Тьюринг и о многих других стоит помнить. А для кого-то эти истории еще один повод понять, что в мире нет ничего невозможного.
Спасибо тем, кто прочел эту статью. Делитесь своими мнениями, комментариями или замечаниями).
Программный пакет Microsoft Office является самым кассовым и популярным продуктом на данный момент и самым известным продуктом из этого семейства является Microsoft Word (WinWord, MS Word или просто Word) . История создания программы уходит в далекие 80-е.
Отцом Microsoft Word принято считать американского программиста Ричарда Броди. Первая версия была написана в 1983 году и была предназначена только для DOS. Первый блин, как говорится, вышел комом. Продажи продукта были ничтожно малы, а объяснялось это выходом программы-конкурента, под названием WordPerfect.
Однако, уже через 2 года на свет появилась новая версия 3.0, которая была ориентирована на операционную систему Macintosh. Эта версия нашла в мире своего покупателя и постепенно начала отвоевывать позиции у конкурентов. Еще через 2 года вышло обновление версии 3.0 — Microsoft Word 3.1.
Что касается Windows, то первая версия Word для этой MS была выпущена в 1989 году. Цена за нее была не маленькая — 500$ на территории США. В программе сразу бросалась в глаза схожесть с Macintosh, например (для сохранения сочетание клавиш Ctrl+S, для копирования — Ctrl+C). Ровно через год, в 1990, на свет появилась новая версия OC Windows 3.0.
Под этой версией Word работал просто безупречно (версии x386 и x286 были менее производительны). Что касается главного конкурента Word’a — WordPerfect, то у них не получилось создать рабочую версию, которая бы работала на OC Windows и это стало для WordPerfect смертоносным моментом. Далее на рынке текстовых редакторов была только одна программа — Microsoft Word.
Все продукты из пакета Microsoft Office имеют возможность использовать макроязык, для расширения своих возможностей. Microsoft Word не является исключением. В 90-х годах таким языком был WordBasic, а с выпуском Word 97 появился знаменитый макроязык Visual Basic for Application(VBA, макроязык для приложений).
С появлением VBA в Word’е активизировались хакеры, которые писали, так называемые, «макровирусы», которые встраивались в документ. Поэтому компания Microsoft рекомендует ставить наивысший уровень безопасности в настройках, при работе в Word. Также рекомендуется использовать антивирусное программное обеспечение. Хакер Мак-Намарой был первым, кто создал макровирус, которые заражал документы Word. Далее макровирусы стали писаться регулярно.
Что касается наших дней, то Microsoft Office по-прежнему остается лидером программного обеспечения в сфере текстовых редакторов. Однако в 2009 канадская компания i4i подала на Microsoft в суд, за незаконное использование XML-файлов, патент которых принадлежит как раз канадцам. В итоге суд штата Техас наложил запрет на продажу Microsoft Word на территории США.
Забавные курьезы Microsoft Word.
Многие критикуют Word за непонятные курьезы, которые находили в программе очень часто. Например:
1. Знаменитая фраза «Съешь ещё этих мягких французских булок, да выпей чаю.» Если эту фразу ввести в версии Word до версии 2007, то вы будете удивлены. После нажатия клавиши Enter эта надпись разрастется на сотню страниц, как-будто она была заменена какой-то матрицей.
2. Также в версии раньше 2007 есть еще несколько прикольных штучек. Если ввести в любом месте документа Word функцию «=rand(x,y)» (без кавычек), то при нажатии клавиши Enter произойдет замена функции на определенный текст.
3. Функция «lorem». Если ввести эту функцию в документе, то данная строка заменится текстом из сайта Lorem Ipsum.
4. Word не различал буквы Ё и Е до версии 2003. Поэтому фразу «ёхать нужно мёдлённо» он считал верной.
5. Есть один прикол, которые сохранился в Word и по сей день. Если ввести фразу «Хочу избежать службу в армии», то орфография предложит вариант написания «Никому не удалось избежать службы в армии».
Источник: vsk-ski.ru