Программирование

Разработка программного обеспечения
Ключевые процессы
Парадигмы и модели
Методологии
Инструменты
Данные и инструкции когда-то [когда?] хранились на внешних перфокартах, сортировались и упорядочивались в программные колоды.

Программи́рование также ко́динг (от англ. coding «процесс написания программного кода»; не путать с коди́рованием) — процесс создания и модификации компьютерных программ.

По выражению одного из основателей языков программирования Никлауса Вирта «Программы = алгоритмы + структуры данных»[1][2].

Программирование основывается на использовании языков программирования и средств программирования. В основном языки программирования основаны на текстовом представлении программ, но иногда программировать можно, используя, например, визуальное программирование или «zero-code» программирование.

История

Коммутационная панель суммирующей машины IBM 402

205 год до н. э.[3] (150 год до н. э.[4]) — антикитерский механизм из Древней Греции был калькулятором, использовавшим шестерни различных размеров и конфигурации, обусловливающих его работу[5] по отслеживанию метонова цикла, до сих пор использующегося в лунно-солнечных календарях[6].

1206 год — Аль-Джазари построил программируемый автомат-гуманоид. Одна система, задействованная в этих устройствах, использовала зажимы и кулачки, помещённые в деревянный ящик в определённых местах, которые последовательно задействовали рычаги, которые, в свою очередь, управляли перкуссионными инструментами[источник не указан 2488 дней].

1804 год — Жозеф Мари Жаккар построил жаккардовый ткацкий станок, который произвёл революцию в ткацкой промышленности, предоставив возможность программировать узоры на тканях при помощи перфокарт. Его иногда считают первым программируемым устройством[источник не указан 2488 дней].

1843 год — Чарлз Бэббидж разработал проект (но не смог его реализовать, в том числе благодаря близорукости английского правительства) «Аналитической машины» — основанного на механических узлах и с приводом в виде парового двигателя первого программируемого вычислительного устройства[источник не указан 2488 дней].

Графиня Ада Августа Лавлейс, дочь английского поэта Джорджа Байрона, написала первую в истории человечества программу для Аналитической машины. Эта программа решала уравнение Бернулли, выражающее закон сохранения энергии движущейся жидкости. В своей первой и единственной научной работе Ада Лавлейс рассмотрела большое число вопросов. Ряд высказанных ею общих положений (принцип экономии рабочих ячеек памяти, связь рекуррентных формул с циклическими процессами вычислений) сохранили своё принципиальное значение и для современного программирования[источник не указан 2488 дней].

В материалах Бэббиджа и комментариях Лавлейс, намечены такие понятия как — подпрограмма и библиотека подпрограмм, модификация команд и индексный регистр, которые стали употребляться только в 1950-х годах[источник не указан 2488 дней]. Однако ни одна из программ, написанных Адой Лавлейс, никогда так и не была запущена[источник не указан 2488 дней].

Первым широко известным и успешным языком программирования высокого уровня был Фортран, разработанный с 1954 по 1957 год, командой исследователей IBM во главе с Джоном Бакусом. Успех Фортрана привёл к образованию комитета учёных по разработке «универсального» компьютерного языка. Отдельно Джон Маккарти из Массачусетского технологического института разработал язык программирования Лисп (основанный на лямбда-исчислении), первый язык, возникший в академических кругах и получивший успех. С успехом этих начальных усилий языки программирования стали активной темой исследований в 1960-х и далее.

Первые книги по программированию в СССР

