Компютърното програмиране (накратко наричано програмиране или кодиране) е процес на писане, тестване и поддържане на сорс код на компютърна програма. Сорс кодът се пише на език за програмиране. Този код може да бъде модификация на съществуващ вече код, или нещо напълно ново, с цел решаването на зададен проблем. Процесът на писане на сорс код изисква познание в много различни сфери, като алгоритми и т.н.
В сферата на софтуерното инженерство, програмирането е част от процеса на разработка на софтуер.
В някои специализирани приложения или специфични ситуации, програма може да бъде написана или модифицирана чрез директно зареждане на нужните инструкции на машинен код и тяхното изпълнение.
Програмисти
Програмист (софтуерен програмист) е човек, който пише, създава компютърен софтуер. Работа на програмиста обикновено включва:
- Анализ на изискванията
- Спецификация
- Архитектура на софтуера
- Писане на код
- Компилиране
- Тестване
- Документация
- Обединяване
- Поддръжка
Езици за програмиране
Различните езици за програмиране поддържат различни стилове на програмиране (парадигма на програмиране). Според стила основните сред тях са: обектно-ориентирано, императивно, функционално и декларативно . Според друг източник обектно-ориентираното програмиране спада към императивния стил, а функционалното програмиране спада към декларативния:
- Императивни
- Процедурни
- Обектно ориентирани
- Декларативни
- Функционални
- Логически
- Функционални + Логически
- Генетични
Според предназначението си езиците за програмиране биват с общо предназначение и специализирани. Популярни съвременни езици за програмиране с общо предназначение са Java, C#, Object Pascal, C, C++, PHP, Perl. Специализирани езици за програмиране са например SQL (за заявки към системи за управление на бази от данни), JavaScript (за реализиране на динамично поведение в уеб сайтове от страна на клиента) и т. н.
Избирането на език за програмиране е свързано с много съображения като например фирмена политика, съвместимост, наличност на библиотеки или лични предпочитания.
История на програмирането
Табулаторът на Холерит от 1890
Най-старата машина за програмиране (това е машина, чието поведение може да се контролира от промените на програма) е програмният хуманоиден робот на Ал Джазари през 1206 г. Външният вид на робота на Ал Джазари е механизирана лодка с четирима автоматични музиканти, която се носи по езерото и забавлява гостите по време на кралските балове. Неговият механизъм включва програмируеми барабани с ключе, захванати на малка ръчка, които отмерват ритъма. Барабанистът е можел да изпълнява различни ритми в зависимост от положението на ключето.
Често за образец на ранното изкуство е считан станът за жакардови тъкани, създаден през 1801 г. В тази машина се използвали картонени карти с дупки по тях, като дупките показват извивките на дрехата. Така в зависимост от картите, които му се поставят, станът можел да произвежда напълно различни дрехи. Такива карти е използвал и Чарлз Бабидж през 1830 г., за да управлява своята сметачна машина. Тук отворите се използват за контрол на машината.
Перфокарта на Холерит
Това нововъведение по-късно е подобрено от Херман Холерит, който прилага перфорацията по определена схема за въвеждане на данни. Холерит изобретява специална перфорираща машина за въвеждане на големи масиви от данни, наречена табулатор. Тя се основава на релета и работи с перфокарти, които получават неговото име. Освен тях изобретява и четец за тези карти. Първото приложение на машината е при обработката на резултатите от преброяване на населението в САЩ през 1890 г. когато резултатите са обработени много по-евтино от очакваното и преди определения срок (при предишното преброяване обработката отнела години). Следват усъвършенствувания на машината и през 1906 г. моделът Type I Tabulator вече е снабден с комутационен панел и позволява бързо и автоматизирано да се изпълняват различни задачи в счетоводството и складовото стопанство (първата крачка към програмирането).
През 1896 г. Холерит основава компанията Tabulating Machine Company (днес IBM). До края на 40-те години имало различни видове машини за програмиране с комутационен панел, на английски: unit record equipment, които да изпълняват четенето на картите. Ранните компютри също са били програмирани чрез комутационни панели.
Комутационен панел с проводници за сметачна машина IBM 402.
Изобретението на Джон фон Нойман позволява програмите да бъдат запаметени в компютърна памет. Ранните програми трябвало стриктно да задават инструкциите на отделната машина, обикновено в бинаренвид. Всеки модел компютър се нуждаел от различни команди за изпълняването на една и съща задача. По-късно са създадени езиците за програмиране, които позволяват на програмистите да представят всяка инструкция в текстов формат, като въвеждат абревиатури за всички операции, вместо да ползват числа и специфични адреси в символен формат. През 1954 г. е създаден FORTRAN — първият език на високо ниво. Това позволило на програмистите да извършват изчисленията директно чрез задаване на нужната формула. Изходният текстов код на програмата се превежда до машинни инструкции чрез специална програма, наречена компилатор. След това са създадени още много езици за програмиране (някои от тях с комерсиална цел) — като например COBOL.
Източници
- Jump up↑ ((en)) Nørmark, Kurt. Overview of the four main programming paradigms. Aalborg University, 9 май 2011. Линк ат 22 септември 2012.
- Jump up↑ Принципи на Функционалното програмиране. Увод в Scheme. // Посетен на 29.12.2014.
- Jump up↑ U.S. Census Bureau: Tabulation and Processing
- Процедурни
- Обектно ориентирани
- Функционални
- Логически
- Функционални + Логически
- Генетични