Системи за програмиране: примери, описания, характеристики

12.03.2019

Системите за програмиране осигуряват платформа за разработване на приложен софтуер и пряко взаимодействие с компютърно оборудване, за да се получи необходимата производителност при изпълнение на потребителски задачи. Платформата може да се използва за програмиране на приложения за iPhone, iPad и операционни системи Android, използвайки езика за програмиране на Java. Интерфейсът Android Studio и Oracle Java SDK, съчетан с необходимите основни познания, ви позволява да създадете голямо разнообразие от приложения.

Елементи на софтуерни системи

Да започнем с това, да разкрием концепцията за системите за програмиране. Тези, които използваме сега, принадлежат към периода на 3-то поколение компютри. Системното програмиране е софтуерно създаване. Тя може да изпълнява много различни задачи. Без него повечето хардуер не биха изпълнили функциите си. За да ги направите полезни, използвайте софтуера. Потребителят е длъжен да избере желаната програма за всяка задача.

Елементи на класическата програмна система:

  1. Операционната система е интерфейсът между приложния софтуер и компютъра.
  2. Помощните програми са малки, но мощни програми с ограничени възможности за конкретни задачи. Обикновено се използва от потребителите, за да се гарантира гладкото функциониране на компютърната система.
  3. Библиотечните програми са компилиран набор от рутинни процедури, например библиотеки. Осигурете много възможности и процедури, налични при писане на програма.
  4. Софтуер за превод: асемблер, компилатор, преводач.
  5. Интерпретаторът анализира и изпълнява езикова програма на високо ниво по един ред.
  6. Приложен софтуер, предназначен да помогне на потребителя да изпълни специфични задачи, като GIMP - за редактиране на снимки.

Пример за модерна система за програмиране включва сервиз и основен софтуер.

Концепцията за система за програмиране

Структура на програмата

Общата форма на програмата обръща специално внимание на отделните компоненти и връзката между тях. Програмите са добри или лошо структурирани. С добре структурирана програма, делението на компоненти следва принципи, като например скриване на информация, и интерфейсите между компонентите са ясни и прости. На по-фино ниво, той използва подходящи структури от данни и софтуерни единици с една входна точка и една изходна точка.

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

  1. Заявление за стартиране на програмата.
  2. Деклариране на променлива
  3. Програмни изявления (кодови блокове).

Здравейте световни примери

Системите за програмиране и поздравленията Hello World в различни програмни езици ясно демонстрират основните различия.

Здравейте световни поздравления

За да използвате променлива вътре в програмата, компилаторът трябва предварително да знае типа данни, които ще се съхраняват в нея. Поради тази причина променливите се декларират в началото на програмата.

Декларирането на променлива се състои от задаване на ново име и тип данни за променлива. Това обикновено се прави в самото начало.

Деклариране на променлива

Следващата фигура показва пример на система за програмиране за структура на цикъл, която задейства набор от отчети, докато условието е вярно.

Набор от оператори

Безкраен цикъл

Това е тази, която няма функционираща изходна процедура. В резултат на това цикълът се повтаря непрекъснато, докато операционната система го разпознае и спре програмата с грешка или докато настъпи някакво друго събитие, например програмата автоматично спира след определено време.

По-долу са представени системи за програмиране и примери за програми C за сортиране на низове в речника. Тази програма отнема 10 думи (редове) от потребителя и ги сортира в лексикографски ред. Например, 10 програмни езика:

  1. C.
  2. C ++.
  3. Java.
  4. PHP.
  5. Python.
  6. Perl.
  7. Cobol.
  8. Ruby.
  9. Р.
  10. JavaScript.
C примери за програми

резултат:

  1. C.
  2. C ++.
  3. Cobol.
  4. Java.
  5. JavaScript.
  6. PHP.
  7. Perl.
  8. Python.
  9. Р.
  10. Ruby.

Основни инструменти

Основни инструменти