Первой советской открытой книгой по программированию, электронным вычислительным машинам и их различным применениям была выпущенная в начале 1956 года монография Анатолия Ивановича Китова «Электронные цифровые машины»[7][8]. Заключительная треть этой книги посвящена «Неарифметическому использованию ЭВМ» — применению компьютеров для управления производственными процессами, решению задач экономики, искусственного интеллекта, машинного перевода и т. д. Книга переведена на несколько иностранных языков и опубликована в США, Китае, Польше, Чехословакии и других странах. Об этой книге Президент Академии наук СССР Г. И. Марчук писал «Вышедшая в 1956 году книга А. И. Китова „Электронные цифровые машины“ фактически сделала переворот в сознании многих исследователей». Выдающийся учёный современности В. М. Глушков отмечал: «А. И. Китов — признанный пионер кибернетики, заложивший основы отечественной школы программирования и применения ЭВМ для решения военных и народнохозяйственных задач. Я сам, как и десятки тысяч других специалистов, получил свои начальные компьютерные знания из его книги „Электронные цифровые машины“ — первой отечественной книги по ЭВМ и программированию». Профессор Мичиганского университета Джон Карр (John Carr, USA) в своей монографии «Лекции по программированию» (1958, США) писал о том, что, проанализировав по рассматриваемой тематике порядка 150 выпущенных в мире на тот момент времени книг, пришел к выводу, что вопросы как ручного, так и автоматического программирования лучше всего освещены в книге Анатолия Китова.

Через шесть месяцев в том же 1956 году вышла в свет под редакцией А. И. Китова книга (А. И. Китова, Н. А. Криницкого и П. Н. Комолова) «Элементы программирования» (для электронных вычислительных машин). Эта почти трёхсотстраничная книга стала второй в СССР общедоступной компьютерной монографией. В заключении этой книги продекларировано: «Широкое применение этих машин (ЭВМ) поднимет на новый небывало высокий уровень все виды производства в нашей стране, позволит резко повысить материальное благосостояние нашего народа и значительно укрепить обороноспособность нашей Родины». Данные две книги, покрыли громадный дефицит литературы по ЭВМ и программированию, существовавший в то время в Советском Союзе.

Вышедшая в свет в 1959 году книга «Электронные цифровые машины и программирование» (Китова А. И. и Криницкого Н. А.) была первым в СССР официальным учебником по ЭВМ и программированию, официально допущенным Министерством образования СССР для обучения в ВУЗах и университетах. Об этой книге Президент Академии наук СССР Г. И. Марчук писал: «В 1959 году появился другой фундаментальный труд А. И. Китова, написанный вместе с Н. А. Криницким — „Электронные цифровые машины и программирование“. Это была фактически энциклопедия науки об ЭВМ. Многие поколения студентов в университетах и вузах страны с помощью этой замечательной книги получили фундаментальное образование и стали первоклассными учёными во многих областях знаний. Книги А. И. Китова, написанные в начале эры ЭВМ в нашей стране, не должны быть забыты». Эта книга была издана в Румынии, Венгрии, Германской демократической республике и ряде других стран. Второе стереотипное издание книги «Электронные цифровые машины и программирование» появилось в 1961 году. Общий тираж иностранных и двух советских изданий составил свыше 130 000 экземпляров. Об этом учебнике-энциклопедии в своих воспоминаниях ветеран кафедры вычислительной техники МЭИ (первая кафедра ЭВМ в стране), д. т. н., профессор А. К. Поляков написал так: «По-моему мнению, учебник А. И. Китова и Н. А. Криницкого „Электронные цифровые машины и программирование“ (1959) в то время был лучшим в мире».

Языки программирования

Большая часть работы программистов связана с написанием исходных текстов (иногда язык программирования может быть и не текстовым, а графическим), тестированием и отладкой программ на одном из языков программирования. Исходные тексты и исполняемые файлы программ являются объектами авторского права и являются интеллектуальной собственностью их авторов и правообладателей[источник не указан 2488 дней].

Различные языки программирования поддерживают различные стили программирования (парадигмы программирования). Выбор нужного языка программирования для некоторых частей алгоритма позволяет сократить время написания программы и решить задачу описания алгоритма наиболее эффективно. Разные языки требуют от программиста различного уровня внимания к деталям при реализации алгоритма, результатом чего часто бывает компромисс между простотой и производительностью (или между «временем программиста» и «временем пользователя»).

