Programski jezik: razlika između inačica

Izvor: Wikipedija
Izbrisani sadržaj Dodani sadržaj
Nema sažetka uređivanja
Nema sažetka uređivanja
Redak 13: Redak 13:


Viši jezici pak mogu biti:
Viši jezici pak mogu biti:

* sekvencijalni
* sekvencijalni
* proceduralni ([[npr.]] [[Pascal (programski jezik)|Pascal]], [[C (programski jezik)|C]])
* proceduralni ([[Pascal (programski jezik)|Pascal]], [[C (programski jezik)|C]])
* funkcijski ([[npr.]] [[Lisp]], [[Erlang]], [[ML]])
* funkcijski ([[Lisp]], [[Erlang]], [[ML]])
* objektno orijentirani ([[npr.]][[Java (programski jezik)|Java]], [[C Plus Plus|C<nowiki>++</nowiki>]])
* objektno orijentirani ([[Java (programski jezik)|Java]], [[C Plus Plus|C<nowiki>++</nowiki>]])


== Programske paradigme ==
== Programske paradigme ==
Redak 55: Redak 54:
* [[Dodatak:Popis programskih jezika]]
* [[Dodatak:Popis programskih jezika]]


[[Kategorija: Programski jezici| ]]

<!-- interwiki -->


{{Link FA|he}}
{{Link FA|he}}

{{Link FA|vi}}
{{Link FA|vi}}

[[Kategorija: Programski jezici| ]]

Inačica od 7. ožujka 2014. u 20:58

Programski jezik je skup simbola i pravila za njihovu kompoziciju kojim se opisuje postupak računanja. Opis računanja u danom programskom jeziku interpretira, odnosno tumači, stroj koje nazivamo računalo. Poznati sinonimi za postupak računanja su algoritam i program.

Programski simbol je nedjeljiva cjelina koju računalo, odnosno tumač, "razumije" i prevodi u rad stroja. Niz simbola, grupiranih po pravilima programskog jezika, čine jezične izraze (rečenice) tog programskog jezika koji se zatim zapisuju na podatkovni medij i predaje računalu koje na svaki otkucaj sata čita i tumači jedan simbol programa zapisanog na podatkovnom mediju.

Da bi se jezik smatrao programskim jezikom mora ispunjavati uvjet poznat u svijetu matematike i računarske znanosti kao Turing potpunost, što jamči da dani programski jezik može opisati svaki računalni postupak (program/algoritam).

Osnovna podjela je na niže (strojne jezike) i više (orijentirane ljudima).

Viši jezici pak mogu biti:

Programske paradigme

U užem smislu paradigma programskog jezika podrazumijeva konceptualizaciju opisa programa, odnosno sintakse, i izvođenja programa, odnosno semantike. Razvoj programskih jezika i cijelokupne kulture računarske znanosti, urodilo je sa više stotina jezika. Svaki od tih jezika je osmišljen i prilagođen za određenu svrhu, bilo to intuitivnije i tečnije izražavanje programerske ideje ili pak optimalno izvođenje napisanog programa.

Važno je istaknuti jednu važnu i močnu činjenicu, a to je da od najednostavnijeg programskog jezika niske razine apstrakcije do najkomplesnijih modernih jezika visoke razine apstrakcije, njihova izražajnost je u potpunosti jednaka. Temelje dane tvrdnje 1936. godine postavio je britanski matematičar i otac računarske znanosti, Alan Turing, u revolucionarnom konceptu univerzalnog Turingovog stroja i Turingove potpunosti. Svojstvo univerzalnosti stroja ukratko znači da može izvoditi svaki matematički račun, algoritam odnosno program.

Dvije dijametralno suprotne paradigme se smatraju krajnjim točkama na pravcu programskih paradigmi, imperativna i funkcijska. Središnji koncept imperativne programske paradigme jest instrukcija ili naredba. Stroj tumači svaku instrukciju u programu na način da mijenja globalno stanje stroja. Suprotno tome u funkcijskoj paradigmi temeljni gradivni blok programa jest funkcija. S obzirom da se misli na matematičku funkciju, dijeljeno stanje ne postoji, ali se može simulirat. Tumačenje funkcijskog programa se svodi na zamjenu svake pojave primjene funkcije s njenom definicijom.

Odnos prirodnog i programskog jezika

Ključna razlika između prirodnog (ljudskog) i programskog jezika jest u jednoznačnosti tumačenja. Programski jezici su osmišljeni da jednoznačno opisuju svijet i time jamče determinističko izvođenje (tumačenje) tog opisa na stroju. Međutim, prirodni jezici su nastali u svrhu prenošenja ideja, bez prethodnog inženjerskog osmišljavanja strukture i značenja jezika, višeznačnost je predstavljala prihvatljivu grešku u tumačenju i prenošenju ideja.

Razmotrite rečenicu "2+2". Možemo izgraditi stroj koji će danu rečenicu jedinstveno protumačiti kao "zbroji dva i dva" i rezultirati će s brojem 4. Kakva korist bi bila u tome da stroj protumači ovaj izraz, ovisno o raspoloženju, kao "zbroji dva i tri" ili "oduzmi 2 i 2".

Zgodno je primjetiti kako ljudskim jezikom opisujemo okružujući svijet ideja, a taj opis tumače ljudi. Shodno tome čovjeka se može promatrati kao računalo koje prepoznaje i tumači ljudski jezik. Dodatno, linija odvajanja prirodnog i programskog jezika se čini dovoljno tanka da je prihvatljivo smatrati tu razliku evolucijom jezika.

Povijest programskih jezika

Sve je počelo sa strojnim jezicima (asemblerima), koji su se brzo izvršavali, ali sporo pisali, te se danas samo kritični dijelovi operativnih sustava pišu na taj način.

  • 1954. pojavio se Fortran, razvio ga je John Backus u IBM-u.
  • Iza Fortrana prvi se pojavio Algol, u kasnim 1950-im.
  • bili su to jezici nezgrapne sintakse, zato su došli Cobol 1960. i Basic 1964. godine sa svojom sintaksom koja sliči na engleski jezik.
  • dolazi vrijeme za razvoj "pravih" programskih jezika: Pascal Niklausa Wirtha i C Kena Thompsona i Dennisa Ritchie-a.
  • 1974. za potrebe vojske SADa razvijena je Ada.
  • OOP kuca na vrata: 1980. tu je Smalltalk-80, a 1985. pojavila se prva implementacija C++ koji je zamislio Bjarne Stroustrup.
  • 1987. Larry Wall je stvorio Perl.
  • 1990. Guido van Rossum je izbacio konkurenciju Perlu, Python.
  • 1994. pojavio se PHP Rasmusa Lerdorfa, koji je prvenstveno namijenjen kreiranju web aplikacija, (nešto poput JSPa i ASP-a za Javu i VisualBasic, respektivno).
  • 1996. pojavila se Java tvrtke Sun Microsystems.
  • krajem 1999. godine pojavio se D, koji je zanimljiva mješavina programskih jezika C, C++ i Jave.

Pogledajte također

Poveznice

Predložak:Link FA Predložak:Link FA