За програмиране се нуждаете от няколко инструмента. Схемата на класическата програмна система:

  1. Редактор на текст - инструменти за редактиране. Този инструмент ви позволява да пишете изходния код. Това е общ инструмент за програмиране на всеки език. Наистина, при програмирането те оценяват наличието на такива функции като: автодовършване, осветяване на синтаксиса, търсене, редактиране, замяна на част от кода и редактор на отстъп.
  2. Компилатор или интерпретатор. Този инструмент е пряко свързан с езика за програмиране.
  3. Debugger. Разработчиците, както всички хора, могат да грешат. Намирането и коригирането на грешки отнема време. Дебъгерът е инструмент, който помага за проследяването им. Тя ви позволява да стартирате програмата стъпка по стъпка, да виждате състоянието й по всяко време, както и да проверявате дали част от кода се изпълнява или не.
  4. Библиотека
  5. Придружаваща документация.

Дизайнерски модели

Използването на шаблон за проектиране е да се структурира програмата или да се използват езикови инструменти и колкото е възможно по-ясно да се осигури систематичен подход към програмирането, както и връзката с базата данни на шаблони, като се създаде страница, която ще показва потребителски вид. По-общо, моделът на проектиране е многозадачно и усъвършенствано решение.

Структурата на софтуера (или рамката) е специален тип софтуерна библиотека. Първата му цел е да свърже програмирането, като осигурява възможно най-много инструменти, от които се нуждаете. Например, Django 2 е структура в Python, предназначена да улесни създаването на реактивни уебсайтове. Той създава структурата и предлага общи инструменти, от които всички сайтове могат да се нуждаят (административен интерфейс, услуги за удостоверяване, метод на превод на няколко езика и др.).

Друг пример е наличието на няколко рамки в JavaScript (jQuery или angular.js) с една цел - същите действия трябва да бъдат написани по различен начин в зависимост от вида на браузъра, използван от посетителя на уебсайта. Те имат уникален интерфейс, който го превръща в код, който всеки браузър разбира. На снимката е пример за система за програмиране в JavaScript за задачата за отваряне на нов прозорец след натискане на бутон.

Пример за система за програмиране в JavaScript

Събрани езици

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

Функции за по-висок ред

В случай на интерпретирани езици, изходният код се предоставя на интерпретатора, който изпълнява програмата директно. Няма нужда да се притеснявате за операционната система или типа процесор, тъй като той трябва да бъде инсталиран на компютъра на потребителя. Освен това, тъй като изходният код трябва да бъде „преведен” в машинен код с всяко изпълнение, интерпретираните езици често са бавни в сравнение с еквивалентните компилирани езици. В същото време, преводачите не оптимизират генерирания машинен код, което ги прави по-бавни, но процесът на генериране на машинен код е по-бърз от този на компилаторите.

Езици на виртуалната машина

Често съкратени, те се наричат ​​"VM languages" (в съответствие с аналозите на английското име на виртуалната машина). Принципът на действие и целта на системата за програмиране е, че изходният код не се превежда в машинен код, разбираем за конкретен процесор, а в “фиктивен” (байт-код), който сам по себе си ще се интерпретира от езика на виртуалната машина. Такъв език има предимства и недостатъци.

Както при интерпретираните езици, програмата, компилирана в байт-код, може да работи на всяка операционна система и процесор, при условие че виртуалната машина е достъпна за тази комбинация. От друга страна, тъй като е имало компилация нагоре по веригата, програмата работи по-бързо от еквивалентния интерпретиран език. Често достига скорост, подобна на тази на “истинския” машинен код. Въпреки това, това се изравнява с факта, че виртуалната машина може да бъде много ресурсоемка, особено в паметта.

И накрая, можете да създавате нови езици, които ще бъдат компилирани в същия байт-код като друг съществуващ език, което опростява тяхното взаимодействие. Това е една от задачите на системата за програмиране. Пример за това са езиците Clojure и Frege, които са компилирани за байт-кода на Java. Те са функционални и радикално различни от Java в техния дизайн. В този случай можете да напишете различни части на програмата с един от най-подходящите езици и да ги накарате да работят заедно на виртуална машина. Java е езикът, който е най-добре компилиран във виртуална машина. Но имате нужда от приложение, състоящо се от набор Java класове. В началото на всеки клас има определена структура, като например JavaClassFileFormat.