Единственный язык, напрямую выполняемый ЭВМ — это машинный язык (также называемый машинным кодом и языком машинных команд). Изначально все программы писались в машинном коде, но сейчас этого практически уже не делается. Вместо этого программисты пишут исходный код на том или ином языке программирования, затем, используя компилятор, транслируют его в один или несколько этапов в машинный код, готовый к исполнению на целевом процессоре, или в промежуточное представление, которое может быть исполнено специальным интерпретатором — виртуальной машиной. Но это справедливо только для языков высокого уровня. Если требуется полный низкоуровневый контроль над системой на уровне машинных команд и отдельных ячеек памяти, программы пишут на языке ассемблера, мнемонические инструкции которого преобразуются один к одному в соответствующие инструкции машинного языка целевого процессора ЭВМ (по этой причине трансляторы с языков ассемблера получаются алгоритмически простейшими трансляторами).

В некоторых языках вместо машинного кода генерируется интерпретируемый двоичный код «виртуальной машины», также называемый байт-кодом (byte-code). Такой подход применяется в Forth, некоторых реализациях Lisp, Java, Perl, Python, языках для .NET Framework.

Скриншот фрагмента кода на языке Java в текстовом редакторе vim, демонстрирующий подсветку синтаксиса, поддержку юникода, фолдинг

Инструменты

Текстовый редактор среды программирования может иметь специфичную функциональность, такую, как индексация имён, отображение документации (например Doxygen), подсветка синтаксиса, средства визуального создания пользовательского интерфейса. С помощью текстового редактора программист производит набор и редактирование текста создаваемой программы, который называют исходным кодом. Язык программирования определяет синтаксис и изначальную семантику исходного кода.

В процессе программирования в настоящее время широко используются интегрированные среды разработки[9][10], в состав которых обычно входят:

  • редактор для ввода и редактирования текста программ[10];
  • транслятор для преобразования текста программы в машинное представление;
  • отладчик для отладки (поиска и устранения ошибок);
  • компоновщик для сборки программы из нескольких модулей;
  • другие служебные модули и инструменты.

Примечания

  1. Вирт Н. Алгоритмы + структуры данных = программы. — М.: Мир, 1985;
  2. Вирт Н. Алгоритмы и структуры данных. Новая версия для Оберона + CD. М.: ДМК Пресс, 2010. ISBN 978-5-94074-584-6, 0-13-022005-9
  3. Антонов Е. «Древнегреческий компьютер» оказался древнее, чем считалось // Наука и жизнь. — 2014. — 11 декабря (№ 12).
  4. The History of the Antikythera Mechanism (англ.). — Сайт, посвящённый Антикитерскому механизму. Дата обращения: 4 марта 2018. Архивировано 5 июля 2012 года.
  5. Ancient Greek Computer’s Inner Workings Deciphered Архивная копия от 29 июня 2011 на Wayback Machine. National Geographic News. November 29, 2006.
  6. 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 года.
  7. А.И. Китов. Электронные цифровые машины. — Москва, 1956.
  8. Основные публикации Китова А.И. Дата обращения: 4 марта 2018. Архивировано 25 августа 2019 года.
  9. Архангельский А.Я. Программирование на C++Builder 6. — Москва: БИНОМ, 2003. — 1152 с. — ISBN 5-7989-0239-0.
  10. 1 2 Макки Алекс. Введение .Net 4.0 и Visual Studio 2010 для профессионалов. — Москва: ООО "И.Д. Вильямс", 2010. — 416 с. — ISBN 978-5-8459-1639-6. — ISBN 978-1-43-022455-6.

Литература

Ссылки

Read other articles:

  لمعانٍ أخرى، طالع بيون (توضيح). بيون    شعار الاسم الرسمي (بالفرنسية: Péone)‏  الإحداثيات 44°07′03″N 6°54′30″E / 44.1175°N 6.9083333333333°E / 44.1175; 6.9083333333333[1]  [2] تقسيم إداري  البلد فرنسا[3]  التقسيم الأعلى الألب البحريةنيس  خصائص جغرافية  الم...

 

State Route 71Route informationMaintained by VDOTLength35.82 mi[1][2] (57.65 km)ExistedJuly 1, 1933[3]–presentTouristroutes Virginia BywayMajor junctionsSouth end US 23 Bus. / US 58 Bus. / US 421 Bus. in Gate CityMajor intersections US 58 Alt. at DickensonvilleNorth end US 19 Bus. in Lebanon LocationCountryUnited StatesStateVirginiaCountiesScott, Russell Highway system Virginia Routes Interstate US Prim...

 

يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. فضلاً، ساهم في تطوير هذه المقالة من خلال إضافة مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. (أكتوبر 2023) كتاب في أحوال النبيّ وأوصيائه، من تأليف هاشم البحراني، ألّفه للوزير (إيماني بيك) وفرغ من تأليفه في يوم 18 م...

يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. فضلاً، ساهم في تطوير هذه المقالة من خلال إضافة مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. (ديسمبر 2018) هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها...

 

Atypical antidepressant TianeptineClinical dataTrade namesStablon, Coaxil, othersOther namesTia;[1] S-1574;[2][3][4] JNJ-39823277; TPI-1062[5]AHFS/Drugs.comInternational Drug NamesRoutes ofadministrationBy mouthATC codeN06AX14 (WHO) Legal statusLegal status BR: Class C1 (Other controlled substances)[6] In general: Rx-onlyUS: Investigational New Drug AU: S4[7]Others: controlled in FR, BH, SG Pharmacokinetic dataBioavailabil...

 

Questa voce o sezione sull'argomento isole della Spagna non cita le fonti necessarie o quelle presenti sono insufficienti. Puoi migliorare questa voce aggiungendo citazioni da fonti attendibili secondo le linee guida sull'uso delle fonti. Isole ChafarinasIslas ChafarinasGeografia fisicaLocalizzazioneMar Mediterraneo Coordinate35°11′N 2°26′W / 35.183333°N 2.433333°W35.183333; -2.433333Coordinate: 35°11′N 2°26′W / 35.183333°N 2.433333°W35.183...

American TV series or program Star-CrossedGenre Science fiction Romance Teen drama Created byMeredith AverillStarring Aimee Teegarden Matt Lanter Grey Damon Malese Jow Titus Makin Jr. Natalie Hall Chelsea Gilligan Greg Finley Brina Palencia ComposerGabriel MannCountry of originUnited StatesOriginal languageEnglishNo. of seasons1No. of episodes13ProductionExecutive producers Andre Nemec Bryan Furst Daniel Gutman Josh Appelbaum Meredith Averill Richard Shepard Scott Rosenberg Sean Furst Pr...

 

Basque international television channel This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: ETB Sat – news · newspapers · books · scholar · JSTOR (April 2010) (Learn how and when to remove this template message) Television channel ETB SATCountrySpain and FranceBroadcast areaWorldwideNetworkETBHeadquartersBilbao,...

 

本條目為香港教育系列之一 學前教育 小學教育 小學派位 自行分配學位   統一派位 中學教育 升中派位 自行分配學位   統一派位 中一學科測驗 授課語文 英文中學   中文中學 以普通話教授中文科 三三四學制 文憑試  改革 校本評核 專上教育 專上學位資訊 經評審專上課程資料網 指定專業/界別課程資助計劃(SSSDP) 免入息審查資助計劃(NMTSS) 專...

1985 video game 1985 video gameKoronis RiftCover art by Terry HoffDeveloper(s)Lucasfilm GamesPublisher(s)NA: EpyxEU: Activision[2]Designer(s)Noah FalsteinProgrammer(s)Charlie KellnerAric WilmunderRon GilbertKen Rogoway (CoCo)[1]Artist(s)Gary WinnickJames St. LouisComposer(s)Douglas CrockfordPlatform(s)Atari 8-bit, Commodore 64, Amstrad CPC, Apple II, MSX2, ZX Spectrum, Color Computer 3Release1985: Atari 8-bit, C641987: CoCo[1]Genre(s)StrategyMode(s)Single-player Koroni...

 

This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article relies largely or entirely on a single source. Relevant discussion may be found on the talk page. Please help improve this article by introducing citations to additional sources.Find sources: Lev Tsenkovsky – news · newspapers · books · scholar · JSTOR (February 2012) This article include...

 

Джордж Вашингтон Ламберт Миссис Энни Мёрдок. 1927 англ. Mrs Annie Murdoch Холст, масло. 59,6 × 49,5 см Частная коллекция «Миссис Энни Мёрдок» (англ. Mrs Annie Murdoch) — портрет кисти австралийского художника Джорджа Вашингтона Ламберта, написанный в 1927 году. На картине изо...

