Security Bulgaria
Advertisement

Компютърното програмиране (накратко наричано програмиране или кодиране) е процес на писане, тестване и поддържане на сорс код на компютърна програма. Сорс кодът се пише на език за програмиране. Този код може да бъде модификация на съществуващ вече код, или нещо напълно ново, с цел решаването на зададен проблем. Процесът на писане на сорс код изисква познание в много различни свери, като алгоритми и т.н.

В сверата на софтуерното инженерство, програмирането е част от процеса на разработка на софтуер.

В някой специализирани приложения или специфични ситуации, програма може да бъде написана или модифицирана (пачната) чрез директно зареждане на нужните инструкции на машинен код и тяхното изпълнение.

Водят се спорове относно дали програмирането е изкуство, занаят или инженерна дейност. За добър стил на програмиране се приема, когато създадените приложения отговарят на следните три основни критерия : майсторство при форматирането на информацията, ефективността и поддръжката на приложението. За разлика от другите професии, за да се наречеш "програмист" или "софтуерен инженер" не е нужно да си завършил някакви курсове или да имаш съответна диплома.

Друг спор, който остава нерепен е кой език за програмиране, използван при създавеането на сорс кода, въздейства най-много върху крайния вариант на приложението.

Програмисти[]

Програмисти са тези, които пишат компютърния софтуер. Тяхната работа обикновено включва :

  • Анализ на изискванията
  • Спецификация
  • Архитектура на софтуера
  • Писане на код
  • Компилиране
  • Тестване
  • Документация
  • Обединяване
  • Подръжка


Езици за Програмиране[]

Различните езици за програмиране, поддържат различни стилове на програмиране. Избирането на език за програмиране е свързано с много съображения като например фирмена политика, съвместимост, наличност на библиотеки или лични предпочитания.

История на програмирането[]

Файл:IBM402plugboard.Shrigley.wireside.jpg

Wired plug board for an IBM 402 Accounting Machine.

Най старата машина за програмиране (това е машина, чието поведение може да се контролира от промените на "програма") е програмния хуманоиден робот на Ал-Джазари през 1206г. Същността на "робота" на Ал-джазари е лодка, с четири автоматични музиканта, които се носят по езерото за да забавляват гостите по време на кралските балове. Неговия механизъм включва програмируеми барабани с ключе, захваната на малка ръчка, която отмерва ритъма. Барабаниста е можел да изпълнява различни ритъми в зависимост от положението на ключето.

[Станът за жакардови тъкани], създаден през 1801г, често е считан за първоизточника ранното изкуство. Машината е използвала картонени карти, с дупки по тях, където дупките показват извивките на дрехата. Така станът е можел да произвежда напълно различни дрехи в зависимост от картите, които му се поставят. Такива карти се използват и от Чарлз Бабидж през 1830г, за да управлява неговата изчислителна машина.

Това нововъведение по-късно е подобрено от Хермън Холерит който през 1896 година открил Tabulating Machine Company (днес IBM). Той изобретил перфокартите на Холерит, четец за тези карти и перфориращата машина. Тези открития стават основата на модерната ИТ индустрия. Като добавка на plug-board през 1906 г. Type I Tabulator позволявал да се вършиат различни задачи, без да е нужно преправяне (първата крачка към програмирането). До края на 40те години имало различни видове plug-board машини за програмиране, наричани unit record equipment, които да изпълняват четенето на картите. Ранните компютри също са били програмирани чрез plug-boards.

PunchCardDecks

A box of punch cards with several program decks.

Изобретението на Джон фон Нойман позволява на програмите да бъдат запазени в компютърна памет. "Ранните" програми трябвало стриктно да задават инструкциите на отделната машина, обикновено в бинарен вид. Всеки модел компютър се нуждаел от различни команди за изпълняването на една и съща задача. По късно били измислени езиците за програмиране, които позволяват програмистите да представят всяка инструкция в текстов формат, като въвеждат абривиатури за всички операции вместо ползването на числа и специфични адреси във символен формат. През 19754г. бил измислен FORTRAN - първият език на високо ниво. Това позволило на програмистите да извършват изчисленията директно, чрез задаване на нужната формула. Текстът(сорсът) на програмата се превеждал до машинни инструкции чрез специална програма наречена компилатор. След това били създадени още много езици за програмиране, както и някои с комерсиална цел, като COBOL. Програмите обаче все още били въвеждани на перфокарти или хартиена лента. Края на 60те години, устройствата за съхранение на данни и компютърните терминали стават достатъчно напреднали, за да могат програмите да бъдат създавани чрез директно писане на компютър. Били създадени текстови редактори, които позволяват на програмистите да въвеждат, редактират и обработват кода си, много по-лесно от префокартите.

Вицове за Програмисти[]

Ако шофьорите ги наемаха на работа както програмистите...[]

Ако шофьорите ги наемаха на работа както програмистите... ето как щеше да изглежда една обява: Длъжност: шофьор Изисквания: професионални навици на управление на леко- и тежкотоварни автомобили, тролеи, трамваи, влакове на метрото, трaктори, багери, БМП и съвременни леки/тежки танкове, на въоръжение в страните НАТО. Навици за ралийно и екстремално управление са задължителни. Опит във Формула-1 - препоръчва се. Кандидатите трябва да притежават сертификати от BMW, General Motors и Bosch, а също и дипломи за участие в големи международни ралита, но не по-стари от 2 години. Заплащанe: 300-500 лева, определя се в зависимоста от резултата на интервюто. Знания и опит в ремонт на бутални и роторни двигатели, автоматични и ръчни трансмисии, системи за запалване, бордови компютри, ABS, GPS и автомобилини аудио системи на водещи световни производители - задължително. Опит в провеждане на тенекеджийски и бояджийски работи - плюс.

Езици за програмиране

Ada | ALGOL | APL | AspectJ | BASIC | COBOL | C | C++ | C# | D | ColdFusion | Delphi | Eiffel | Forth | FORTRAN | Haskell | Java | JavaScript | Jython | Lisp | Logo | Lua | Mesa | ML | Modula-2 | Oberon | Pascal | Objective-C | Perl | PHP | PL/I | PostScript | Powerbuilder | Prolog | Python | Ruby | Scheme | Smalltalk | Tcl/Tk | Visual Basic

Advertisement