Različiti programski jezici i njihov opseg. Predavanje u Yandexu. Moderni programski jezici i njihovo korištenje programskih jezika

Da biste riješili računalne zadatke, grafički procesori se sve više koriste, ali je pitanje još uvijek otvoreno: kako napisati učinkovite programe za relevantne konfiguracije?

06/15/2011 Andrei Adineta

Da biste riješili računalne zadatke, grafički procesori se sve više koriste, ali je pitanje još uvijek otvoreno: kako napisati učinkovite programe za relevantne konfiguracije? Standardna rješenje - hrpa Cuda ili OpenCl - omogućuje vam relativno brzo implementirati algoritmu, ali je teško stvoriti određenu konfiguraciju uz njihovu pomoć. Zahtijeva alate za programiranje grafičkih procesora na visokoj razini koji se mogu stvoriti, na primjer, uz pomoć proširivih jezika.

Prije tri godine, grafička oprema procesora (grafička procesorska jedinica, GPU) razmatrani su samo kao video kartice za računalo, sada je stav prema njima promijenjen - postoje posebni GPU poslužiteljski modeli usmjereni na rješavanje računalnih zadataka, učinak na izračunavanje dvostrukog točnosti , Rad izvedbe sustava, koji zauzimaju vrhunske linije u Top500. Kako napisati učinkovite programe za takve strojeve? Standardni odgovor - hrpa Cuda ili OpenCl za GPU i MPI programiranje na razini klastera. Ovi alati su dostupni, aktivno su podržani od strane proizvođača opreme, mnogi su programi već napisani za njih, ali postoje i nedostaci.

Cuda i OpenCl - Proširenja SI jezika, one nisu teško proučavati, iako su dovoljno niske razine. Uz njihovu pomoć, možete relativno brzo implementirati GPU algoritam, ali je verzija optimizirana za određenu aplikaciju i konfiguracija je mnogo složenija. Sve optimizacije će se obaviti ručno, što će dovesti do povećanja veličine koda i pogoršanja njegove čitljivosti. I iako se programi stvoreni koristeći OpenCL će se prenijeti između širokog raspona arhitektura, izvedba s takvim prijenosom neće se spremiti. Željeli su alate za programiranje GPU viših razina.

Stvaranje takvih alata može se stvoriti na različite načine: unesite novi programski jezik; Dodajte direktive na postojeći jezik, kao što je učinjeno u PGI-u ili CAPS HMPP modelu; Iskoristite proširive jezike. Proširivi jezici- Programski jezici, sintaksa i semantika koji nisu fiksni, a mogu se mijenjati ovisno o potrebama programera. U usporedbi s tradicionalnim, proširivim jezicima imaju brojne prednosti: lakše je dodati nove značajke; Oni su otvoreni; Proučavanje novih programskih modela na temelju takvih jezika je lakše, jer je potrebno učiti samo relativno mali u smislu ekspanzije; Uz pomoć takvih jezika lakše je izvršiti finu konfiguraciju i optimizaciju programa.

Proširivi jezici

Da bi se jezik proširio, potrebno je biti prisutan u njoj:

  • mehanizam za proširenje bez promjene kompilatora podjednako je podržan od strane svih kompilatora, što znači, posebno, prisutnost standardnog sučelja interakcije s presvlakama;
  • dizajniranje za širenje i manipulaciju s kodom koda, kao što su makronaredbe ili kvazicizacija, proširiti jezik;
  • snažna sredstva za pisanje, na primjer, samog jezika koji se može proširiti i drugi jezik, čija snaga sugerira da se produžni kod može učiniti isto kao i svaki program na ovom jeziku.

Ispada da su jezici koji ispunjavaju ove zahtjeve relativno malo: lisp, nemerle, sjeme7, XOC i Stratego. U isto vrijeme, XOC, koji je namijenjen za proširenje SI jezika, koristi poseban Zeta jezik za pisanje ekstenzija, a Stratego je jezik predmetnog područja za stvaranje izvornih konvertera. Nemerle je proširiv jezik koji koristi srijedu. NETO.

Svi proširivi jezici podržavaju mehanizme za rad s programom programa, a iznad svega ovog dizajna kvazicizacije - specifikacija objekta koji predstavlja programsko stablo, koristeći najravniji kod.

U nemerle jeziku, dizajn se koristi za to, na primjer, stvara stablo koje se sastoji od varijable i deklaracije s početnom vrijednošću 0. Kvazicizacija je slična stvaranju gudačkih objekata s konstantnim konstantama. Na sl. Slika 1 prikazuje primjer kvazicizacije. Dizajn interpolacije omogućuje vam da zamijenite vrijednosti varijabli u fiksnom uzorku unutar kvazicizacije. U nemerleu, koristi $ (...) dizajn za to ako želite zamijeniti popis, na primjer. Također u proširivim jezicima nalaze se dizajni za analizu stabla programa. U nemerle jeziku, se koristi utakmica operatera (...) (...), analog o prekidaču s jezika Si, kao što su grane koje koriste dizajne kvazicizacije. U tom slučaju interpolacija se tretira kao oglasna nova varijabla, koja, ako uspješna usporedba, primaju vrijednosti odgovarajućih podreda. Na primjer, za odgovarajući operator utakmice (e) (| \u003d\u003e ...), ako E sadrži stablo, u varijabli koju će pasti, iu varijabli B.

Alati za rad s drvetom programa koriste se u dizajnu jezika. U nemerle jeziku, makronaredbe su posebne značajke koje se izvode na fazi kompilacije i vraćaju fragment programskog stabla koji je supstituiran u položaj njihovog poziva. U isto vrijeme, makro, makro, uzima fragmente programa kao parametre i može ih transformirati. U načelu, makro može biti uzrokovana na isti način kao i uobičajena funkcija; No, zanimljivija prilika je vezati makro poziv na posebnu sintaksu. To vam omogućuje da unesete nove sintaksne konstrukte u nerlele jeziku i tako proširite jezik.

Na sl. Slika 2 prikazuje primjer makronamjerne s sintaktičkim produžetkom, koji vam omogućuje da proglasite višedimenzionalni ciklus s varijablama i brojem iteracija za svako mjerenje, i na Sl. 3 Ovo je primjer pretvorbe programa koji čini ovu makronaredbu. Imajte na umu da makronaredba koja vježba takvo proširenje traje manje od 30 reda izvora koda iu ovom slučaju uključuje nekoliko provjera pogrešaka. Uz tradicionalni pristup, provedba takvog proširenja zahtijevalo bi znatno veći broj koda i, osim toga, zahtijevalo bi proučavanje unutarnjeg uređaja za kompilaciju.

Povijesno gledano, makro mehanizam u Lispu prvi put pojavio, program u kojem se čini kao redoviti popis i ne zahtijeva posebne dizajne za rad s stablom programa, tako da je bio na ovom jeziku da je proširivo programiranje postalo najveći distribucija. Makronaredbe u nemerleu su slične u Lispu. U XOC sustavu, mehanizam za proširenje se implementira kroz gramatičke ekspanzije i atributa stabla parsiranja. Svako proširenje nužno postavlja dva atributa: vrstu dizajna sintakse i izraz na baznom jeziku u kojem se pretvara.

Za proširive jezike, provedba mnogih standardnih struktura karakteriziraju makronaredbe. U nemerle jeziku, svi ciklusi i uvjetni operatori, osim utakmice, provode se kroz makronaredbe, a u lišavim makronaredbi su standardni ciklusi i deklaracija funkcija.

Kako koristiti jezike?

Za proširiv programski jezik, možete pisati strukture koje omogućuju najpogodniji način za programe grafike procesore, koji je učinjen kao dio projekta NUDA (nemerle jedinstvena arhitektura uređaja), čija je svrha stvaranja ekstenzija jezika nemerle za GPU programiranje. OpenCl se koristi kao sučelje interakcije s GPU i ciljnim jezikom za predstavljanje programa.

Za početak, potrebno je provesti izvršenje na podskupinu GPU-a u nemerle jeziku. To mora biti podržano uobičajenim jezičnim operatorima, kao što su ciklusi i grane, kao i rad s jednostavnim vrstama podataka, struktura i nizovima. Kod za GPU se podnosi individualnim funkcijama ili u Nuda kernelu. Svaki kernel označen je Nukernel makro, koji se generira kod koda na OpenCL kodu i način utikača za nazivanje kernela na strani domaćina. Prije stvaranja koda provodi se otkrivanje svih makronaredbi, s izuzetkom ciklusa i grana makronaredbi. Ako je unutar kernela potrebna za pozivanje funkcije, ova funkcija mora biti označena makrodacijom Nucodea, koja će generirati kod za ovu funkciju u OpenCl. Glavni poziv se provodi pomoću makroacinske makro; Osim kernela parametara, također se prenosi na konfiguraciju streamske mreže s kojom počinje.

Najčešće se tijelo ciklusa koristi kao jezgra za GPU, pa bih htio odmah prenijeti ciklus na GPU. U nerlele, to se može implementirati - odgovarajući makro u Nuda naziva se Nuwork. Potrebni parametri, potrebno je veličinu bloka struje i na temelju trenutnog konteksta i analiza koda ciklusa tijela određuje skup varijabli koje se moraju prenijeti na kernel kao parametre. Tijelo kernela se generira iz tijela ciklusa, izračunavanje indeksa ciklusa kroz globalni broj protoka, kao i uvjete koji vam omogućuje ispravno izvršavanje ciklusa, čak i ako se globalna veličina mreže ne podijeli u veličinu protočna skupina. Nucijska makro poziva na mjesto ciklusa, koji naziva generirani kernel.

U principu možete dopustiti korištenje nemerle jezičnih nizova u GPU programima, ali dovodi do visokih troškova na čelu - polje je potreban za kopiranje na GPU memorije svaki put kada se zove kernel, a zatim ga kopirajte. Stoga se u GPU programima koriste posebne vrste nizova s \u200b\u200blijenom sinkronizacijom između GPU-a i CPU-a. To omogućuje, s jedne strane, da ne spojite tekst programa kopiranjem podataka naredbi, a na drugoj - kako bi se izbjegli režijski podaci za kopiranje. Za takve polja, kao i za uobičajene nizove u nerlele, upravljanje memorijom se koristi pomoću kolekcije smeća. Da biste istaknuli memoriju za takve polja, postoji Nunew makro, koji se mora primijeniti na uobičajeni operator dodjele memorije.

Na sl. 4 s lijeve strane je konvencionalni program polja, a na desnoj strani - sličan program, ali izvođenje izračuna na GPU. Dobijte GPU programe od uobičajenog jednostavno - samo primjenjuju makronaredbe u cikluse i operacije dodjele memorije, a količina koda praktički se ne mijenja. Program napisan korištenjem Nuda traje manje od 20 redaka koda. Sličan program, ali u čistom jeziku SI i Opencl traje više od 100 linija.

Osim makronaredbi, olakšavajući rad s GPU-om, sustav proširenja NUDA također uključuje napomene za pretvaranje ciklusa. Značajke su u osnovi posebne makronaredbe. Na primjer, inline sažetak se koristi za ciklus s fiksnim brojem iteracija i obavlja svoj potpuno skeniranje. Dmine Sažetak izvodi duboko skeniranje ciklusa. "Duboko skeniranje" znači da se stvaranje nekoliko primjeraka ciklusa tijela i miješanje provodi ne samo za najkvalitetniji ciklus, već i za ugniježđene cikluse, ako su neovisni.

Posljedica

Zašto bi programer trebao naučiti novi jezik i razviti nove knjižnice proširivih jezika? Glavni odgovor je produktivnost. Imajući algoritam iz paralelnih ciklusa koji rade s nizovima i zabilježeni u nemelekskom jeziku, dovoljno je dodati nekoliko napomena da biste dobili program za GPU. U isto vrijeme, program će se izvršiti na bilo kojem uređaju s OpenCl podrškom, uključujući NVIDIA i AMD grafičke procesore, kao i X86 procesore. Da bi se postigla ista sa samo Opencl ili Cuda Technologies, bit će potrebno potrošiti mnogo više resursa koji će se održati ne samo za pisanje izvorne kome, već i za uklanjanje pogrešaka između domaćina i GPU-a.

Drugi razlog je izvedba stvorenog koda. Na Cuda ili OpenCl, konverzija ciklusa će se obaviti ručno, a odvojeno za svaku arhitekturu. To je proces dugog i omotanog pogrešaka, a rezultirajući kod je težak i nezgodan za pratnju. Uz Nuda, ovaj se rad može obaviti uz pomoć napomena. Na primjer, za više jezgri možete optimizirati konvoluciju slika ili množenja matrica s inline i Dmine označavanja. Bez povećanja veličine izvornog koda moguće je postići povećanje produktivnosti u dva ili pet puta. U isto vrijeme, ako su iste transformacije provedene ručno, to bi u vremenu dovelo do povećanja koda, a ponekad i reda veličine, da ne spominje vrijeme provedeno vrijeme na ispravljanje pogrešaka i odabiru optimalnih parametara pometa. Na primjer, univerzalni zamjenjivi program od sedam redova u Nuda umnožavanje prenesene matrice na matrici s dvostrukom točnosti izvodi se na Nvidia Tesla C2050 samo 40% sporiji pravu stvar u trenutku implementacije (Cublas 3.2). Sličan program napisan rukom zauzimao bi 70 linija koda. Naravno, za standardne zadatke možete ručno pisati kod jednom za povećanje produktivnosti, ali za određene zadatke, smanjenje troškova rada i produktivnost bit će vrlo korisno. Konačno, povećanje produktivnosti također uključuje stvaranje samih ekstenzija: da ih stvoriti uz pomoć proširivih jezika je lakše od korištenja tradicionalnih alata. Cijeli Nuda sustav, unatoč njegovoj funkcionalnosti, traje samo 12 tisuća linija koda, a ne prebrojavanje testova. To je relativno malo, na primjer, nemeleks jezični prevodilac (sklop 9025) traje oko 130 tisuća linija.

Ekspanzirani jezik je moćan alat, a njegova uporaba u paralelnim izračunima je još uvijek u najpotrebnom stanju. Postoje mnogi zanimljivi zadaci u razvoju paralelnih programskih jezika, a bilo koji od njih se može riješiti pomoću kombinacije proširenja i knjižnica. Možete dodati asinkrone blokove koda i paralelne cikluse na jezik, možete stvoriti praktične dizajne za programiranje cluster sustava, kao što su distribuirane nizove. Konačno, moguće je koristiti proširenja za izgradnju punog paralelnog programskog jezika, kao što je kapela ili X10.

Andrey adineta([Zaštićeno e-poštom]) - M.N.S. Državno sveučilište Nivz Moskva (Moskva).



Naslov izvješća

Moderni programski jezici i njihova uporaba

Autor projekta

Struktura projekta

● Shema klasifikacije programskog jezika

● Klasifikacija programskih jezika

● Pregled programskih jezika

● Korisni resursi

Programski jezici sheme klasifikacije

Klasifikacija programskih jezika

Proceduralno programiranje - Postoji odraz pozadine Nymanovsk arhitekture računala. Program napisan na proceduralnom jeziku je slijed naredbi koje određuju algoritam rješavanja problema. Glavna ideja proceduralnog programiranja je korištenje memorije za pohranu podataka. Glavna naredba dodjeljuje, koja se određuje i memorija računala se mijenja. Program čini pretvorbu memorijskog sadržaja mijenjajući ga iz izvorno stanje na rezultat.

Postoje slični programski jezici:

 Fortran jezik nastao je početkom 50-ih godina 20. stoljeća za programiranje znanstvenih i tehničkih zadataka;

 Cobol - stvoren krajem 60-ih godina 20. stoljeća kako bi se riješili probleme obrade velikih količina podataka pohranjenih na različitim nosačima podataka;

 Algol (1960.) je višenamjenski napredni programski jezik. Po prvi put su uvedeni pojmovi "blok strukture programa" i "dinamička distribucija memorije";

 Sredinom 60-ih godina 20. stoljeća stvoren je specijalizirani programski jezik za početnike - osnovno. Karakterizira se jednostavnost razvoja i prisutnosti univerzalnih sredstava za rješavanje znanstvenih, tehničkih i ekonomskih zadataka, kao i zadataka, na primjer, igranja.

Svi gore navedeni jezici bili su usmjereni na različite klase zadataka, ali su na ovaj ili onaj način bili vezani za određenu računalnu arhitekturu.

 u 1963-1966, stvoren je višenamjenski univerzalni jezik PL-1. Ovaj jezik je dobro prilagođen za istraživanje i planiranje računalnih procesa, modeliranje, rješavanje logičkih zadataka, razvoj sustava matematičke podrške.

 Pascal jezik (Pascal) (1968-1971gg) - proceduralni programski jezik je najpopularniji za PC, koji se trenutno uspješno primjenjuje. Pascal jezik temelji se na zajedničkom zadatku privatnog (jednostavniji i manje u volumenu). Osnovna načela s kojima posjeduje Pascal može biti: a) strukturno programiranje, koje se temelji na korištenju potprograma i neovisnih struktura podataka; b) Programiranje "odozgo prema dolje" kada je zadatak podijeljen na jednostavne, neovisno riješene zadatke. Tada je otopina početnog problema potpuno napunjena.

The U proceduri programski jezici uključuju jezik pakla (1979 d), jezik je nazvan po prvom programeru prozoru Bairon lavayers. Ima modularnost struktura.

 SI jezik (početak 70-ih) također se odnosi na proceduralne programske jezike. Njegova početna opcija planirana je kao jezik za provedbu UNIX operativnog sustava umjesto asemblera. Jedna od značajki SI jezika je da su razlike između izraza i operatora izglađuju, što ga dovodi na funkcionalne programske jezike. Osim toga, ne postoji koncept postupka na C jeziku, a korištenje potprograma temelji se na konceptu funkcije koja može kombinirati sposobnosti postupka. S jedne strane, na skupu kontrolnih struktura i struktura podataka, može se pripisati jezicima na visokoj razini, a na drugom - ima skup sredstava izravnog pristupa računalnim funkcionalnim čvorovima, što znači da može koristiti kao radni jezik.

Objektno orijentirano programiranje (oop) - Ovo je metoda programiranja, kada se koriste glavni elementi programa su objekti. U programiranju jezika, objekt objekta provodi se kao skup svojstava (strukture podataka karakterističnih za ovaj objekt), metode obrade (potprograma za promjenu svojstava) i događaje na koje ovaj objekt može reagirati i, koji su obično u pravilu , promijeniti svojstva objekta. Kombinirajući podatke i tretiranje njihovih postupaka obrade u jednom objektu naziva se enkapsulacija i jedan je od najvažnijih načela OOP-a.

Drugi temeljni koncept je razred. Klasa je predložak na temelju kojeg se može stvoriti određeni programski objekt, opisuje svojstva i metode koje određuju ponašanje objekata ovog razreda. Svaki specifični objekt koji ima strukturu ove klase naziva se primjer.

Sljedeća najvažnija načela OOP-a su nasljedstvo i polimorfizam. Nasljeđivanje uključuje stvaranje novih klasa na temelju postojećih i omogućuje djetetu da potomku ima (nasljeđuje) sva svojstva roditeljskog razreda.

Polimorfizam znači da rođeni objekti imaju informacije o tome koje metode trebaju koristiti ovisno o tome koji su lanci u kojima su.

Još jedan glavni princip OOP-a je modularnost - objekti prilažu cijelu definiciju njihovih karakteristika, bez definicija metoda i svojstava ne bi trebala biti smještena izvan nje, čini slobodno kopiranje i uvođenje jednog objekta drugima.

Najnapredniji programski jezici su C ++ i Java. Od sredine 90-ih, mnogi su objektno orijentirani jezici provode se kao sustavi vizualnog dizajna u kojem je sučelje dio softvera je stvoren u načinu dijaloga, praktički bez pisanja softverskih operatora. Objekt orijentirani vizualni dizajn sustavi uključuju Visual Basic, Delphi, C ++ Builder, Visual C ++. VBA Jezik (Visual Basic za primjenu) - Jezik aplikacije Microsoft Office (Excel, Word, Power Point, itd.). VBA je u skladu s glavnom sintaksom jezika i programiranja pravila osnovnih - dijalekata, omogućuje stvaranje makronaredbi za automatizaciju nekih operacija i grafičko korisničko sučelje, integraciju između različitih softverskih proizvoda.

Deklarativni programski jezici

To uključuje funkcionalne i logičke programske jezike. Funkcionalno programiranje je način izrade programa u kojima je jedino djelovanje funkcionalni poziv. Funkcionalno programiranje ne koristi memoriju kao mjesto za pohranu podataka, te se stoga ne koriste međuproizvode, dodjeljivanja i ciklusa operatora. Ključni koncept na funkcionalnim jezicima je izraz. Program napisan na funkcionalnom jeziku je slijed opisivanja funkcija i izraza. Izraz izračunava informacijski kompleks na jednostavan. Svi izrazi se bilježe u obliku popisa. Prvi jezik bio je Lisp (Lisp, obrada popisa - obrada popisa) nastala je 1959. godine. Ovaj jezik omogućuje vam da obradite velike količine tekstualnih informacija. Logičko programiranje je programiranje u smislu logike. Godine 1973. stvoren je jezik umjetne inteligencije Prolog (Prolog) (programiranje u logici). Prolog se temelji na redoslijedu činjenica i pravila, a zatim odobrenje koje Prolog pokušava dokazati uz pomoć pravila. Sam jezik traži rješenje koristeći metode pretraživanja i usporedbe koje su položene u njega. Logički programi se ne razlikuju velikom brzinom, budući da se proces njihovog izvršenja svede na izgradnju izravnih i obrnutih lanaca obrazloženja s različitim metodama pretraživanja.

Pregled programskih jezika

Asembler

Računalni programski jezici podijeljeni su u dvije glavne skupine:

1) jezici niske razine;

2) jezici na visokoj razini.

Niska razina jezici uključuju skupljanje jezika. Oni su primili svoje ime u ime programa sklopivog sustava, koji pretvara izvorne programe napisane na takve jezike izravno na kodove stroja naredbi. Dijelovi ovdje su operateri, a sklop rezultat sekvence stroja naredbe koje se skupljač kombinira prednosti jezika naredbi stroja i neke značajke jezika na visokoj razini. Assembler pruža mogućnost primjene simboličkih imena u izvorni program i eliminira programera od zamornog rada (neizbježno kada programiranje na jeziku strojnih naredbi) na raspodjeli računalne memorije za naredbe, varijable i konstante.

Assembler vam omogućuje fleksibilno i u potpunosti koristite tehničke mogućnosti računala, kao i jezik naredbi stroja. Izvorni prevoditelj u asembleru je lakši od prevoditelja potrebnog za programski jezik na visokoj razini. Na asemburu možete pisati tako učinkovite u veličini i vremenu za izvršavanje programa, kao i program na jeziku naredbi stroja. Ovo dostojanstvo je odsutno na visokoj razini jezika. Ovaj se jezik često koristi za programiranje sustava u stvarnom vremenu, tehnološkim procesima i opremi, osiguravajući rad informacija i mjernih kompleksa. Takvi sustavi obično imaju visoke zahtjeve za volumen okupirane strojne memorije. Često se asembler jezik nadopunjuje pomoću formiranja makrokomanda, od kojih je svaki ekvivalentan cijeloj skupini naredbi stroja. Takav jezik naziva se jezik makroazmera. Upotreba poppy "građevinskih" blokova i donosi jezik asemblera na jezik visoke razine. Tekumbler ovisan o stroju, tj. Odražava karakteristike arhitekture određene vrste računala

Pascal

Pascal programski jezik razvio je profesor Odjela za računarstvo Švicarskog saveznog instituta za tehnologiju Nikolas Djevice 1968. godine kao alternativa postojećim i svim kompliciranim programskim jezicima, kao što je PL / 1, Algol, Fortran. Intenzivni razvoj Pascala doveo je do izgleda 1973. godine svoj standard u obliku revidirane poruke, a broj prevoditelja s ovog jezika 1979. premašio 80. U ranim 80-ih, Pascal je još više ojačao svoj položaj s pojavom MS-a -Paskalni i turbo prevoditelji -Paskalni za Pevm. Od tog vremena Pascal postaje jedan od najvažnijih i najraširenih programskih jezika. Bitno je da je jezik već dugo bio izvan opsega akademskog i uskog profesionalnog interesa te se koristi u većini sveučilišta u visoko razvijenim zemljama ne samo kao korisnički alat. Najvažnija značajka Pascala je utjelovljena ideja strukturnog programiranja. Još jedna bitna značajka je koncept strukture podataka kao jedan od temeljnih koncepata.

Glavni razlozi za popularnost Pascala su sljedeći:

Jednostavan jezik omogućuje vam da brzo ovladate i stvorite algoritski kompleksne programe.

Razvijeni alati za prikazivanje struktura podataka omogućuju praktičnost numeričkih i simboličkih i bitnih informacija

Prisutnost posebnih tehnika za stvaranje prevoditelja iz Pascala pojednostavio je njihov razvoj i pridonijelo široko rasprostranjenom jeziku

Optimiziranje svojstava prevoditelja iz Pascala omogućuju vam stvaranje učinkovitih programa. To je služilo kao jedan od razloga za korištenje Pascala kao jezičnog jezika jezika.

U Paskalnom jeziku se provode ideje strukturalnog programiranja, što program čini vizualnim i daje dobre mogućnosti za razvoj i ispravljanje pogrešaka

Bell Labs Zaposlenik Denis Ritci stvorio je C jezika 1972. godine tijekom suradnje s Ken Thompson, kao alat za provedbu UNIX operativnog sustava, no popularnost ovog jezika brzo je zaradio okvir određenog operativnog sustava i specifičnih zadataka programiranja sustava. Trenutno, bilo koji instrumentalni i operativni sustav ne može se smatrati potpunim ako njezin sastav ne uključuje C jezični prevodilac. Ritchee nije izmislio SI jednostavno iz glave - prototip je bio jezik BI koji je razvio Thompson. SI programski jezik razvijen je kao sredstvo za praktičare. U skladu s tim, glavna svrha autora bila je stvoriti prikladan i koristan jezik u svim aspektima.

SI je sustav programera sustava i omogućuje vam da duboko popnete u suptilnije mehanizme za obradu informacija na računalu. Iako jezik zahtijeva programer visoke discipline, nije strogo u formalnim potraživanjima i dopušta kratke formulacije.

C - moderni jezik. To uključuje i dizajne upravljanja koji preporučuju teoriju i praksu programiranja. Njegova struktura potiče programer da koristi dizajn prema dolje, strukturnog programiranja i modula korak po korak.

C - snažan i fleksibilan jezik. Većina UNIX operativnog sustava, kompajleri i tumači FORTRAN jezika, Pascal, Lisp i Baisik napisani su upravo uz pomoć.

C - praktičan jezik. Udatko je strukturiran za održavanje dobrog stila programiranja i istovremeno nije povezan s uskim ograničenjima. U nekom smislu, SI jezik je najokrutniji, jer Osim skupa sredstava svojstvenog modernim programskim jezicima na visokoj razini (strukturna, modularnost, specifični tipovi podataka), uključuje softver za programiranje praktički na razini asemblera. Veliki skup operatora i sredstava zahtijeva alatemer oprez, točnost i dobro poznavanje jezika sa svim IHO prednostima i nedostacima.

C ++ se pojavio početkom 80-ih. Stvorio bieranian StuRastrap s početnom svrhom da se spasi i njihove prijatelje iz programiranja na asembler, SI ili razne druge jezike na visokoj razini.

Prema autoru jezika, razlika između ideologije SI i C ++ je približno kako slijedi: Program na C odražava procesor "metoda razmišljanja", a C ++ je metoda programera za razmišljanje. Odgovarajući na zahtjeve suvremenog programiranja, C ++ se fokusira na razvoj novih vrsta podataka najteža relevantnih koncepata odabranog područja znanja i zadaća zahtjeva. Klasa je ključni koncept C ++. Opis klase sadrži opis podataka potrebnih za predstavljanje objekata ove vrste i skup operacija za rad sa sličnim objektima.

Za razliku od tradicionalnih C i Pascal struktura, članovi razreda nisu samo podaci, već i funkcije. Funkcije - članovi klase imaju povlašteni pristup podacima unutar objekata ove klase i pružaju sučelje između tih objekata i ostatka programa. Uz daljnji rad, apsolutno nije potrebno zapamtiti unutarnju strukturu klase i mehanizam rada ugrađenih značajki. U tom smislu, klasa je slična električnom namještaju - nekoliko ljudi zna o svom uređaju, ali svi znaju kako ga koristiti.

C ++ jezik je sredstvo za programiranje objekta, najnovije metode projektiranja i provedbe programa, koji će u tekućem desetljeću najvjerojatnije zamijeniti tradicionalno proceduralno programiranje. Glavni cilj Stvoritelja jezika Dr. Birn Strastard bio je opremljen C ++ konstrukcijama, omogućujući povećanje produktivnosti programera i olakšava proces svladavanja velikih softverskih proizvoda.

Apstrakcija, implementacija, nasljeđivanje i polimorfizam su potrebna svojstva s kojima C ++ jezik ima, tako da to nije samo univerzalno, kao i c jezik, već je jezik objekta. Fortran Fortran je široko raspodijeljen jezik, osobito među korisnicima koji se bave numeričkim modeliranjem. To se objašnjava s nekoliko razloga:

Postojanje velikih sredstava aplikacijskih programa na tvrđavi akumulirane tijekom godina, kao i prisutnost velikog broja programera koji učinkovito koriste ovaj jezik;

Prisutnost učinkovitih Tranthrane prevoditelja na svim vrstama računala, te verzija za razne strojeve je prilično standardizirana i prijenos programa s stroja na stroj obično nije veliki;

U početnoj orijentaciji Fortana na fizičke i matematičke i tehničke primjene; Posebno se očitovao da je dugo vremena ostao jedini jezik s ugrađenim integriranim vrstama varijabli i velikim skupom ugrađenih funkcija za rad s takvim varijablama.

Tijekom proteklog razdoblja formirana je nova metodologija i programska filozofija. Od početka 70-ih, Ford je zasluženo kritiziran. Godine 1977. usvojen je novi standard Fortran-77. Trebalo je dugo vremena za stvaranje novog standarda, ali sada je već moguće pretpostaviti da je njegov razvoj završen i novi standard Fortran-90 počeo je ući u praksu korisnika urtana. Samo na IBM PC strojevima postoji nekoliko prevoditelja, na primjer, Watfor, Lap-Fortran, itd. No, najveća distribucija na strojevima ovog tipa dobio je razne verzije Fortran-77 prevoditelja. Prevoditelj MS-FORTRAN 5.0 objavljen je 1990. gotovo u potpunosti u skladu s standardom Fortran-90. Većina velikih znanstvenih i tehničkih programa za prijavu napisan je na Fortran jer ima tolerirati i stabilnost, kao i zbog prisutnosti ugrađenih matematičkih i trigonometrijskih funkcija. Dodatni, sastavni dio bilo kojeg aplikacijskog programa u Fortran je proširena grafička knjižnica, koja omogućuje korištenje različitih grafičkih podataka i slika.

Jezik je izrađen uglavnom 1975. - 1980. kao rezultat velikog projekta koji je proveo američki Ministarstvo obrane za razvoj jedinstvenog programskog jezika za takozvane ugrađene sustave (tj. Kontrolni sustavi automatiziranih kompleksa koji djeluju u stvarnom vremenu) , Prije svega, na licu mjesta kontrole sustava za upravljanje vojnim objektima (brodovi, zrakoplovi, spremnici, rakete, školjke itd.). Stoga odluke koje autori uzimaju univerzalne. Oni moraju biti percipirani u kontekstu značajki odabranog subjekta. Jezik adaplacije nastao je kao rezultat međunarodnog natjecanja jezičnih projekata održanih 1978-1979. Sudionici su trebali biti zadovoljni prilično teškim, osmišljeni pod pokroviteljstvom Ministarstva obrane SAD-a sa zahtjevima. Zanimljivo je da su svi jezici koji su se došli do posljednjih rundi ovog natjecanja temelje se na Pascalu. U tom smislu, dovraga se može prethodno okarakterizirati kao Pascal, razvijen, uzimajući u obzir gore navedene pet osnovnih zahtjeva. U isto vrijeme, autori su se uglavnom krenuli na putu širenja Pascala s novim elementima. Kao rezultat toga, pokazalo je znatno složeniji jezik.

Kobol.

Cobol je relativno stari jezik, dizajniran prvenstveno za istraživanje u ekonomskoj sferi. Jezik vam omogućuje da učinkovito radite s velikim brojem podataka, zasićenim različitim mogućnostima pretraživanja, sortiranjem i distribucijom. O programima na kobolu na temelju širokog korištenja engleskog jezika, kažu da su čak i razumljivi onima koji ne posjeduju Cobol, kao tekstovi u ovom programskom jeziku ne trebaju nikakve posebne komentare. Takvi se programi nazivaju samo-dokumentiranje. Ostale prednosti Cobola obično uključuju njegovu strukturu. Prilično moćni sastavljači s ovog jezika namijenjeni su osobnim računalima. Neki od njih su tako učinkoviti da je program koji je dečki dešljiv na osobnom računalu lako prenijeti na velika računala.

Popis minusi ne smije se pamtiti da se samo najjednostavniji algebarski izračuni mogu programirati na kobol. Kod inženjerskih izračuna, ovaj jezik nije prikladan. Drugi razlog, koji u određenoj mjeri obučava razvoj jezika, prisutnost posebno stvorenog industrijskog odbora u Sjedinjenim Državama, što daje standarde, u skladu s Vladinom Komisijom. Budući da se uvijek događa u takvim slučajevima, tvrtke koje se bave razvojem softvera ne žure za prilagođavanje svojih novčanica strogim zahtjevima Komisije, ne postoji konkurencija verzija, a na kraju gubi širenje jezika

PL / 1 razvijen je 1964.-1965. IBM. PL / 1 se odnosi na broj univerzalnih jezika, tj. Omogućuje vam da riješite probleme iz različitih područja: numerički izračuni, obradu teksta, ekonomske zadatke, itd. Prema njegovim mogućnostima, preklapa takve jezike kao FORTRAN, Algol-60 ( Stvoren za numeričke izračune), Cobol (za ekonomske zadatke), iako, zbog niza razloga, ovi jezici PL / 1 ne mogu biti potisnuti.

PL / 1 sadrži sve osnovne dizajne karakteristične za takozvane jezike na visokoj razini, kao i brojni specifični način, prikladan za praktično programiranje. Jezik nalikuje dizajneru s velikim brojem dijelova - korisnik je dovoljan za ovladavanje samo onim dijelovima jezika koji je praktički potrebno za to. Njegovi operateri su prilično tenkovi, koji vam često omogućuju da dobijete evidenciju o programu kompaktniji nego na drugim jezicima. Znanja PL / 1 programer nestaje bilo koji drugi jezik iste ili bliske klase.

U isto vrijeme, PL / 1 ima brojne nedostatke koji ometaju studiju i korištenje jezika. Glavni su takve. Prvo, postoji mnogo dvostrukog sredstva za njih teško zapamtiti, nije jasno da kada se primjenjuje, štoviše, smanjuje i brzinu emitiranja i brzinu izvršenja programa. Drugo, programi nisu u potpunosti neovisni o stroju.

Modul

Možemo pretpostaviti da je povijest modula jezika započinje 1980. godine, kada je Niklaus Wirth, jedan od izuzetnih stručnjaka za teorije informacija, poznat za većinu stručnjaka za tehničara, uglavnom kao tvorac Pascala, objavio je opis novog programskog jezika koji se zove modul. Za razliku od Pascala, koji je planiran po jeziku za programiranje učenja, modul od samog početka bio je jezik za profesionalne programere sustava, nastavljajući najbolje tradicije svog prethodnika i obogaćujući ih novim idejama koje zadovoljavaju takve zahtjeve za programiranje jezika kao struktura , modularnost i sposobnost proširenja. Kao i mnogi drugi programski jezici, modul je bio podvrgnut evoluciji, tijekom kojih je njegovo početno ime je reducirano u ime modula-2. Istovremeno s razvojem jezika modula stvoreni su novi sastavljači za njega, međutim, nitko od njih ne bi se mogao natjecati s najboljom ostvarivanjem Pascal i SI jezika, na primjer, koji je razvio Borland. U ovom jezičnom prijelaznom modulu najbolje se smatralo da je logitech proveo Logitech, koji u njihovim karakteristikama gube Turbo Pascal i Turbo SI. Samo 1988. godine, nakon pojavljivanja vrhunskog sustava na američkom tržištu, Modul-2 je uzeo vrijedno mjesto među proceduralnim jezicima namijenjenim programiranju sustava. Instalacija popularnosti sustava najveće brzine pridonijeli su nekoliko čimbenika: prikladno i, štoviše, operativno okruženje je lako promjenjivo na zahtjev korisnika, brzi kompilator i selektivni urednik veza. No, najznačajniji je činjenica da su programi stvoreni karakterizirani većom brzinom i zauzeli su mnogo prostora u memoriji.

Byysik

Osnovni - Početnički simbolički kod - "Univerzalni simbolički kod uputa za početnike"). Izravni potomak Fortrana i još uvijek najpopularniji programski jezik za osobna računala. Bećisik se pojavio 1963. godine (nazvan će autor biti težak, ali glavna zasluga u njegovom izgledu nedvojbeno pripada Amerikancima John Kemen i Thomas Kurtu). Kao i bilo kakve koristi, jednostavnost Beyyskog okrenula se, osobito u ranijim verzijama strukturiranja poteškoća; Osim toga, Baisik nije dopustio rekurziju - zanimljivu tehniku \u200b\u200bkoja vam omogućuje učinkovitu i u isto vrijeme kratke programe.

Razvijeni su snažni bejzbol kompilatori koji osiguravaju ne samo bogat vokabular i velike brzine, već i mogućnost strukturnog programiranja. Prema nekim programerima, najzanimljivije verzije su Gwbasic, turbo-osnovni i brzi osnovni.

U jednom trenutku pojava brze osnovne označio je rođenje druge generacije programskih sustava u babijskom jeziku. Pružila je mogućnost modularnog i proceduralnog programiranja, stvaranja knjižnica, kompilacije gotovih programa, itd., Koji ga je doveo na razinu takvih klasičnih programskih jezika, kao što su SI, Pascal, Fortran, itd. Štoviše, zbog nedostatka Službenog standarda Baysik jezika, njegova provedba Brza osnovna postala je stvarni standard. Bezuvjetni lideri među različitim verzijama Baysik bili su brzi osnovni 4.5 i PDS 7.1 Microsofta, koji se pojavio u kasnim 80-ima.

Lisp.

Lisp Jezik predložio je J. McCarthy u radu 1960. godine i usredotočio se na razvoj programa za rješavanje problema ne-numeričke prirode. Na engleskom nazivu ovog jezika - Lisp je skraćenica izraza za obradu popisa (obrada popisa) i dobro naglašava glavno područje njegove uporabe. Pokazalo se da je koncept "popisa" vrlo prostran. U obliku popisa prikladno je zastupati algebarske izraze, grafikone, elemente konačnih skupina, skupova, izlaznih pravila i mnogih drugih složenih objekata. Popisi su najfleksibilniji oblik prezentacije informacija u memoriji računala. Nije iznenađujuće da postoji prikladan jezik posebno dizajniran za obradu popisa, brzo stekao popularnost.

Nakon pojavljivanja Lisp, razni autori su predložili niz drugih algoritamskih jezika orijentiranih problema u području umjetne inteligencije, među kojima se može zabilježiti, snobol, refluks, prolog. Međutim, to nije spriječilo Lisp da ostane najpopularniji jezik za rješavanje takvih zadataka. Tijekom gotovo četrdesetogodišnje povijesti njezina postojanja pojavila se brojni dijalekti ovog jezika: uobičajeni Lisp, Mac Lisp, međujedine, standardne lisp, itd. Razlike između njih ne nose temeljnu prirodu i uglavnom se smanjuju na malo Različiti skup ugrađenih funkcija i neke razlike u obliku programa za snimanje. Dakle, programer koji je naučio raditi na jednom od njih može lako svladati i bilo koji drugi. Velika prednost Lispa je njegova funkcionalna orijentacija, tj. Programiranje se provodi pomoću funkcija. Štoviše, funkcija se shvaća u pravilu, uspoređujući elemente neke klase, odgovarajućim elementima drugog razreda. Proces usporedbe ne utječe na rad programa, samo njegov rezultat je važan - vrijednost funkcije. To vam omogućuje jednostavno pisanje i ispravljanje velikih softverskih kompleksa. Jasnoća programa, jasna razlika između njihovih funkcija, odsutnost nuspojava CAerz kada su ispunjeni, obvezni su zahtjevi za programiranje takvih logički složenih zadataka, koji su zadaci umjetne inteligencije. Programska disciplina postaje posebno važna kada ne djeluje jedna osoba na programu, već i cijela skupina programera.

Lisp programski jezik namijenjen je prvenstveno za obradu simboličkih informacija. Stoga je prirodno da se u svijetu Lispa, broj se igra daleko od velike uloge. Glavne vrste podataka u lispima nazivaju se "atom" i "točkasti par".

Prolog

Logički programski jezik namijenjen je prezentaciji i korištenju znanja o određenom predmetu. Programi na ovom jeziku sastoje se od određenog skupa odnosa, a njezina provedba se svede na zaključak novog odnosa na temelju navedenog. Prolog provodi deklarativni pristup, u kojem je dovoljan za opisivanje zadatka korištenjem pravila i izjava o navedenim objektima. Ako je ovaj opis prilično točan, računalo može samostalno pronaći željeno rješenje.

Predmet

Objekt PAL je snažan programski jezik. Objekt PAL je objektno orijentiran, kojima upravlja događaji, vizualni programski jezik. Na početnoj razini funkcionalnosti predmeta PAL možete obavljati podatkovne operacije, stvoriti posebne izbornike, kao i upravljati sesijom unosa podataka. Događaji u objektu PAL generiraju naredbe koje simuliraju učinak korištenja paradoksa u interaktivnom načinu rada. Moguće je automatizirati često izvršene zadatke, kao i preko tablica, oblika i izvješća o djelovanju koje nisu bile dostupne u interaktivnom radu. Predmet PAL također pruža sva sredstva za potpuno opremljen programski jezik u Windows okruženju. Možete koristiti objekt PAL za stvaranje ispunjenih sustava koji implementiraju poseban sustav izbornika, sustav pomoći, kao i sve vrste čekova podataka. U objektu Pal, možete spremiti razvoj u dinamički komponentnoj knjižnici, pristup kojem će imati nekoliko oblika. Osim toga, možete uspostaviti komunikaciju s drugim dinamičkim knjižnicama koje sadrže program napisan na takvim jezicima kao SI, C ++ ili Pascal.

Predmet PAL se može koristiti kao alat za stvaranje izvanmrežnih programa. Možete napisati ispunjenu Windows aplikaciju i pokrenuti ga pod paradoxom.

Predmet PAL podržava dinamički mehanizam razmjene podataka kao i klijenta i poslužitelja. Osim toga, objekt PAL podržava mehanizam rada s kompozitnim dokumentima kao klijenta. Osim onoga što je rečeno, moguće je uključiti multimediju u vaš zahtjev, pružajući aplikaciju izveden zvučnim i animacijskim učincima.

Stvoren od strane BBSE-a, provedba DBEE jezika je uspješna hibridna orijentacija objekta i tradicionalne metode programiranja. To je omogućilo stvaranje sustava korištenjem dizajna objekta i korištenje konvencionalnih prijema za zapise za obradu. Veliko postizanje tvrtke B Bohr je da je vrlo dobro kombinirani objekt i proceduralne programske tehnike. Prva verzija za Windows dala je korisniku najmoćniji objektni alat u tržištu softvera baze podataka. To vam omogućuje da stvorite nove klase objekata koji posjeduju svojstva nasljeđivanja, enkapsulacije i polimorfizma. Također vam omogućuje da programirate ove objekte koristeći tradicionalne naredbe DBAse, idealno pogodne za upravljanje jednostavnim tablicama. Sve to daje neospornu prednost - bez mnogo poteškoća prijelaz na objektno programiranje tehnika, prijelaz je tako složen, na primjer, kao u paradox dbms.

Java jezik nastao kao dio projekta za stvaranje naprednog softvera (softver) za razne kućanske aparate. Provedba projekta pokrenuta je u C ++, ali uskoro je nastao niz problema, najbolje sredstvo za borbu protiv samog alata - programski jezik. Postalo je očigledno da je potreban programski jezik neovisan o platformu, koji vam omogućuje stvaranje programa koji nisu morali sastaviti odvojeno za svaku arhitekturu i može se koristiti na različitim procesorima u različitim operativnim sustavima. Jezik Java je bio potreban za stvaranje interaktivnih proizvoda za internet. Zapravo, većina arhitektonskih rješenja usvojenih prilikom stvaranja Java diktirana je željom za pružanjem sintakse slične C i C ++. Java koristi gotovo identične sporazume za proglašavanje varijabli, prijenos parametara, operatora i kontrolu struje izvršenja koda. Java dodaje sve dobre značajke c ++.

Tri ključna elementa ujedinjena u Java tehnologiji

Java osigurava široku uporabu apleta (appleta) - male, pouzdane, dinamične, ne-platforme-free aktivne mrežne aplikacije ugrađene u web stranice. Java apleti mogu se konfigurirati i distribuirati potrošačima s istom lakoćom kao i bilo koji HTML dokumenti.

Java oslobađa snagu objektno orijentirane aplikacije, kombinirajući jednostavnu i poznatu sintaksu s pouzdanim i praktičnim razvojnim okruženjem. To omogućuje širok krug programera da brzo stvoriti nove programe i nove aplete.

Java pruža programer bogat set klase objekata za jasnu apstrakciju mnogih funkcija sustava korištenih pri radu s sustavom Windows, Network i I / O. Ključna osobina ovih klasa je da oni pružaju stvaranje neovisne platforme apstrakcije za širok raspon sustava sučelja.

Programski jezici za računalne mreže

Programski jezici za računalne mreže tumače se. Tumači za njih se distribuiraju besplatno, a sami programi su u izvornim tekstovima. Takvi se jezici nazivaju skriptom - jezici.

Perl je interpretirani jezik koji je stvorio programer za zid larda za rukovanje velikim tekstovima i datotekama te dešifriran kao praktično ekstrakcija i jezik izvješća (jezik za praktične vađenje podataka i izvješćivanje). Korištenje PERL-a, na primjer, možete stvoriti skriptu koja otvara jednu ili više datoteka, obrađuje informacije i bilježi rezultate.

Perl je jezik prilagođen za obradu proizvoljnih tekstualnih datoteka, izdvajanje potrebnih informacija od njih i izdavanje poruka. Perl je također prikladan za pisanje raznih sustava programa. Ovaj jezik je jednostavan za korištenje, učinkovit, ali je teško reći o tome da je elegantan i kompaktan. Sintaksa Perl izraza je blizu C sintakse. Rekurzija može biti proizvoljna dubina. Iako je Perl prilagođen za skeniranje tekstualnih datoteka, ona također može obraditi binarne podatke. Perl omogućuje korištenje uobičajenih izraza, stvaranje objekata, umetnite komad koda u Perl na SI ili C + + softver, a također omogućuje pristup bazama podataka, uključujući Oracle.

S izumom, World Wide Web, Perl se ispostavilo da je izvrstan alat za interakciju s web poslužiteljima putem zajedničkog sučelja Gateway (CGI) - zajedničkog interakcijskog sučelja. Perl naredbe mogu lako dobiti podatke iz HTML obrasca ili drugog izvora i obavljati bilo koju radnju s njima.

Jezik Php. (1995-1997) ima pristup pristup bazi podataka i koristi kreatori dinamičkih mjesta širom svijeta.

Jezik Tcl / tk. (Kraj 1980-ih) sastoji se od snažnih naredbi dizajniranih za rad s apstraktnim netkanim objektima i omogućuje vam stvaranje programa s grafičkim sučeljem.

Jezik Vrml (1994) stvoren za organiziranje virtualnih trodimenzionalnih sučelja na internetu.

Jezik Sky, Od 1996. radi na stvaranju univerzalnog jezika strukture dokumenta. Može postati zamjena za HTML.

Izlaz

Korisni resursi

Pregledajte aizili

Gdje je izvješće?

Pregledajte Ranitke.

Re: Gdje je izvješće?
Sve će biti: -D

Povratne informacije Shamagulova elita

Pregledajte Mišina Alexander

Veliko izvješće. Naučio sam mnogo o programskim jezicima.

Pregledajte Morozovu Aleksandra

Naravno, želio bih vidjeti izvješće ili barem prezentaciju u bilo kojem obliku.

Ovaj članak je na širenju i njegovoj važnosti za računalne sustave. Dakle, čini se da takav poseban može biti u širenju softverske datoteke? Ali ipak se nadamo da će čitatelji moći dobiti važne i zanimljive informacije za sebe. Sposobnost rješavanja proširenja će poslužiti dobroj usluzi, koja će biti napisana u nastavku.

Što proširenje ima c plus plus?

Ovaj programski jezik ima vlastitu oznaku datoteka. Oznaka CPP-a je poseban nastavak koji se koristi za datoteke s C ++ kodom. Oni su sadržani još nisu spremni za uporabu (ne kompilirani) kod koji se može uređivati \u200b\u200bi napraviti uređivanje bez značajnih troškova i neuspjeha u programu. Uz ovaj nastavak možete saznati koja datoteka sadrži tekst na "SI" (programski jezik koji je sada vrlo popularan).

Proširenje i njezina važnost u programiranju

Zašto je potrebno proširiti naziv datoteke koje računalo koristi? Činjenica je da računalo može podnijeti mnoge različite vrste datoteka, kako u okviru instaliranog operativnog sustava i korištenje dodatnog softvera. Primjer takvog softvera može biti instaliran u preglednicima ili tumačima različitih programskih jezika koji mogu nositi s programima za pokretanje. Ovdje, da biste prepoznali kako treba koristiti prevoditelja računala, koji se primjenjuje šifra stroja za reprodukciju datoteke, a proširenja su potrebne. Prepoznaje vrstu datoteke, ove informacije će biti osigurane dostupnim detaljima. Dakle, CPP proširenje je datoteka koja sadrži C + + dokument. Nakon priznavanja, tumač će ga moći otvoriti, a korisnik će moći raditi s dokumentom.

Što je nastavak naziva datoteke?

Ali razgovarajmo o proširenjima imena datoteka sa stajališta računalnih znanosti. Uz to, već je određeno - potrebno je identificirati format ili vrstu datoteke. Odvojite proširenje u ime datoteke pomoću točke. Do 95., Windows ima ograničenje broja znakova u ekspanziji: ne mogu biti više od tri. U modernim sustavima ne postoji takvo ograničenje. Još više, u modernim datotečnim sustavima mogu postojati datoteke koje imaju nekoliko vrsta ekspanzije. Svi oni slijede točku. Kao što je CPP, to vrijedi, ne primjenjuje se.

Takav dar programera često uživaju u prevarantima. Vaše zlonamjerne datoteke koje sugeriraju na računalima korisnika, napadači su često maskirani za druge programe, skrivaju glavno proširenje datoteke (u virusima i raznim trojanima razlikuje se od običnih programa). Možda čak i da se sve prave datoteke skrivaju ili uklanjaju, a umjesto toga se uklapaju u potpuno različite. I ispostavilo se da CPP uopće nije CPP, već računalni virus. Dobra zaštita od ove vrste prevaranata je naredba prikazivanja svih vrsta proširenja. Ova značajka možete omogućiti u "upravljačkoj ploči", dovoljno je pronaći samo potrebnu stavku. A onda možete biti mirni za vaše C plus plus datoteke i uvjereni da umjesto toga nećete pokrenuti štetan program. Iako je uvijek potrebno gledati ekspanziju izvršnih datoteka.

Točnost informacija navedenih u širenju

Ponekad proširenje netočno označava vrstu datoteke i ne rješava sve moguće probleme koji se mogu pojaviti u procesu korištenja različitih programa. Dakle, produžetak. TXT, poznat mnogima, ne daje informacije na računalu o tome koja datoteka kodiranja. Stoga, kada otvorite tekstualne datoteke, možete vidjeti listove nerazumljivih znakova. Pogotovo tužno vidjeti takav dokument stanje ako je korišten za pisanje programskog koda. U takvim slučajevima, kodiranje datoteke treba mijenjati sve dok računalo ne može osigurati odgovarajući tekst. Moguće je na temelju netočnih znakova da pokušate izračunati potrebne kodiranje, ali morate znati kodiranje s obzirom na to što dovodi do toga. Za Vordic datoteke se također koristi i isto proširenje, što ne čini jasno s onim što se osoba ne bavi: s uobičajenim vrstama ili oblikovanim. Također, produžetak ne ukazuje na koju se verziju koristi, koja se dobro manifestira kada pokušavate otvoriti verzije ranih dokumenata u kasnijim okruženjima za obradu, kao u slučaju Microsoft Officea.

Ostale metode i mogućnosti za određivanje formata

Postoje i druge značajke za određivanje datotečnog sustava. Ali oni nisu uobičajeni, a vi najvjerojatnije nikada nisu čuli:

  • Spremanje informacija o formatu datoteke u samom operativnom sustavu. Nedostaci se pojavljuju ako se želite prebaciti na drugo računalo i raditi s istom datotekom.
  • Korištenje takozvanih metoda "Magic brojeva". To je kada je određeni slijed bajtova šifriran u samoj datoteci, što ukazuje na sve potrebne informacije za operaciju datoteka. Ima određeni potencijal, ali su potrebni proizvođači softvera.
  • Za neke UNIX sustave razvijena je funkcija koja ostavlja posebne oznake na početku datoteke namijenjene tumaču.

Prije nego što želite studirati neki programski jezik, morate znati malo o njihovoj povijesti i gdje se primjenjuju.

Predstavljam vam kratak pregled 25 poznatih programskih jezika. Počevši od najpoznatijih u manje popularnim. Članak se vrši za pridošlice u području programiranja. Možete čitati o svakom jeziku i odabrati onu koju želite više za istraživanje.

Prije početka učenja programskih jezika, preporučujem da istražite tijek softvera.

1. JavaScript.

Prototip-orijentirani slikovitski programski jezik. JavaScript je izvorno stvoren kako bi web stranice učinili živim. " U pregledniku su povezani izravno HTML-u i, čim se stranica učini - odmah izvršava.

Kada je stvoren JavaScript jezik, on je izvorno imao drugo ime: "životnici". Ali onda je Java jezik bio vrlo popularan, a trgovci su odlučili da slično ime bi novi jezik više popularan.

Planirano je da će JavaScript biti neka vrsta "mlađeg brata" Java. Međutim, priča je naredila na svoj način, JavaScript je snažno rastao, a sada je to potpuno neovisan jezik, sa svojom specifikacijom i Java nema nikakve veze.

2. Java.


Strogo upisani objektno orijentirani programski jezik. Java aplikacije obično se emitiraju posebnom bajtnom kodu, tako da mogu raditi na bilo kojoj računalnoj arhitekturi pomoću virtualnog Java stroj.

Prednost ovog načina izvršenja programa je potpuna neovisnost BATE koda iz operativnog sustava i opreme, koji vam omogućuje da izvršite Java aplikacije na bilo kojem uređaju za koji postoji odgovarajući virtualni stroj. Još jedna važna značajka Java tehnologije je fleksibilan sigurnosni sustav u kojem je izvršenje programa u potpunosti nadzire virtualni stroj.

U početku, jezik je zvan hrast ("hrast") razvio je James Gosling za programiranje kućanskih elektroničkih uređaja. Nakon toga, preimenovan je u Java i počeo se koristiti za pisanje klijentskih aplikacija i poslužiteljskog softvera.

3. PHP.


To je uobičajeni jezik opće namjene s otvorenim izvorom (skriptni jezik). PHP je izrađen posebno za web razvoj i kod na njemu može se provesti izravno u HTML kod. Sintaksa jezika potječe od C, Jave i Perl, te je lako istražiti.

Glavni cilj PHP-a je pružiti web programere s mogućnošću brzog stvaranja dinamički generiranih web stranica, međutim, polje aplikacije PHP nije ograničeno na to.

4. Python.

Programski jezik na visokoj razini opće namjene usredotočio se na poboljšanje produktivnosti developera, čitljivosti koda i razvoja web aplikacija. Python kernel sintaksa je minimalizirana. Kodeks u Pythonu organiziran je u funkcijama i razredima koji se mogu kombinirati u module.

5. C #


Objektno orijentirani programski jezik. Razvijen u 1998-2001 od strane grupe inženjera pod vodstvom Anders Halesberg u Microsoftu kao jezik za razvoj aplikacija za Microsoft .NET platforme. C # odnosi se na obitelj jezika s C-sličnom sintaksom, od kojih je njegova sintaksa najbliža C ++ i Java.

Jezik ima statički tipkanje, podržava polimorfizam, operatore za preopterećenje, delegate, atribute, događaje, nekretnine, generalizirane vrste i metode, iteratori, anonimne funkcije s priključkama podršku, LINQ, iznimke, komentari u XML formatu.

6. C ++.


Sastavljen, statički upisani programski jezik opće namjene. To je jedan od najčešćih jezika na svijetu. Google Chrome, Mozilla Firefox, Winamp i Adobe proizvodi su dizajnirani pomoću C ++. Osim toga, na C ++ su razvijeni neke moderne igre i operativne sustave zbog brze obrade i kompilacije.

7. Ruby


Jednostavan i čitljiv programski jezik usmjeren na razvoj web aplikacija. Dizajniran od strane Yukihiro Matsumto u 1995. Jezik ima neovisno o operativnom sustavu za implementaciju multithreading, strog dinamičkog tipkanja, kolektora smeća.

Glavna svrha Ruby je stvaranje jednostavnih i u isto vrijeme razumljivih programa, gdje je brzina programa nije važna, ali mali razvoj razvoja, jasnija i jednostavnost sintakse. Jezik slijedi načelo "najniže iznenađenje": program se mora ponašati kao programer.

8. CSS.


Cascading Style Weets (Cascading Style Stolovi) Formalni opis Jezik izgleda dokumenta napisanog pomoću označavanja jezika.
Uglavnom se koristi kao opis alat, dizajn izgleda web stranica napisanih pomoću HTML i XHTML označavanja jezika, ali se također može primijeniti na bilo koji XML dokumente.

9. C.


Sastavljen statički upisani programski jezik opće namjene. C Language je dizajnirao Dennis Ritchch 1972. godine u Bell Labs. To je prethodnik takvih programskih jezika kao C ++, Java, C #, JavaScript i Perl. Iz tog razloga, proučavanje ovog jezika dovodi do razumijevanja i drugih jezika. Jezik C se koristi za razvoj aplikacija niske razine, jer se smatra najbliži hardveru.

10. Objektivno-c


Sastavljeni objektno orijentirani programski jezik koji koristi Apple Corporation, izgrađen na temelju malih jezika i paradigme. Cilj-c jezik je iznenada SI jezika, tako da C kod je u potpunosti shvaćen pomoću objektivnog-c kompilatora. Jezik se koristi prvenstveno za Mac OS X (kakao) i gnustep - implementacije otvorenog sučelja orijentiranog na OpenSep. Također, jezik se koristi za iOS (kakao dodir).

11. Shell.

To nije toliko jezik kao naredbeni tumač (naredbeni jezik). Njegove skripte koriste se za automatizaciju ažuriranja softvera. Sadrži standardne dizajne za cikluse, grananje, značajke funkcija. Obitelj operativnih sustava kompatibilnih s UNIX OS-om, ljuskom se koristi kao standardni jezik upravljanja zadacima.

12. R.


Programski jezik za statističku obradu podataka i rad s grafikom, kao i open source computing softver kao dio GNU projekta. R se naširoko koristi kao softver za statističku analizu podataka i zapravo je postao standard za statističke programe. Sučelje naredbenog retka koristi se u R.

13. Perl.


Visokostupanjski programski programski jezik dinamičkog općeg namjene. Ime jezika je skraćenica koja je dešifrirana kao praktična vađenje i izvješće o jeziku - "praktični jezik za izdvajanje podataka i izradu izvješća." Glavna značajka jezika je njezine bogate mogućnosti za rad s tekstom, uključujući rad s regularnim izrazima, ugrađenim u sintaksu. U ovom trenutku se koristi za obavljanje širokog raspona zadataka, uključujući administraciju sustava, web razvoj, mrežnu programiranje, igru, bioinformatiku, razvoj grafičkih korisničkih sučelja.

14. Scala.


Multiadigmal programski jezik dizajniran kratkim i sigurnosnim za jednostavno i brzo stvaranje komponentnog softvera, kombinirajući funkcionalno i objektno orijentirano programiranje. Scala - Programi su u velikoj mjeri slični Java programima i mogu slobodno komunicirati s Java kodom.

15. Idi.


Sastavljen s višestruki programski jezik koji je razvio Google. Jezik Go je razvijen kao sustav programiranja sustava za stvaranje visoko učinkovitih programa koji rade na modernim distribuiranim sustavima i multi-core procesora. Može se smatrati pokušajem stvaranja zamjene SI jezika. Kada se razvija, posebna pozornost posvećena je osiguravanju visoko učinkovitog kompilacije. Go programi su sastavljeni u objektni kod i ne zahtijevaju virtualni stroj za izvršenje.

16. SQL.

Jezik strukturiranih upita. Formalni ne-koncentrirani programski jezik koji se koristi za stvaranje, izmjenu i upravljanje podacima u proizvoljnoj relacijskoj bazi podataka, kojima upravlja odgovarajući sustav upravljanja bazom podataka. SQL je prvenstveno informacijski logički jezik osmišljen za opisivanje, promjenu i izdvajanje podataka pohranjenih u relacijske baze podataka. Svaka SQL ponuda je ili podatkovni zahtjev iz baze podataka ili pristup bazi podataka, što dovodi do promjene podataka u bazi podataka.

17. Haskin.


Standardizirani funkcionalni opći programski jezik. To je jedan od najčešćih programskih jezika s odgođenim računalnim jezicima. Posebnost jezika je ozbiljan stav prema tipkanju. Haskell Izvrstan jezik za učenje i eksperimente sa složenim funkcionalnim tipovima podataka.

18. Swift.


Otvoreni multigradigmal kompilirani programski jezik opće namjene. Stvoreno od strane Apple prvenstveno za IOS i OS X. Swift Developers radi s Cocoa i Cocoa Touch okvira i kompatibilnim s osnovnim Appleovim kodom, napisan na objektivnom-c. Swift misao kako je lako čitati i otporno na programerove pogreške, a ne one koje su prethodno prethodile objektivne-c. Swift posudio dosta puno od objektivnog c, ali to nije određeno znakovima, već vrste varijabli koje su procesi kompilatora. Za sličan princip, mnogi scripting languages \u200b\u200brade.

19. Matlab.


Visokostupanjski programski jezik koji se može interpretirati, uključujući strukture podataka na temelju matrica, širok raspon funkcija, integrirano razvojno okruženje, objektno orijentirane značajke i sučelja za programe napisane na drugim programskim jezicima. Programi napisani na Matlabu su dvije vrste - funkcije i skripte. Funkcije imaju ulazne i izlazne argumente, kao i vlastiti radni prostor za skladištenje međuproizvoda izračuna i varijabli. Skripte također koriste ukupni radni prostor. Obje skripte i funkcije pohranjuju se kao tekstualne datoteke i kompilirane u šifru stroja dinamički.

20. Visual Basic.


Programski jezik, kao i integrirano okruženje za razvoj softvera koji je razvio Microsoft. Jezik Visual Basic naslijedio je duh, stil i sintaksu svog pretka - jezik osnovnog, koji ima mnogo dijalekta. U isto vrijeme, vizualni osnovni kombinira postupke i elemente objektno orijentiranih i komponentski orijentiranih jezika.

Visual Basic je također dobar alat za brz razvoj baza podataka Rad aplikacija za Microsoft Windows operativne sustave. Mnoge gotove komponente koje su isporučene s medijima osmišljeni su kako bi se programer odmah počeo razvijati poslovnu logiku aplikacije, bez ometanja njegove pozornosti na pisanje početnog broja programa.

21. Delphi.


Imperativ, strukturiran, objektno orijentirani programski jezik s strogim statičkim varijablama tipkanja. Glavno područje korištenja je pisanje primijenjenog softvera.

Danas, zajedno s podrškom od 32 i 64-bitni Windows softvera, implementirao je mogućnost stvaranja aplikacija za Apple Mac OS X, kao i za Google Android (izravno izvršeno na procesoru ruku).

22. Groovy.


Objekt-orijentirani programski jezik, dizajniran za Java platformu, kao dodatak Java jeziku s Pythonom, Ruby i SmallTalk sposobnosti. Groovy koristi java-sličnu sintaksu s dinamičkom kompilacijom u JVM bajtnom kodu i djeluje izravno s drugim Java kodom i knjižnicama. Jezik se može koristiti u bilo kojem Java projektu ili kao skriptni jezik.

23. Visual Basic .NET


Objekt-orijentirani programski jezik, koji se može promatrati kao sljedeći skretanje evolucije vizualnog Basic, implementiran na Microsoft .NET platformi. VB.net nema kompatibilnost s ranijem verzijom (Visual Basic 6.0). Razvoj projekata starih verzija (* .vbp) moguć je tek nakon preliminarne konverzije u VB.Net format s posebnim majstorom (migracijski čarobnjak); Međutim, nakon konverzije, potrebno je osnovno ručno usavršavanje tekstova.

24. D. D.

MultiAcadigmal Commiled programski jezik stvorio Walter Bright s digitalnih marsa. U početku, D je zamišljen kao C ++ reinženjeringa, međutim, unatoč značajnom učinku c ++, to nije njegova opcija. Također, jezik je iskusio koncepte iz Python programskih jezika, Ruby, C #, Java, Eiffel.

25. Asimbler.


Strojno orijentirani jezik s niskim razinama s naredbama, a ne uvijek relevantan za naredbe stroja, koji mogu pružiti dodatne mogućnosti poput makrokomanda; Autocode, napredni programski jezici na visokoj razini, kao što su izrazi, makronaredbe, sredstva za pružanje modularnosti softvera.

Modemljivi jezik - sustav označavanja koji se koristi za slanje čitav oblik programa snimljenih u stroja. Jezik asemblera omogućuje programerom da koristi abecedni mnemonični kodeks operacija, po vlastitom nahođenju, dodijelite simbolička imena s računalima s računalima i memorijom, kao i postavljenim korisničkim programima. Osim toga, omogućuje vam da koristite različite sustave numeriranja za predstavljanje numeričkih konstanti i omogućuje označavanje žica programa s naljepnicama s simboličkim imenima tako da ih možete kontaktirati.

Nisam uzimao sve jezike. Oni nisu toliko u potražnji od profesionalnih programera. Moj zadatak je dovršen, sada možete odabrati odgovarajući jezik i osvojiti ga. Sretno vam u svojim nastojanjima.

Pisanje najmodernijih računalnih programa provodi se prilikom korištenja jezika na visokoj razini. Važno je napomenuti da su mnogi od njih razvijeni u 60-ima i 70-ih godina, ali su i dalje relevantni. Koje druge činjenice o jezicima na visokoj razini mogu proslaviti? Koje su najčešći sorti relevantnih rješenja?

Suština programa na visokoj razini za programe pisanja

Visoki programski jezik - alat koji se odnosi na kategoriju neovisne o stroju. Što to znači? Činjenica je da su programski jezici podijeljeni u nekoliko kategorija.

Postoji strojni kod: skup algoritama koji su dizajnirani za upravljanje korisnicima izravno hardverskim elementima računala. Njihov će entitet biti potpuno ovisan o stroju: samo određeni algoritmi su prikladni za određene vrste računala.

Postoje jezici asembler. Zapravo, oni su nadgradnja u odnosu na one dizajnirane za kontrolu s niskom razinom komponenti PC hardvera pomoću strojnog koda. Ali u mnogim znakovima, asembler jezici su također prihvaćeni da se odnose na strojno ovisno o stroju. U pravilu su prilagođeni specifičnoj raznolikosti PC hardverske komponente. Njihov glavni zadatak je pojednostaviti upravljanje korisnicima računala kroz odgovarajuću komunikaciju na niskoj razini.

S druge strane, programski jezik na visokoj razini omogućuje korisniku interakciju s računalom, bez obzira na to koja je određena oprema instalirana na računalu. Stoga se treba pripisati neovisno o stroju. Prilikom pisanja operativnih sustava najčešće je uključen programski jezik na visokoj razini. Ali postoji OS, koji je napisan na asembleru. Niske i visoke razine mogu se koristiti istovremeno. Osoba, dajući timove na visokoj razini PC-a, mora, ionako, da ih prenose na određene hardverske komponente, a ta se funkcija može provesti prilikom korištenja skupnih jezika istovremeno s visokom razinom, koja je uključena u strukturu rada sustav.

Prevoditelj

Najvažniji elementi koji su u programskim jezicima na visokoj razini su prevoditelji. Njihova funkcija može biti drugačija. Među ključnim područjima primjene prevoditelja - "Prijevod" naredbi generiranih na programskom jeziku na visokoj razini, u šifru stroja, razumljiv za određenu hardversku komponentu računala, na primjer, procesor. Prevoditelji koji obavljaju ovu funkciju nazivaju se i kompajleri. Postoji još jedna raznolikost relevantnih komponenti - tumači. Oni su namijenjeni, zauzvrat, za "prijevod" timova na visokoj razini u onima koji su razumljivi operativnom sustavu ili bilo kojem programu.

Klasifikacija jezika na visokoj razini

Programski jezici na visokoj razini mogu se klasificirati za različite baze. Shema za koju su podijeljene u sljedeće glavne sorte su uobičajene:

Proceduralno orijentirani (djeluju kao alat pri obradi informacija u bilo kojoj fazi izračuna);

Problem orijentiran (koristi se kao sredstvo za rješavanje industrije i primijenjenih zadataka nastalih proširenjem primjena računala);

Objekt orijentiran (može biti posebni slučajevi prve dvije vrste jezika, međutim, prilagođavaju se širokom rasponu programera s različitim razinama pripreme, na primjer, u obliku otopine s vizualnim sučeljem).

Sada razmotrite neke povijesne i moderne programske jezike na visokoj razini, koji odgovaraju ovoj klasifikaciji.

Proceduralni orijentirani jezici

Takva se može pripisati FORTRAN-u. Smatra se da je prvi programski jezik na visokoj razini stvoren za rasprostranjenu uporabu. Karakterizira se jednostavnom strukturom. Postupovno orijentirani jezici također pripadaju Beyyku. Smatra se jednim od najčešće korištenih programiranja. Primjer drugog proceduralnog orijentiranog jezika - SI. U početku je stvoren za UNIX OS. Na njegovoj osnovi, C ++ jezik je naknadno stvoren, nadopunjen predvođenim programiranjem alata. Drugi jezik koji pripada kategoriji koji se razmatra je Pascal. Često sudjeluju u programiranju obuke. Mogućnosti ovog jezika omogućuju da se koristi kao vrlo moćan alat za razvoj profesionalnih vrsta softvera.

Jezici orijentirani na probleme

To uključuje lisp, prolog. Prvi je jezik razvijen 1962. - nekoliko godina nakon stvaranja Fortrana. Smatra se, na način kao drugi u povijesti. Aktivno uključeni kao alat za rad programera s nizovima znakova. U praksi, Lisp je korišten u sustavima klasificiranih kao stručnjak, kao i onima koji su bili namijenjeni analitičkim izračunima. Prolog je bio široko korišten u području logičkog programiranja. U praksi, najčešće sudjeluju u upravljanju algoritmima umjetne inteligencije u odgovarajućim sustavima.

Jezici orijentirani na objekt

Sada proučavamo primjere programskih jezika na visokoj razini koji se odnose na kategoriju orijentiranog objekta. Među njima - Visual Basic, Delphi, Visual Fortran, primijetio je iznad C ++, kao i Prolog ++. Zapravo, svi se temelje na proceduralno orijentiranim jezicima. Međutim, pretpostavlja se da je značajan dodatak vizualnim elementima upravljanja kako bi se nadnici potrebnih algoritama od strane developera navikli na druge alate. Dakle, prvi programski jezik na visokoj razini - fortran - može se proučavati IT stručnjaci kroz mogućnosti vizualnog Fortrana. Slična metoda može brzo svladati bazom ili prologom.

Provodi se, zauzvrat, kada koristite Delphi programiranje na jeziku objekta na visokoj razini Pascal. Postoji veliki broj drugih okruženja za razvoj softvera, klasificiran kao objektno orijentirani jezik. Ovo područje razvojnih tehnologija aktivno se razvija.

Fortran i Lisp - prvi i drugi jezici na visokoj razini

Proučavat ćemo više, jer se pojavio prvi programski jezik na visokoj razini - Fortran, kao i Lisp, smatra se drugim. Godine 1954. programeri iz IBM-a na čelu s Johnom Bacusom, stvorio je jezik kojim su programeri mogli značajno ublažiti interakciju s računalom, koji do trenutka provedena kroz strojne naredbe ili asembler. Zvao je Fortran i ubrzo je postao poznat u SSSR-u pod Rusiciranom stavkom. Fortran je postao popularan alat za znanstveno računalstvo.

Glavni revolucionarni element koji je predložio IBM stručnjaci, postao je zapravo isti kompilator, dizajniran da bude alternativa asembleru. U prvim godinama prakse programa pisanja pri korištenju FORTRAN-a mnogi su programeri smatrali kompajler ne dosta uspješno rješenje, prije svega, u smislu troškova rada. Mnogi strojni kodovi bili su doista pripremljeni lakši nego kada je prevoditelj uključen. Međutim, kao brzo povećanje performansi računala, programeri su počeli shvaćati da bez korištenja kompilatora, učinkovit softver koji će u potpunosti koristiti računalnu snagu računala, stvoriti iznimno problematično. Dakle, počeci programera iz IBM-a su dalje razvijeni. Glavne sintaktičke strukture na visokoj razini programskog jezika Fortrana u mnogim slučajevima počeli su se koristiti kao osnovni prilikom stvaranja novih rješenja.

Primjer postizanja praktičnih rezultata u razvoju pojmova utvrđenih u Fortran može se smatrati stvaranjem Lisp. Taj je jezik razvijen 1958. godine, međutim, donekle stekao široku slavu - šezdesetih godina prošlog stoljeća. Lisp je razvio John McCarthy i objavljen u jednom od popularnih časopisa za IT stručnjaka. Glavna svrha jezika koji se razmatra je proces popisa. Lisp je postao popularan u razvojnom okruženju umjetnih obavještajnih sustava. Na njegovoj osnovi stvoreni su jezici kao što su planer, shema, kao i zajednički Lisp. Također je također osigurao značajan utjecaj na mnoge moderne alate za razvoj softvera. Struktura programskih jezika na visokoj razini danas je u velikoj mjeri utemeljena na Fortran i Lisp algoritmima.

Međutim, zanimljivo je razmotriti druge pristupe klasifikaciji razmatranih alata alata za razvoj softvera.

Univerzalni jezici na visokoj razini

Dakle, moderni stručnjaci dodjeljuju univerzalne jezike na visokoj razini. To posebno uključuje one koje su razvijene u 60-ima. Ključne karakteristike:

Orijentacija na širokom rasponu zadataka (prije svega u vezi s računalom);

Veliki broj jezičnih struktura i algoritama;

Značaj ne samo za vrijeme, već i za modernu fazu razvoja računalne opreme;

Podrška na relevantnim jezicima imperativne metodologije.

Univerzalni jezici su temeljni u relevantnoj IT razvojnoj industriji. Može se primijetiti da do sada nemaju izravne analoge u dijelu unutarnje strukture. Zapravo, to u velikoj mjeri objašnjava relevantnost korištenja relevantnih jezika u suvremenim sučeljima orijentiranim na objektno. Također općenito na označenim jezicima - vrsta podataka. Ovaj faktor u velikoj mjeri predodređuje njihovu svestranost. Među najznačajnijim svojstvima jezika koji pripadaju kategoriji univerzalnog - kontinuiteta. Tako se povijesno kasnije jezici obično temelje na konceptima prethodnika.

Jedinstveni jezici

Neki IT stručnjaci dodjeljuju se u neovisnoj kategoriji "jedinstveni jezici". Među onima: APL, cobol, dalje, SETL, kao i CLU. Koja je njihova specifičnost?

Najvažniji aspekt APL je uključenost nizova (vektora i matrice) kao ključni strukturni tip. Specifičnosti jezika kobola - u orijentaciji na komercijalnoj sferi. Dakle, preporučljivo je koristiti ga pri rješavanju problema povezanih s standardiziranim formatom reprezentacije rezultata. Četvrti jezik karakterizira korištenje postfix softverskih zapisa, kao i korištenje elegantne notacije. U set jeziku, skupovi vrijednosti koriste se kao jedna od ključnih vrsta podataka. Programski jezik na visokoj razini je također CLU. Njegova glavna značajka je korištenje koncepta rada s apstraktnim vrstama podataka. Mnogi stručnjaci vide logičnu pojavu novih rješenja na temelju jedinstvenih jezika - kao što su, na primjer, objektno orijentirani kobol.

Objekti paralelno programiranje

Ova kategorija može uključivati \u200b\u200bveliki broj rješenja. S druge strane, paralelni programski jezici mogu imati veliki broj osnova za razvrstavanje. Na primjer, metoda organiziranja procesa. Ova baza uključuje razvrstavanje sredstava paralelnog programiranja na temelju prisutnosti u njima:

Soprogrami;

Grane;

Udruge;

Paralelni nosači;

Algoritmi rada s procesima.

Druga osnova za razvrstavanje jezika vrste koji se razmatraju su metode sinkronizacije procesa. Odgovarajuća rješenja mogu tako uključivati:

Semafore;

Monitori;

- "Randevu";

Kritične dijelove;

Daljinski izazov postupci;

Transakcije vezane uz kategoriju atomske.

Jezici vrste tipa uključuju Modula-2, blaženstvo, istodobno Pascal, DP, Argus.

Jezična obitelj C.

Iznad, smatrali smo primjer programskog jezika na visokoj razini kao što je C. Zapravo, čini cijelu obitelj. Jezici koji pripadaju je privatnim strukturama C. Dakle, njegov dodatak različitim objektima orijentiranih komponenti doveli su do razvoja C ++. Nakon značajnog filtriranja niza C konstrukcije, pojavio se Java. Može se primijetiti da je Java stvoren na mnogo načina pod utjecajem koncepata projekta Oberon, kojim upravlja Niklaus Wirth, kreator Paskalnog jezika. Da li se JavaScript na visokoj razini odnosi se na JavaScript na visokoj razini? Naravno, da, unatoč ograničenju aplikacije - kao alat za razvoj web stranica. Ali programski jezici na visokoj razini ne uključuju, posebno, HTML, XML i SGML. Oni su klasificirani kao hipertekstualne oznake.

Obitelj Pascal Jezik

Programski jezici na visokoj razini Pascal također oblikuju zasebnu obitelj. Na temelju Pascala je zapravo stvorio Oberon, klasificiran kao objektno orijentirani jezik tipa. Ključna značajka Oberona - u mogućnosti osigurati sigurnost tipova. Ne računajući Oberon, jezici Pascal obitelji mogu se pripisati Moduli-2, kao i komponentu Pascal.

ADA jezična obitelj

Temeljna u relevantnoj kategoriji jezika - naložio američko ministarstvo obrane ADA. Stvoren je krajem 70-ih - ranih 80-ih. Karakterizira se velikim brojem funkcija, mogućnosti, svestranost. Obitelj ADA uključuje rješenja kao što je Cedar, Modula 3.

Obitelj Simula jezika

Jezik Simula distribuira se u programskim granama povezanim s modeliranjem imitacije. Specifičnost odgovarajućih rješenja - u uključenosti određene jezgre. Njegova uporaba omogućuje vam da primijenite različite proširenja prilagođene jednom ili drugom aplikacijama. Na temelju Simule stvoren je objektno orijentirani sivetalk jezik, kao i beta, karakteriziran sposobnošću kombiniranja unutar jedne apstrakcije algoritama, odražavajući rad s podacima, postupcima i kontrolom. Beta objekti mogu se razmatrati u drugom kontekstu, na primjer, kao varijable, funkcije ili paralelni sustavi.