Програмски језик — разлика између измена

Садржај обрисан Садржај додат
м Враћене измене OPfactionY (разговор) на последњу измену корисника Dcirovicbot
ознака: враћање
м .
Ред 34:
 
; Функција и циљ
: ''Рачунарски програмски језик'' је [[формални језик|језик]] који се користи за писање [[рачунарски програм|рачунарских програма]], чиме су обухваћени [[рачунар]] који изводи неку врсту рачунања<ref name=sigplan>{{cite web|author=[[Association for Computing Machinery|ACM]] SIGPLAN| title = Bylaws of the Special Interest Group on Programming Languages of the Association for Computing Machinery| url = http://www.acm.org/sigs/sigplan/sigplan_bylaws.htm| accessdate=19. 6. 2006|year=2003| deadurl url-status= nolive| archiveurl = https://web.archive.org/web/20060622110145/http://www.acm.org/sigs/sigplan/sigplan_bylaws.htm| archivedate=22. 6. 2006.|df=dmy-all}}, ''The scope of SIGPLAN is the theory, design, implementation, description, and application of computer programming languages - languages that permit the specification of a variety of different computations, thereby providing the user with significant control (immediate or delayed) over the computer's operation.''</ref> или [[алгоритам]] и могуће контролу спољашњих уређаја као што су [[штампач]]и, [[Disk storage|дискови]] за чување података, [[робот]]и,<ref name="robots">{{cite web|url=http://www.cs.brown.edu/people/tld/courses/cs148/02/programming.html | title = Programming Robots | accessdate=23. 9. 2006. | last=Dean| first = Tom |year=2002| work = Building Intelligent Robots | publisher = Brown University Department of Computer Science | deadurl url-status= nolive | archiveurl = https://web.archive.org/web/20061029045949/http://www.cs.brown.edu/people/tld/courses/cs148/02/programming.html | archivedate=29. 10. 2006. |df=dmy-all}}</ref> и тако даље. На пример, -{[[PostScript]]}- програме фреквентно праве други програми ради контроле рачунарског притера или дисплеја. Генералније, програмски језик може да опише рачунање на некој, можда апстрактној, машини. Генерално је прихваћено да комплетна спецификација за програмски језик обухвата опис, често идеализовани, машине или процесора за тај језик.<ref name=nara2>R. Narasimahan, Programming Languages and Computers: A Unified Metatheory. pp. 189--247 in Franz Alt, Morris Rubinoff (eds.) Advances in computers, Volume 8. {{page1|location=|publisher=Academic Press|year=1994|isbn=978-0-12-012108-3|pages=193}} : "a complete specification of a programming language must, by definition, include a specification of a processor--idealized, if you will--for that language." [the source cites many references to support this statement]</ref> У већини практичних сценарија, програмски језик је везан за рачунар; консеквентно, програмски језици се обично дефинишу и проучавају на тај начин.<ref>{{Cite book|last=Ben Ari| first = Mordechai| title = Understanding Programming Languages| publisher = John Wiley and Sons|year=1996| quote = Programs and languages can be defined as purely formal mathematical objects. However, more people are interested in programs than in other mathematical objects such as groups, precisely because it is possible to use the program—the sequence of symbols—to control the execution of a computer. While we highly recommend the study of the theory of programming, this text will generally limit itself to the study of programs as they are executed on a computer.}}</ref> Програмски језици се разликују од [[natural language|природних језика]] по томе што се природни језици једино користе за комуникацију међу људима, док програмски језици исто тако омогућавају људима да комуницирају инструкције машинама.
; Апстракције
: Програмски језици обично садрже [[abstraction (computer science)|апстракције]] за дефинисање и манипулисање [[структура података|структурама података]] или контролисање [[контрола тока|извршног протока]]. Практична неопходност да програмски језик подржава адекватне апстракције је изражена [[Abstraction principle (computer programming)|принципом апстракције]],{{sfn|Schmidt|1994|p=32}} који се понекад формулише као препорука програмеру да на одговарајући начин користи такве апстракције.{{sfn|Pierce|2002|p=339}}
; Изражајна моћ
: [[Теорија израчунљивости]] класификује језике по прорачунима које су способни да изразе. У свим језицима који су потпуни у [[Turing completeness|Тјуринговом]] смислу може се имплементирати исти сет [[алгоритам]]а. [[SQL-92|-{ANSI/ISO SQL-92}-]] и [[Charity (programming language)|-{''Charity''}-]] су примери језика који нису Тјурингов потпуни, мада се често називају програмским језицима.<ref>{{cite web|author=Digital Equipment Corporation| title = Information Technology - Database Language SQL (Proposed revised text of DIS 9075)| url = http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt| work = ISO/IEC 9075:1992, Database Language SQL| accessdate=29. 6. 2006.| deadurl url-status= nolive| archiveurl = https://web.archive.org/web/20060621035823/http://www.contrib.andrew.cmu.edu/%7Eshadow/sql/sql1992.txt| archivedate=21. 6. 2006.|df=dmy-all}}</ref><ref>{{cite web|author=The Charity Development Group| title = The CHARITY Home Page| url = http://pll.cpsc.ucalgary.ca/charity1/www/home.html|date=December 1996| accessdate=29. 6. 2006.| deadurl url-status= nolive| archiveurl = https://web.archive.org/web/20060718010551/http://pll.cpsc.ucalgary.ca/charity1/www/home.html| archivedate=18. 7. 2006.|df=dmy-all}}, ''Charity is a categorical programming language...'', ''All Charity computations terminate.''</ref>
 
[[Jezik za obeležavanje|Језици за обележавање]] као што су -{[[XML]]}-, -{[[HTML]]}-, или -{[[troff]]}-, и који дефинишу [[Data model|структуиране податке]], обично се не сматрају програмским језицима.<ref>[http://www.w3.org/XML/1999/XML-in-10-points.html XML in 10 points] {{webarchive| url = https://web.archive.org/web/20090906083110/http://www.w3.org/XML/1999/XML-in-10-points.html |date=6. 9. 2009. }} [[W3C]], 1999, ''XML is not a programming language.''</ref>{{sfn|Powell|2003|p=25}} Програмски језици могу, међутим, да имају заједничку синтаксу са језицима за обележавање, ако је рачунарска семантика дефининсана. -{[[XSLT]]}-, на пример, је [[Turing completeness|Тјурингов комплетан]] -{XML}- дијалекат.<ref>{{cite web|url=http://www.ibm.com/developerworks/library/x-xslt/| title = What kind of language is XSLT?| publisher = IBM.com| accessdate=3. 12. 2010.| deadurl url-status= nolive| archiveurl = https://web.archive.org/web/20110511192712/http://www.ibm.com/developerworks/library/x-xslt/| archivedate=11. 5. 2011.|df=dmy-all}}</ref><ref>{{cite web|url=http://msdn.microsoft.com/en-us/library/ms767587(VS.85).aspx| title = XSLT is a Programming Language| publisher = Msdn.microsoft.com| accessdate=3. 12. 2010.| deadurl url-status= nolive| archiveurl = https://web.archive.org/web/20110203015119/http://msdn.microsoft.com/en-us/library/ms767587(VS.85).aspx| archivedate=3. 2. 2011.|df=dmy-all}}</ref>{{sfn|Scott|2006|pp=802}} Штавише, -{[[LaTeX]]}-, који се углавном користи за структуирање докумената, исто тако садржи пун Тјурингов комплетан подскуп.<ref name="Oetiker et Al., 2017">{{cite web|last=Oetiker| first = Tobias| last2=Partl| first2 = Hubert| last3=Hyna| first3 = Irene| last4=Schlegl| first4 = Elisabeth| title = The Not So Short Introduction to LATEX 2ε| url = https://tobi.oetiker.ch/lshort/lshort.pdf| website = tobi.oetiker.ch| accessdate=16. 4. 2017.| format = Version 5.06|year=2016| deadurl url-status= nolive| archiveurl = https://web.archive.org/web/20170314015536/https://tobi.oetiker.ch/lshort/lshort.pdf| archivedate=14. 3. 2017.|df=dmy-all|pages=1–157}}</ref>{{sfn|Syropoulos|2003|pp=213}}
 
Термин ''рачунарски језик'' се понекад користи синонимно са програмским језиком.<ref>Robert A. Edmunds, The Prentice-Hall standard glossary of computer terminology, Prentice-Hall, (1985). pp. 91</ref> Међутим, употреба ова два термина варира међу ауторима, а постоје разлике и у погледу њиховог тачног опсега. Један облик употребе описује програмске језике као подскуп рачунарских језика.<ref>Pascal Lando, Anne Lapujade, Gilles Kassel, and Frédéric Fürst, ''[http://home.mis.u-picardie.fr/~site-ic/site/IMG/pdf/ICSOFT2007_final.pdf Towards a General Ontology of Computer Programs] {{webarchive| url = https://web.archive.org/web/20150707093557/http://home.mis.u-picardie.fr/~site-ic/site/IMG/pdf/ICSOFT2007_final.pdf |date=7. 7. 2015. }}'', [http://dblp.uni-trier.de/db/conf/icsoft/icsoft2007-1.html ICSOFT 2007] {{webarchive| url = https://web.archive.org/web/20100427063709/http://dblp.uni-trier.de/db/conf/icsoft/icsoft2007-1.html |date=27. 4. 2010. }}. pp. 163–170</ref> У том смислу, језици који се користе у рачунарству са различитим циљевима него што су изражавања рачунарких програма генерално су наменски дизајнирани рачунарски језици. На пример, језици за обележавање се понекад називају рачунарским језицима да би се нагласило да они нису намењени да се користе за програмирање.<ref>S.K. Bajpai, ''Introduction To Computers And C Programming'', New Age International. {{page|year=2007|isbn=978-81-224-1379-3|pages=346}}</ref>