Share to: share facebook share twitter share wa share telegram print page

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

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

Программи́рование — процесс создания и модификации компьютерных программ.

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

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

История

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В некоторых языках вместо машинного кода генерируется интерпретируемый двоичный код «виртуальной машины», также называемый байт-кодом (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.

Литература

  • Дейкстра Э. Дисциплина программирования = A discipline of programming. — 1-е изд. — М.: Мир, 1978. — 275 с.
  • Роберт У. Себеста. Основные концепции языков программирования / Пер. с англ. — 5-е изд. — М.: Вильямс, 2001. — 672 с. — ISBN 5-8459-0192-8 (рус.) ISBN 0-201-75295-6 (англ.).
  • Дональд Кнут. Искусство программирования. В четырёх томах / Пер. с англ. — М.: Вильямс, 2001 − 2013.

Ссылки

Read other articles:

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Februari 2023. SMPN 26InformasiJenisSekolah NegeriAlamatLokasiPerum Rindang Garden - Batu Aji, Batam, Kepri,  IndonesiaMotoMotoAnda Yakin Maka Anda Bisa SMPN 26, merupakan salah satu Sekolah Menengah Pertama Negeri yang ada di Provinsi Kepulauan Riau, yang beralam…

Türkiye Cumhurbaşkanlığı Forsu, Türkiye'yi ve cumhurbaşkanını temsil eden resmî simgelerinden biridir. Fors, cumhurbaşkanının ikametgâhında ve ziyareti süresince bulunduğu yerde bayrak direğine çekilir. Türkiye cumhurbaşkanları listesi, Türkiye Cumhuriyeti cumhurbaşkanı olarak görev yapmış kişileri içeren listedir. Türkiye Cumhuriyeti Anayasası'na göre cumhurbaşkanı, devlet ve hükûmet başkanıdır. Türkiye Büyük Millet Meclisi adına Türk Silahlı Kuvvet…

Naval base in Sweden You can help expand this article with text translated from the corresponding article in Swedish. (October 2019) Click [show] for important translation instructions. View a machine-translated version of the Swedish article. Machine translation, like DeepL or Google Translate, is a useful starting point for translations, but translators must revise errors as necessary and confirm that the translation is accurate, rather than simply copy-pasting machine-translated text int…

ФелінFélines   Країна  Франція Регіон Овернь-Рона-Альпи  Департамент Ардеш  Округ Турнон-сюр-Рон Кантон Серр'єр Код INSEE 07089 Поштові індекси 07340 Координати 45°19′03″ пн. ш. 4°43′45″ сх. д.H G O Висота 160 - 705 м.н.р.м. Площа 14 км² Населення 1754 (01-2020[1]) Густота 106,21 ос./к

هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (يونيو 2022) أودو عيساكا معلومات شخصية الميلاد 26 يونيو 1979 (44 سنة)  سونياتي  الطول 1.72 م (5 قدم 7 1⁄2 بوصة)[1][1] مركز اللعب وسط الجنسية غانا  مسيرة الش

Sacramento Light Rail LugarÁrea abastecida Sacramento, CaliforniaDescripciónTipo Tren ligeroInauguración 12 de marzo de 1987Características técnicasLongitud red 38,6 millas (62,12 km)Estaciones 50Ancho de vía 4 pie 8½' (1435 mm) (ancho estándar)Electrificación 750 V CC (catenaria)Propietario Sacramento Regional Transit DistrictExplotaciónLíneas 3Pasajeros 48,400 (al día)/13.873 millones (anual) (2012)[1]​Operador Sacramento Regional Transit DistrictMapa [editar d…

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Oktober 2022. Hacking Team adalah perusahaan penyedia perangkat pengintai asal Italia.[1] Selain di kota asalnya, Milan, kantor Hacking Team juga berlokasi di Washington D.C. dan Singapura.[2] Hacking Team mulai ada sejak 2003.[1] Hacking Team m…

منطقة بيركنفيلد  علم شعار   الإحداثيات 49°40′N 7°20′E / 49.67°N 7.33°E / 49.67; 7.33  [1] تقسيم إداري  البلد ألمانيا[2]  التقسيم الأعلى رَيْنُلَند بَلَاتِنَة  العاصمة بيركنفلد  خصائص جغرافية  المساحة 777.00 كيلومتر مربع  ارتفاع 411 متر  عدد السكان …

For other people with the same name, see Maria of Portugal. You can help expand this article with text translated from the corresponding article in Spanish. (June 2012) Click [show] for important translation instructions. View a machine-translated version of the Spanish article. Machine translation, like DeepL or Google Translate, is a useful starting point for translations, but translators must revise errors as necessary and confirm that the translation is accurate, rather than simply copy…

Richtlinie 95/46/EG Titel: Richtlinie 95/46/EG des Europäischen Parlaments und des Rates vom 24. Oktober 1995 zum Schutz natürlicher Personen bei der Verarbeitung personenbezogener Daten und zum freien Datenverkehr Bezeichnung:(nicht amtlich) Datenschutzrichtlinie Geltungsbereich: EU Rechtsmaterie: Datenschutzrecht Grundlage: Artikel 100a EGV Verfahrensübersicht: Europäische Kommission Europäisches Parlament IPEX Wiki Inkrafttreten: 13. Dezember 1995 In nationales Rechtumzusetzen bis: …

Universitas Islam NusantaraMotoUninus Maju & BerkahJenisPerguruan Tinggi SwastaDidirikan30 November 1959RektorProf. Dr. H. Obsatar Sinaga, S.IP., M.Si.LokasiBandung, Jawa Barat, IndonesiaSitus webuninus.ac.id Universitas Islam Nusantara atau dikenal dengan sebutan UNINUS merupakan salah satu perguruan tinggi Islam swasta tertua & bersejarah di Jawa Barat yang berlokasikan di Jl. Soekarno - Hatta No. 530 Kota Bandung. Semula Uninus bernama UNNU (Universitas Nadhlatul Ulama), pada tanggal …

إمام المسلمين مشاري بن عبد الرحمن بن حسن بن مشاري آل سعود إمام الدولة السعودية الثانية الثاني الإمام السابع من آل سعود فترة الحكم1249 هـ إلى 1250 هـ تاريخ التتويج حكم مدة أربعون يومًا تركي الأول فيصل الأول معلومات شخصية تاريخ الميلاد 1201 هـ الوفاة 1249 هـ (47-48 سنة)الرياض ،  السعود

SchaerbeekSchaarbeek SchaerbeekSchaarbeek (Belgien) SchaerbeekSchaarbeek Staat: Belgien Belgien Region: Brüssel-Hauptstadt Provinz: (seit 01.01.1995 „entprovinzialisiert“) Bezirk: Brüssel-Hauptstadtwub Koordinaten: 50° 51′ N, 4° 22′ O50.8583333333334.3683333333333Koordinaten: 50° 51′ N, 4° 22′ O Fläche: 8,14 km² Einwohner: 130.690 (1. Jan. 2022) Bevölkerungsdichte: 16.055 Einwohner je km² Postleitzahl: 1030 Vorwahl: 02 Bürg…

ゲルトルート・フォン・ブラウンシュヴァイクGertrud von Braunschweig マイセン辺境伯妃 ブラウンシュヴァイク大聖堂にあるゲルトルートの墓在位 1101/2年 - 1103年出生 1060年頃 神聖ローマ帝国ブラウンシュヴァイク伯領、ブラウンシュヴァイク死去 1117年12月9日 神聖ローマ帝国ブラウンシュヴァイク伯領、ブラウンシュヴァイク埋葬 神聖ローマ帝国ブラウンシュヴァイク伯領、…

Lighthouse in Virginia, United States LighthouseCherrystone Bar Light LocationSW of Cape Charles, Virginia harbor in the Chesapeake BayCoordinates37°15′23″N 76°01′57″W / 37.2564°N 76.0324°W / 37.2564; -76.0324TowerFoundationscrew-pileConstructioncast-iron/woodShapehexagonal houseLightFirst lit1858Deactivated1919Lensfourth-order Fresnel lens The Cherrystone Bar Light was a lighthouse located at the entrance to Cape Charles, Virginia harbor in the Chesapeake…

Third daughter of Augusta Leigh (1814–1849) Elizabeth Medora LeighElizabeth Medora LeighBorn(1814-04-15)15 April 1814Died28 August 1849(1849-08-28) (aged 35)Versols-et-Lapeyre, FranceResting placeVersols-et-LapeyreSpouseJean-Louis TailleferPartnerHenry TrevanionChildrenMarie Violette Trevanion Elie TailleferParent(s)George Leigh (legally) George Gordon Byron, 6th Baron Byron (presumed) Augusta Leigh Elizabeth Medora Leigh (15 April 1814 – 28 August 1849) was the third daughter of August…

Unsolved 1974 disappearance of three girls in Texas Fort Worth Missing TrioDateDecember 23, 1974DurationMissing for 48 years, 11 months and 13 daysLocationSeminary South Shopping Center, Fort Worth, Texas, U.S.TypeDisappearanceMissing Mary Rachel Trlica Lisa Renee Wilson Julie Ann Moseley The Fort Worth Missing Trio refers to an unsolved missing persons case that began on December 23, 1974 when three girls – Mary Rachel Trlica, Lisa Renee Wilson and Julie Ann Moseley – went mi…

2008年夏季残疾人奥林匹克运动会塞浦路斯代表團塞浦路斯国旗IPC編碼CYPNPC塞浦路斯残疾人奥林匹克委员会網站paralympic.org.cy(希腊文)(英文)2008年夏季残疾人奥林匹克运动会(北京)2008年9月6日至9月17日獎牌榜排名第44 金牌 銀牌 銅牌 總計 1 2 1 4 历届残疾人奥林匹克运动会参赛记录夏季残疾人奥林匹克运动会1988199219962000200420082012201620202024 2008年夏季殘疾人奧林匹克運動會塞…

Zakłady Naprawcze Taboru Kolejowego i Miejskiego Państwo  Polska Adres 80-758 Gdańskul. Siennicka 25 Data założenia 1910 Forma prawna spółka z o.o. Prezes Henryk Basałygo Nr KRS 0000050836 Dane finansowe Kapitał zakładowy 1 014 000 zł Położenie na mapie GdańskaSiedziba przedsiębiorstwa Położenie na mapie PolskiSiedziba przedsiębiorstwa Położenie na mapie województwa pomorskiegoSiedziba przedsiębiorstwa 54°21′27,3″N 18°40′57,5″E/54,357583 18,682639 M…

4th Empress of Japan (reigned 707–715) Empress Genmei元明天皇Empress of JapanReignAugust 18, 707 – October 3, 715PredecessorMonmuSuccessorGenshōBornAhe (阿閇 or 阿部)April 20, 660DiedDecember 29, 721(721-12-29) (aged 61)Nara, JapanBurialNahoyama no higashi no misasagi (奈保山東陵) (Nara)SpousePrince KusakabeIssue Emperor Monmu Empress Genshō Princess Kibi Posthumous nameChinese-style shigō:Empress Genmei (元明天皇)Japanese-style shigō:Yamato-neko-amatsumiyo-toyokuni…

Kembali kehalaman sebelumnya

Lokasi Pengunjung: 3.17.176.127