Programski sustavi: primjeri, opisi, značajke

12. 3. 2019.

Programski sustavi pružaju platformu za razvoj aplikacijskog softvera i za izravnu interakciju s računalnom opremom kako bi dobili potrebne performanse pri izvršavanju korisničkih zadataka. Platforma se može koristiti za programiranje iPhone, iPad aplikacija i operacijskih sustava Android pomoću programskog jezika Java. Android Studio i Oracle Java SDK sučelje, u kombinaciji s potrebnim osnovnim znanjima, omogućuju vam stvaranje raznih aplikacija.

Elementi softverskih sustava

Za početak, otkrivajmo koncept programskih sustava. Oni koje sada koristimo pripadaju razdoblju treće generacije računala. Programiranje sustava je izrada softvera. Može obavljati mnoge različite zadatke. Bez nje većina hardvera ne bi izvršavala svoje funkcije. Da biste ih učinili korisnim, koristite softver. Korisnik mora odabrati željeni program za svaki zadatak.

Elementi klasičnog programskog sustava:

  1. Operativni sustav je sučelje između aplikacijskog softvera i računala.
  2. Uslužni programi su mali, ali moćni programi s ograničenim mogućnostima za određene zadatke. Obično koriste korisnici kako bi osigurali nesmetan rad računalnog sustava.
  3. Knjižnični programi su kompilirani skup rutina, na primjer, knjižnice. Osigurajte mnoge značajke i postupke dostupne tijekom pisanja programa.
  4. Softver za prevođenje: asembler, prevodilac, prevoditelj.
  5. Interpreter analizira i izvršava programski jezik visoke razine jedan po jedan redak.
  6. Aplikacijski softver dizajniran za pomoć korisniku u obavljanju određenih zadataka, kao što je GIMP - za uređivanje fotografija.

Primjer suvremenog programskog sustava uključuje servis i osnovni softver.

Koncept programskog sustava

Struktura programa

Opći oblik programa posebnu pozornost posvećuje pojedinim komponentama i odnosu između njih. Programi su dobri ili slabo strukturirani. S dobro strukturiranim programom, dijeljenje komponenti slijedi načela, kao što je skrivanje informacija, na primjer, a sučelja između komponenti su jasna i jednostavna. Na suptilnijoj razini koristi odgovarajuće strukture podataka i softverske jedinice s jednom ulaznom točkom i jednom izlaznom točkom.

Uz loše strukturiran program, podjela na komponente je uglavnom proizvoljna, a sučelja su implicitna i složena. Osim toga, takav program ima proizvoljne strukture podataka i tok upravljanja. Gotovo svi strukturirani programi imaju opći karakter aktivnosti:

  1. Zahtjev za početak programa.
  2. Deklaracija varijable
  3. Izjave programa (blokovi koda).

Pozdrav Svjetskim primjerima

Sustavi programiranja i Hello World pozdrav u različitim programskim jezicima jasno pokazuju osnovne razlike.

Pozdrav pozdravu svijeta

Da bi koristio varijablu unutar programa, prevodilac mora unaprijed znati vrstu podataka koji će biti pohranjeni u njemu. Zbog toga su varijable deklarirane na početku programa.

Deklaracija varijable sastoji se od specificiranja novog imena i tipa podataka za varijablu. To se obično radi na samom početku.

Deklaracija varijable

Sljedeća slika prikazuje primjer programskog sustava za strukturu petlje koja aktivira skup izjava sve dok uvjet nije istinit.

Skup operatora

Beskonačna petlja

To je onaj koji nema funkcionalan izlazni postupak. Zbog toga se ciklus neprestano ponavlja sve dok ga operativni sustav ne prepozna i zaustavi program s pogreškom ili dok se ne dogodi neki drugi događaj, na primjer, program se automatski zaustavlja nakon određenog vremena.

