Поређење програмских језика
списак на Викимедији From Wikipedia, the free encyclopedia
Remove ads
Програмски језици се користе за контролу понашања машине (често рачунара). Као природни језици, програмски језици су у складу са правилима синтаксе и семантике.
Постоје хиљаде програмских језика[1] и сваке године се стварају нови. Мали број језика икада постане довољно популаран да њих користе више људи, али професионални програмери могу да користе десетине различитих језика у каријери.
Remove ads
Опште упоређивање
У следећој табели се упоређују опште и техничке информације најчешће коришћених програмских језика. Види чланке појединачних језика за додатне информације. Имајте на уму да у наредној табели можда недостаје неке информације.
Remove ads
Тип система
Кратке дефиниције
- Номинални тип система значи да језик одлучује да ли су врсте компатибилне и/или еквивалентне на основу експлицитних израза и назива.
- Структурални тип система значи да језик одлучује да ли су врсте компатибилне и/или еквиваленте на основу дефиниције и карактеристика врсте.
- Тип провере одређује да ли и када се могу утврдити врсте. Статичка провера значи да ли су типови грешкака пријављени на основу текста (изворни код). Динамичка провера значи да су типови грешака пријављени на основу динамике програма (рун-тајм) понашања.
- Несигуран operations are well isolated by a "Unchecked_" prefix.
- са optional динамичан type casting (see динамичан cast)
- It is almost безбедан, unбезбедан features are неt commonly used.
- са optional динамичан type (see динамичан member lookup)
- Optionally, куцање can be експлицитниly implied by the first letter of the identifier (known as имплицитни куцање саin the Fortran community).
- динамичан checking of type extensions i.e. inherited types
- експлицитни for статичан types
- optional for formal and virtual procedures
Remove ads
Грешка сигурности И/O и систем позива
Већина програмски језика ће одштампати поруку о грешци и/или избацити изузетак ако операција улаза/излаза или неки други систем позива (нпр chmod, kill) погреше, осим ако програмер није експлицитно уређен за различита руковање овим догађајима. Ово, ови језици ће сигурно одштампати грешку у том погледу.
Неки (углавном старији) језици захтевају да програмер експлицитно дода провере за ове врсте грешака. Психолошки, различите когнитивне предрасуде (нпр. оптимизам пристрасности) може да утиче на новајлије и стручњаке подједнако и ови пропусти могу довести до погрешног понашања.
set -e
enables termination if any unchecked exit status is неnzero.- gcc can warn on unchecked error status. Newer versions of Visual Studio usually throw exceptions on failed I/O when using stdio.
- g++ can warn on unchecked error status. Newer versions of Visual Studio usually throw exceptions on failed I/O when using stdio.
- Considerable error checking can be enabled optionally, but by default Perl is неt failбезбедан.
Remove ads
Изражајност
Литература о програмским језицима садржи обиље неформалних тврдњи о њиховој релативној изражајној моћи, али не постоји оквир за формализовање такве изјаве, а без последица.[37] Ова табела даје две мере изражајности из два различита извора. Додатни мера експресивности, у GZip bytes, може се наћи на Computer Language Benchmarks Game.
Remove ads
Бенчмаркови
Бенчмаркови су дизајнирани да опонашају одређену врсту оптерећења на компоненте или на цео систем. У рачунарским програмима се користе за израду неких података и у овом одељку можда нису у потпуности оптимизирани, а и релевантност података је спорна. Најпрецизнији тестови су они који су прилагођени за одређену ситуацију. Бенчмарк подаци других људи могу имати неку вредност, али правилно тумачење доноси многе изазове The Computer Језик Benchmarks Game сајт упозорава против over-generalizing from benchmark data, али садржи велики број микро-бенчмаркових читача-допринео је код, са интерфејсом који генерише различите графиконе и табеле које упоређују специфичне програмске језике и врсте тестова.
Remove ads
Хронологија поређења специфичних језика
- 1973 – „Comparative неtes on Algol 68 and PL/I”. – S. H. Valentine – February 1973
- 1976 – Evaluation of ALGOL 68, JOVIAL J3B, Pascal, Simula 67, and TACPOL Versus TINMAN – Requirements for a Common High Order Programming Language.
- 1977 – „A comparison of PASCAL and ALGOL 68”.[38] – Andrew S. Tanenbaum – June 1977.
- 1993 – Five Little Језикs and How They Grew – BLISS, Pascal, ALGOL 68, BCPL & C – Dennis M. Ritchie – April 1993.
- 2009 – On Go – oh, go on – How well will Google's Go stand up against Brand X programming language? – David Given – неvember 2009
Remove ads
Референце
Литература
Спољашње везе
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads