Системите за програмиране осигуряват платформа за разработване на приложен софтуер и пряко взаимодействие с компютърно оборудване, за да се получи необходимата производителност при изпълнение на потребителски задачи. Платформата може да се използва за програмиране на приложения за iPhone, iPad и операционни системи Android, използвайки езика за програмиране на Java. Интерфейсът Android Studio и Oracle Java SDK, съчетан с необходимите основни познания, ви позволява да създадете голямо разнообразие от приложения.
Да започнем с това, да разкрием концепцията за системите за програмиране. Тези, които използваме сега, принадлежат към периода на 3-то поколение компютри. Системното програмиране е софтуерно създаване. Тя може да изпълнява много различни задачи. Без него повечето хардуер не биха изпълнили функциите си. За да ги направите полезни, използвайте софтуера. Потребителят е длъжен да избере желаната програма за всяка задача.
Елементи на класическата програмна система:
Пример за модерна система за програмиране включва сервиз и основен софтуер.
Общата форма на програмата обръща специално внимание на отделните компоненти и връзката между тях. Програмите са добри или лошо структурирани. С добре структурирана програма, делението на компоненти следва принципи, като например скриване на информация, и интерфейсите между компонентите са ясни и прости. На по-фино ниво, той използва подходящи структури от данни и софтуерни единици с една входна точка и една изходна точка.
С лошо структурирана програма, делението на компоненти е до голяма степен произволно, а интерфейсите са имплицитни и сложни. В допълнение, такава програма има произволни структури от данни и управляващ поток. Почти всички структурирани програми имат общ характер на действия:
Системите за програмиране и поздравленията Hello World в различни програмни езици ясно демонстрират основните различия.
За да използвате променлива вътре в програмата, компилаторът трябва предварително да знае типа данни, които ще се съхраняват в нея. Поради тази причина променливите се декларират в началото на програмата.
Декларирането на променлива се състои от задаване на ново име и тип данни за променлива. Това обикновено се прави в самото начало.
Следващата фигура показва пример на система за програмиране за структура на цикъл, която задейства набор от отчети, докато условието е вярно.
Това е тази, която няма функционираща изходна процедура. В резултат на това цикълът се повтаря непрекъснато, докато операционната система го разпознае и спре програмата с грешка или докато настъпи някакво друго събитие, например програмата автоматично спира след определено време.
По-долу са представени системи за програмиране и примери за програми C за сортиране на низове в речника. Тази програма отнема 10 думи (редове) от потребителя и ги сортира в лексикографски ред. Например, 10 програмни езика:
резултат:
За програмиране се нуждаете от няколко инструмента. Схемата на класическата програмна система:
Използването на шаблон за проектиране е да се структурира програмата или да се използват езикови инструменти и колкото е възможно по-ясно да се осигури систематичен подход към програмирането, както и връзката с базата данни на шаблони, като се създаде страница, която ще показва потребителски вид. По-общо, моделът на проектиране е многозадачно и усъвършенствано решение.
Структурата на софтуера (или рамката) е специален тип софтуерна библиотека. Първата му цел е да свърже програмирането, като осигурява възможно най-много инструменти, от които се нуждаете. Например, Django 2 е структура в Python, предназначена да улесни създаването на реактивни уебсайтове. Той създава структурата и предлага общи инструменти, от които всички сайтове могат да се нуждаят (административен интерфейс, услуги за удостоверяване, метод на превод на няколко езика и др.).
Друг пример е наличието на няколко рамки в JavaScript (jQuery или angular.js) с една цел - същите действия трябва да бъдат написани по различен начин в зависимост от вида на браузъра, използван от посетителя на уебсайта. Те имат уникален интерфейс, който го превръща в код, който всеки браузър разбира. На снимката е пример за система за програмиране в JavaScript за задачата за отваряне на нов прозорец след натискане на бутон.
Езикът за програмиране е набор от споразумения и абстракции, които ви позволяват да напишете това, от което се нуждае потребителят, така че компютърът да произвежда резултата в по-разбираема форма. Компилацията е да конвертирате изходния код в изпълним файл. Това преобразуване се извършва от компилатора. Разликата в скоростта на изпълнение е огромна. Като цяло, при равни други условия, програмата на компилирания език ще работи около десет пъти по-бързо от интерпретирания. По-долу е даден пример за система за програмиране на С. Той демонстрира програма, която използва т.нар. Функции от по-висок ред и чисти функции.
В случай на интерпретирани езици, изходният код се предоставя на интерпретатора, който изпълнява програмата директно. Няма нужда да се притеснявате за операционната система или типа процесор, тъй като той трябва да бъде инсталиран на компютъра на потребителя. Освен това, тъй като изходният код трябва да бъде „преведен” в машинен код с всяко изпълнение, интерпретираните езици често са бавни в сравнение с еквивалентните компилирани езици. В същото време, преводачите не оптимизират генерирания машинен код, което ги прави по-бавни, но процесът на генериране на машинен код е по-бърз от този на компилаторите.
Често съкратени, те се наричат "VM languages" (в съответствие с аналозите на английското име на виртуалната машина). Принципът на действие и целта на системата за програмиране е, че изходният код не се превежда в машинен код, разбираем за конкретен процесор, а в “фиктивен” (байт-код), който сам по себе си ще се интерпретира от езика на виртуалната машина. Такъв език има предимства и недостатъци.
Както при интерпретираните езици, програмата, компилирана в байт-код, може да работи на всяка операционна система и процесор, при условие че виртуалната машина е достъпна за тази комбинация. От друга страна, тъй като е имало компилация нагоре по веригата, програмата работи по-бързо от еквивалентния интерпретиран език. Често достига скорост, подобна на тази на “истинския” машинен код. Въпреки това, това се изравнява с факта, че виртуалната машина може да бъде много ресурсоемка, особено в паметта.
И накрая, можете да създавате нови езици, които ще бъдат компилирани в същия байт-код като друг съществуващ език, което опростява тяхното взаимодействие. Това е една от задачите на системата за програмиране. Пример за това са езиците Clojure и Frege, които са компилирани за байт-кода на Java. Те са функционални и радикално различни от Java в техния дизайн. В този случай можете да напишете различни части на програмата с един от най-подходящите езици и да ги накарате да работят заедно на виртуална машина. Java е езикът, който е най-добре компилиран във виртуална машина. Но имате нужда от приложение, състоящо се от набор Java класове. В началото на всеки клас има определена структура, като например JavaClassFileFormat.
Представяне на най-известните програмни езици:
Представяме пример за машинен код:
110101010010001000111001001 010101001000100001011101001 000111001101110001101101010 001111010010010101011001010 001010101111110100101010001.
Както можете да видите, в този тип код има много малко различима структура. В езиците за програмиране семантичната разлика е разликата между езика, който се използва за програмиране на хардуера (машинен код) и този, който трябва да се използва за програмиране на компютъра като система. Пример за система за програмиране: клиентската страна на JavaScript ще изисква използването на два езика, с изключение на този, който генерира JavaScript (CoffeScript или Elm).
За сървърната страна PHP държи най-високите позиции, но Python и Ruby също се използват активно. JavaScript се използва и на сървъра, благодарение на NodeJS. За видеоигри на Windows се използват C ++, Python и C #. Но те не са единствените. Всеки език, който го прави лесен за създаване на графичен интерфейс, може да бъде подходящ (C, Java, Ruby или Tcl / Tk).
За големи приложения C ++ и Java доминират на пазара, въпреки че C # също набира скорост. За малки утилитарни приложения, особено в командния ред, е лесно да се намерят C, Perl, Python или Ruby. В областта на научните изчисления Фортран остава крал. Все по-често се конкурира с C ++, Python или специализирани езици като Matlab и R.
По време на историята на компютрите са направени стотици опити да се направят езиците за компютърно програмиране като писмен английски - лесен за четене и лесен за разбиране. PASCAL е резултат от едно такова усилие. Създателят на PASCAL, Никълъс Вирт, искаше HLL, който лесно можеше да се научи, да чете и пише. Той разработи PASCAL въз основа на следните понятия:
По-долу е даден пример за определяне на броя на буквите в една дума.
PASCAL улеснява модулното кодиране чрез:
В дадения пример на системата за програмиране Pascal програмата показва двоичен избор (има само два случая: ActualMark> = 50 или ActualMark <50).
Трябва да се избягват общи грешки при кодирането. По този начин потребителят ще спести време и ще избегне проблеми. Видове грешки:
Синтаксисните подсветки и стилове на отстъпване често се използват, за да помогнат на програмистите да разпознаят елементите на изходния код.
В същото време е важно цветовото кодиране да бъде подчертано в фрагмент от кода като пример за система за програмиране, написана на Python.