U nastavku su prikazani sustavi programiranja i primjeri C programa za program sortiranja nizova u rječniku. Ovaj program uzima 10 riječi (redaka) od korisnika i sortira ih u leksikografskom redoslijedu. Na primjer, 10 programskih jezika:

  1. C.
  2. C ++.
  3. Java.
  4. PHP.
  5. Python.
  6. Perl.
  7. COBOL.
  8. Ruby.
  9. R.
  10. JavaScript.
C primjeri programa

rezultat:

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

Osnovni alati

Osnovni alati

Za programiranje trebate nekoliko alata. Shema klasičnog programskog sustava:

  1. Uređivač teksta - alati za uređivanje. Ovaj alat omogućuje vam pisanje izvornog koda. To je uobičajen alat za programiranje na bilo kojem jeziku. Doista, pri programiranju cijene cjelinu takvih funkcija kao što su: automatsko dovršavanje, označavanje sintakse, pretraživanje, uređivanje, zamjena dijela koda i uređivanje uvlake.
  2. Kompajler ili tumač. Ovaj je alat izravno povezan s programskim jezikom.
  3. Debugger. Programeri, kao i svi ljudi, mogu biti u krivu. Pronalaženje i ispravljanje pogrešaka zahtijeva vrijeme. Program za otklanjanje pogrešaka je alat koji im pomaže u praćenju. To vam omogućuje da pokrenete program korak po korak, da vidite njegov status u bilo koje vrijeme, kao i da provjerite je li dio koda izvršen ili ne.
  4. Knjižnične rutine
  5. Prateća dokumentacija.

Uzorci dizajna

Korištenje predloška dizajna je strukturirati program ili koristiti jezične alate i što je moguće jasnije kako bi se osigurao sustavan pristup programiranju, kao i povezivanje s bazom predložaka, stvarajući stranicu koja će prikazati prilagođeni izgled. Općenitije, dizajn uzorak je višezadaćnost i napredna rješenja.

Struktura softvera (ili okvir) posebna je vrsta knjižnice softvera. Njegov prvi cilj je povezati programiranje, pružajući što je više moguće alatima koji su vam potrebni. Na primjer, Django 2 je struktura u Pythonu osmišljena da olakša stvaranje reaktivnih web-mjesta. Stvara strukturu i nudi uobičajene alate kojima su sve stranice potrebne (administracijsko sučelje, usluge provjere autentičnosti, način prevođenja stranice na nekoliko jezika itd.).

Drugi primjer je prisutnost nekoliko okvira u JavaScriptu (jQuery ili angular.js) s jednim ciljem - iste radnje trebaju biti napisane drugačije, ovisno o tipu preglednika koji posjetitelj koristi na web stranici. Oni imaju jedinstveno sučelje za pretvaranje u kod koji svaki preglednik razumije. Na slici je primjer programskog sustava u JavaScriptu za zadatak otvaranja novog prozora nakon klika na gumb.

Primjer programskog sustava u JavaScriptu

Sastavljeni jezici

Programski jezik je skup sporazuma i apstrakcija koje vam omogućuju da pišete ono što je potrebno korisniku da bi računalo proizvelo rezultat u razumljivijem obliku. Kompilacija je pretvoriti izvorni kod u izvršnu datoteku. Ovu konverziju izvodi prevodilac. Razlika u brzini izvršenja je ogromna. Općenito, ako su sve ostale jednake, program na kompiliranom jeziku će raditi deset puta brže od interpretiranog. U nastavku je primjer sustava za programiranje C. Prikazuje program koji koristi takozvane funkcije višeg reda i čiste funkcije.

Funkcije višeg reda

U slučaju tumačenih jezika, izvorni kod se dostavlja tumaču koji izvršava program izravno. Nema potrebe brinuti se o operativnom sustavu ili vrsti procesora, jer mora biti instaliran na korisnikovom računalu. Štoviše, budući da izvorni kod mora biti "preveden" u strojni kod sa svakim izvršavanjem, interpretirani jezici su često spori u usporedbi s ekvivalentnim prevedenim jezicima. U isto vrijeme, tumači ne optimiziraju generirani strojni kod, što ih čini sporijim, ali je proces generiranja strojnog koda brži od procesa kompilatora.

Jezici virtualnog stroja

Često se skraćuje, nazivaju se "VM jezici" (u skladu s analogijama engleskog naziva virtualnog stroja). Princip rada i svrha programskog sustava je da izvorni kod nije preveden u strojni kod, razumljiv određenom procesoru, već u "dummy" (bajt-kod), koji će sam po sebi interpretirati jezikom virtualnog stroja. Takav jezik ima prednosti i nedostatke.

Kao i kod interpretiranih jezika, program sastavljen u bajt-kod može se izvoditi na bilo kojem operacijskom sustavu i procesoru, pod uvjetom da je virtualni stroj dostupan za tu kombinaciju. S druge strane, budući da je postojala kompilacija uzvodno, program radi brže od ekvivalentnog interpretiranog jezika. Često doseže brzinu sličnu onoj "pravog" jezika strojnog koda. Međutim, to se izravnava činjenicom da virtualni stroj može biti vrlo resursno intenzivan, osobito u memoriji.

Konačno, možete stvoriti nove jezike koji će biti prevedeni u isti bajtni kod kao i drugi postojeći jezik, što pojednostavljuje njihovu interakciju. To je jedan od zadataka programskog sustava. Primjer je Clojure i Frege jezici su kompilirani za Java bytecode. Oni su funkcionalni i radikalno različiti od Jave u svom dizajnu. U tom slučaju, možete napisati različite dijelove programa s jednim od najprikladnijih jezika i učiniti ih da rade zajedno na virtualnom računalu. Java je jezik koji se najbolje kompilira u virtualni stroj. Ali trebate aplikaciju koja se sastoji od skupa Java klasa. Na početku bilo koje klase postoji određena struktura, kao što je JavaClassFileFormat.

Programski sustavi, Java primjer

Primjeri jezika i programskih sustava

Predstavljamo najpoznatije programske jezike:

  • Asembler. To nije novo, ali će naučiti korisnike mnoge stvari skrivene u drugim jezicima.
  • C. Najviše se koristi na svijetu. Ovaj jezik daje najkompletniju kontrolu nad strojem. Koristi se za kodiranje operacijskih sustava. Njezina dostojanstvena starost od gotovo pola stoljeća i veliki broj knjižnica koje su prikladne za sve, postaju neophodne i za početnike i za napredne korisnike.
  • COBOL. Ovo je stari jezik. Obično je teže koristiti od drugih. Međutim, iz povijesnih razloga još uvijek se široko koristi u bankarstvu, financijama i osiguranju.
  • Fortran. Ona je još uvijek tražena u području znanstvenog računanja, za koje je razvijena. Iako se sintaksa ovog jezika redovito ažurira, osjeća se njezina dob. Osim toga, neke softverske knjižnice u Fortranu nikada nisu uspoređivane u smislu učinkovitosti.
  • Java. Ima značajku kompajliranja u bajtni kod, koji tada interpretira virtualni stroj. To uvelike pojednostavljuje stvaranje programa za korištenje na više platformi operacijskih sustava. Primjerice, Java je pristupnik za kodiranje aplikacije za Android.
  • Perl. To je jezik koji se najviše cijeni u svijetu Linuxa i Unixoida. To je učinkovit za stvaranje malih, ali vrlo moćan aplikacija naredbenog retka. Međutim, Perl nije pogodan za kreiranje grafičkih sučelja.
  • PHP. Dominantna u svijetu web programiranja.
  • Python. Ovaj se jezik preporučuje početnicima.
  • Ruby. Povezan s Pythonom, redovito posuđuje inovacije. Općenito, vrlo su slični. Možemo reći da Ruby nudi više sintaktičke slobode i više insistira na svom objektno orijentiranom karakteru, a Python je lakši i podržan od strane veće zajednice.
  • Swift. To je prilično mlad jezik, podložan promjenama i prilagodbama, pogodan za Apple proizvode. U nadolazećim godinama može postati glavni proizvod programskih aplikacija za iOS i OSX.

primjena

Predstavljamo primjer strojnog koda:

110101010010001000111001001 010101001000100001011101001 000111001101110001101101010 001111010010010101011001010 001010101111110100101010001.

Kao što možete vidjeti, vrlo je malo prepoznatljive strukture u ovoj vrsti koda. U programskim jezicima, semantički jaz je razlika između jezika koji se koristi za programiranje hardvera (strojnog koda) i jezika koji se treba koristiti za programiranje računala kao sustava. Primjer programskog sustava: na strani klijenta JavaScripta potrebna su dva jezika, osim onog koji generira JavaScript (CoffeScript ili Elm).

Na strani poslužitelja, PHP drži najviše pozicije, ali Python i Ruby se također aktivno koriste. JavaScript se također koristi na strani poslužitelja, zahvaljujući NodeJS-u. Za videoigre na Windowsima koriste se C ++, Python i C #. Međutim, oni nisu jedini. Svaki jezik koji olakšava stvaranje grafičkog sučelja može biti prikladan (C, Java, Ruby ili Tcl / Tk).

Za velike aplikacije, C ++ i Java dominiraju tržištem, iako C # također dobiva na zamahu. Za male utilitarne aplikacije, osobito u naredbenom retku, lako je pronaći C, Perl, Python ili Ruby. U području znanstvenog računalstva Fortran je i dalje kralj. Sve se više natječe s C ++, Python ili specijaliziranim jezicima kao što su Matlab i R.

PASCAL programiranje

Kroz povijest računalstva stotine su pokušaja da se jezici za programiranje računala, kao što je pisani engleski, lako čitaju i razumiju. PASCAL je rezultat jednog takvog napora. Tvorac PASCAL-a, Nicholas Wirth, htio je HLL, koji se lako može učiti, čitati i pisati. Razvio je PASCAL na temelju sljedećih koncepata:

  1. PASCAL bi trebao zatvoriti ili znatno smanjiti semantički jaz.
  2. Svaka izjava PASCAL-a trebala bi biti kao rečenica u engleskom tekstu.
  3. Program PASCAL može se smatrati ponudom na engleskom jeziku.
  4. Nazivi postupaka, struktura podataka i varijabli u PASCAL-u trebaju biti lako prepoznatljivi.

Primjer programskog sustava u PASCAL-u

U nastavku slijedi primjer za određivanje broja slova u riječi.

Primjer Pascalovog programskog sustava

PASCAL olakšava modularno kodiranje prema:

  1. Korištenje enkapsulacijskog koda u postupcima i funkcijama.
  2. Koristeći BEGIN i END operatore za definiranje funkcijskog bloka koda.
  3. Stroga varijabla (na primjer, dodjeljivanje tipova podataka, kao što je cijeli broj, pravi ili niz) kako bi se podržali prolazni parametri između postupaka.
  4. Prijateljska sintaksa koja sužava semantički jaz.
Pascal programski sustavi

U danom primjeru Pascalovog programskog sustava program pokazuje binarni izbor (postoje samo dva slučaja: ActualMark> = 50 ili ActualMark <50).

Uobičajene pogreške u programiranju

Treba izbjegavati uobičajene pogreške kodiranja. Tako će korisnik uštedjeti vrijeme i izbjeći probleme. Vrste pogrešaka:

  1. Pogrešno oblikovanje koda. Trebalo bi biti jasno. Trebao bi sadržavati komentare na vrhu programa.
  2. Loše testiranje i provjera pogrešaka. Obrada pogrešaka ima dva oblika: rukovanje strukturiranim iznimkama i funkcionalna provjera pogrešaka.
  3. Loša praksa komentiranja.
  4. Navedite nepouzdane varijable. Vrlo je teško raditi na kodu kada su mnogi nazivi varijabli kratki, a ne opisni.
  5. Odabir pogrešne strukture podataka.

Sintaksni stilovi isticanja i uvlačenja često se koriste kako bi pomogli programerima da prepoznaju elemente izvornog koda.

Kodiranje boja

Važno je da je kodiranje boja istaknuto u fragmentu koda kao primjer programskog sustava napisanog u Pythonu.