Broad variety of architectural styles Part of a series on theCulture of Puerto Rico Society Puerto Ricans Jíbaro History Immigration Languages Holidays Religion Topics Art Architecture Cinema Cuisine Dance Festivals Handicrafts Literature Media Cinema Newspapers Radio Television Monuments Music Painting Sports Instituto de Cultura Puertorriqueña Symbols Flag Coat of arms Anthem Miss Puerto Rico World Heritage Sites  Puerto Rico portalvte The architecture of Puerto Rico demonstrates...

 

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Kabul Library – news · newspapers · books · scholar · JSTOR (September 2014) (Learn how and when to remove this template message) Kabul Library is one of Afghanistan's oldest and largest libraries, located in the capital Kabul. It includes books in many languag...

 

Radio station in Zolfo Springs, Florida WSRQ-FMSimulcasts WSRQ SarasotaZolfo Springs, FloridaBroadcast areaArcadia to WauchulaFrequency106.9 MHzBrandingSRQ FMProgrammingLanguage(s)EnglishFormatOldiesOwnershipOwnerLake Erie College of Osteopathic Medicine, Inc.Sister stationsWSRQ, WVIJHistoryFirst air dateNovember 1992 (as WZZS)Former call signsWZZS (1992-2019)Technical informationFacility ID64699ClassAERP5,000 wattsHAAT109 metersLinksWebcastListen LiveWebsiteWSRQ-FM Online WSRQ-FM (106.9 MHz)...

Road in Malaysia This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: KLIA East Road – news · newspapers · books · scholar · JSTOR (February 2016) (Learn how and when to remove this template message) Federal Route 344KLIA East Road(Jalan Kuarters KLIA)Route informationLength2.8 km (1.7 mi)Existed19...

 

Ett bakhjul med fast krans och frihjulskrans Cykelbud på fixie i New York City Fixed gear, även fastnav eller fixie,[1] är en enväxlad cykel med fast nav, vilket innebär att pedalerna roterar med hjulet. Fastnavscyklar används ofta på banor, så kallade velodromer.[2] Det är även ett redskap för trickcykling och andra cyklesporter som cykelpolo och cykelfotboll. Som vardagscykel används fastnavscyklar framför allt av cykelbud och har blivit populärt på senare år. Med hjälp av ...

 

Hills on Qi'ao Island Qi'ao Island (Chinese: 淇澳岛) is an island of Zhuhai, Guangdong province, China. Introduction Qi'ao Island is located in the northeast Xiangzhou District of Zhuhai, 13 km away from it. Totally, it covers an area of 23.8 square kilometers. There are about 1,900 inhabitants. Forest coverage reaches 90%. History Wenchang Palace In the ancient ruins of Housha Bay and Dong'ao Bay, archaeologists discovered plentiful colored pottery and white pottery which can dat...

DHL

German delivery and express mail company For other uses, see DHL (disambiguation). DHLCompany typeSubsidiary[1]IndustryCourierFoundedSeptember 25, 1969; 54 years ago (1969-09-25), in San Francisco, U.S.FoundersAdrian DalseyLarry HillblomRobert LynnHeadquartersBonn, GermanyArea servedWorldwideKey peopleTobias Meyer (CEO)[2]ProductsDHL Express Worldwide DHL Express 9:00 DHL Express 12:00ServicesPackage delivery, EMS, freight forwarding, third-party logisticsRev...

 

Global System for Mobile Communications AssociationGlobal System for Mobile Communications AssociationTanggal pendirian1995TipeAsosiasi PerusahaanKantor pusatThe Walbrook Buiding Lt. 2, 25 Walbrook, London, Inggris.Bahasa resmi Bahasa InggrisDirektur UmumAnne BouverotSitus webwww.gsma.comGlobal System for Mobile Communications Association adalah asosiasi yang mewadahi kepentingan operator telekomunikasi di seluruh dunia, khususnya operator telekomunikasi yang bergerak di bidang teknologi Glob...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!