Системи за програмиране, Java Пример

Примери за езици и програмни системи

Представяне на най-известните програмни езици:

  • Assembler. Той не е нов, но ще научи потребителите на много неща, скрити на други езици.
  • C. Един от най-използваните в света. Този език дава най-пълен контрол над машината. Използва се за кодиране на операционни системи. Нейната почти половинвековна възраст и голям брой библиотеки, които са подходящи за всичко, стават незаменими както за начинаещи, така и за напреднали потребители.
  • Cobol. Това е старият език. Обикновено е по-трудно да се използва от други. По исторически причини обаче той все още се използва широко в банковото дело, финансите и застраховането.
  • Fortran. Тя все още се търси в областта на научните изчисления, за които е разработена. Въпреки че синтаксисът на този език се актуализира редовно, възрастта му се усеща. В допълнение, някои софтуерни библиотеки във Fortran никога не са били сравнявани по отношение на ефективност.
  • Java. Той има функция за компилиране в байтовия код, който след това се интерпретира от виртуалната машина. Това значително опростява създаването на програми за използване на множество операционни системи. Например Java е шлюзът за кодиране на приложение за Android.
  • Perl. Това е език, който е най-ценен в света на Linux и Unixoids. Той е ефективен за създаване на малки, но много мощни приложения за командния ред. Perl обаче не е много подходящ за създаване на графични интерфейси.
  • PHP. Доминиращ в света на уеб програмирането.
  • Python. Този език се препоръчва за начинаещи.
  • Ruby. Свързан с Python, редовно заема иновациите. Като цяло те са много сходни. Можем да кажем, че Ruby предлага повече синтактична свобода и повече настоява за своя обектно-ориентиран характер, а Python е по-лесен и поддържан от по-голяма общност.
  • Суифт. Това е съвсем млад език, подлежащ на промени и корекции, подходящи за продуктите на Apple. През следващите години той може да се превърне в основен продукт за програмиране на приложения за iOS и OSX.

приложение

Представяме пример за машинен код:

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 е резултат от едно такова усилие. Създателят на PASCAL, Никълъс Вирт, искаше HLL, който лесно можеше да се научи, да чете и пише. Той разработи PASCAL въз основа на следните понятия:

  1. PASCAL трябва да затвори или значително да намали семантичната разлика.
  2. Всяко PASCAL изявление трябва да бъде като изречение в английския текст.
  3. Програмата PASCAL може да се разглежда като оферта на английски език.
  4. Имената на процедурите, структурите от данни и променливите в PASCAL трябва да бъдат лесно разпознаваеми.

Пример за система за програмиране в PASCAL

По-долу е даден пример за определяне на броя на буквите в една дума.

Пример за система за програмиране на паскали

PASCAL улеснява модулното кодиране чрез:

  1. Използването на инкапсулиращ код в процедурите и функциите.
  2. Използване на BEGIN и END оператори за определяне на функционален блок от код.
  3. Строга променлива (например, присвояване на типове данни, като цяло число, реално или низ) за поддръжка на пропускане на параметри между процедури.
  4. Приятелски синтаксис, който стеснява семантичната разлика.
Системи за програмиране на Паскал

В дадения пример на системата за програмиране Pascal програмата показва двоичен избор (има само два случая: ActualMark> = 50 или ActualMark <50).

Често срещани грешки при програмирането

Трябва да се избягват общи грешки при кодирането. По този начин потребителят ще спести време и ще избегне проблеми. Видове грешки:

  1. Неправилно форматиране на кода. Трябва да е ясно. Тя трябва да съдържа коментари в горната част на програмата.
  2. Лошо тестване и проверка за грешки. Обработката на грешки има две форми: работа със структурирани изключения и проверка на функционални грешки.
  3. Лоша практика за коментари.
  4. Назовете ненадеждни променливи. Много е трудно да се работи по код, когато много имена на променливи са кратки, а не описателни.
  5. Избор на грешна структура от данни.

Синтаксисните подсветки и стилове на отстъпване често се използват, за да помогнат на програмистите да разпознаят елементите на изходния код.

Цветово кодиране

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