Поређење програмских језика (основне инструкције)
From Wikipedia, the free encyclopedia
Remove ads
Поређење програмских језика (основна упутства) Поређење програмских језика је уобичајена тема разговора међу софтверским инжењерима. Неколико основних упутстава програмских језика су овде.
![]() | Овај чланак можда захтева чишћење и/или прерађивање како би се задовољили стандарди квалитета Википедије. Проблем: Погрешан превод. Ако сте у могућности, побољшајте овај чланак. |
Конвенције овог чланка
bold је буквално код. Не-болд је тумачио читалац. Изјаве у знаковима су опционе (« … »). Tab ↹ указује на неопходну алинеју (са размаком).
Тип идентификатора
Цели бројеви
^a стандарне Стандардне константе кратко int и int дужине могу да се користе за одређивање колико 'кратких и' дугих и могу бити корисне префиксима за 'кратак int' и 'дуг int'. Стварна величина 'кратког int', 'int' и 'дугог int' је доступна као кратке константе max int, max int и long max int итд.
^b Обично се користи за знакове .
^c ALGOL 68, C и C++ језици не прецизирају тачну ширину врсте целобројних вредности short, int, long, и (C99, C++11) long long, тако да су имплементације-зависне. У C и C++ short, long, и long long типови се захтевају да буду најмање 16, 32, и 64 бита, али не могу бити већи. Тип int је потребно да буде бар исто толико широк као short и највише широк као long, и обично ширина величине речи у процесору машине (нпр на 32-битном машину је често 32 бита; на 64-битним машинама често је на 64 бита). С99 и C++ 11 је такође дефинисан са [u]intN_t тачне ширине врсте у stdint.h хедеру.
^d Perl 5 нема различитих типова. Цели бројеви, децимални, стрингови, итд се сматрају "скаларима".
^e PHP има два произвољно-прецизне библиотеке. BCMath библиотека користи само стрингове као што су datatype. GMP библиотка користи интерни "ресурс" тип.
^f Вредност "n" је обезбеђена SELECTED_INT_KIND SELECTED_INT_KIND[4] унутрашњом функцијом.
^g ALGOL 68Gниз опција времена --precision "number" е може подесити precision long long ints до жељеног "броја" значајних цифара. Стандардне константе long long int width и long long max int могу бити коришћене за одређивање стварне прецизности.
^h COBOL омогућава спецификацију потребне прецизности и аутоматски ће одабрати доступан тип који је способан да представља одређену прецизност. "PIC S9999", на пример, је био потребан за потписавање четири променљивих децималних цифара прецизности. Ако је наведено као бинарно поље, то би се изабрало 16 битним типом на већини плат форми.
^i Smalltalk аутоматски бира одговарајућу заступљеност интегралних бројева. Типично, две репрезентације су присутне, једна за целе бројева се уклапа у природну величину реч минус (SmallInteger) и једна подржава произвољне величине целих бројева (LargeInteger). Аритметичке операције су подржане полиморфним аргументима и враћају резултат на најадекватније компактне репрезентације.
^j Ada опсег проверава граничне прекршаје у run-time (као и на компајлирању статичких израза). run time граница кршења подиже "ограничење грешке" изузетак. Опсег није ограничен на степену два. Обично предефинисани целобројни подтипови су:Positive (range 1 .. Integer'Last) and Natural (range 0 .. Integer'Last). Short_Short_Integer (8 бајтова), Short_Integer (16 бајтова) and Long_Integer (64 бајтова) су такође предефинисане, али не захтевају Ада стандарде. Run time чекови се могу искључити уколико је учинак важнија од интегритета провере.
^k Adамодуло типови спроводе по модулу аритметике у свим операцијама, односно нема могућих кршења домета. Модули нису ограничени на овлашћења два.
^l Обично се користи за типове попут Јава знака.
^m intint у PHP има исту ширину као long type у C коју он има на том систему [c].
^n Erlang динамички куца. Тип идентификатора су се обично користи за спецификацију врсте рекордног поља и аргумента и враћа врсте функција.[5]
^o Када прелази једну реч.[6]
Декадни систем
^a Стандардне константе real shorts и real lengths се могу користити за одређивање 'short и 'long и за поправљање 'short real' и 'long real'. Актуелне величине 'short real', 'real' и 'long real' су доступне као константе short max real, max real и long max real etc. Са константама short small real, small real и long small real доступни су разни типови епсилон машина.
^b декларације просте прецизности се често не поштују
^c Вредност "n" је обезбеђена SELECTED_REAL_KIND[8] унутрашњом функцијом.
^d ALGOL 68G's run time опција оже се подесити прецизним long long reals до обезбеђења "number" значајних цифара. Стандарднеконстанте long long real width и 'long long max real могу се користити за одређивање стварне прецизност.
^e IEEE децимални тип ће бити уведен следећим COBOL стандардом.
^f Исте величине као 'double' на многим имплементацијама.
Комплексни бројеви
Остале врсте баријабли
^a конкретно, управља низовима произвољне дужине аутоматски.
^b Овај језик представља булеан као цео број где лажно представља вредност од нуле и истину од не-нула вредности.
^c Све вредности су или тачне или нетачне. Све TrueClass једнакости тачности и све FalseClass једнакости нетачности.
^d Овај језик нема посебан тип знакова. Знакови су представљени као стрингови дужине 1.
^e Набрајања на овом језику су алгебарске врсте само са нулари конструкторима
^f Вредност "n" је обезбеђена SELECTED_INT_KIND[4] унутрашњом функцијом.
Remove ads
Изведене врсте
Низ
^a У већини израза (осим sizeof и & оператора), вредности низа типа у C се аутоматски претварају у показивача свог првог аргумента.
^b C-like "type x[]"ради у Java, како год "type[] x" је пожељан облик низа декларације.
^c Subranges се користи за дефинисање границе низа.
^d JavaScript низови су посебна врста објекта.
^e The DEPENDING ON
услов у COBOL не ствара за "тачну" променљиву дужине низа и увек ће издвојити максималну величину низа.
Други типови
^a Подржане су само класе.
^b struct
s У C++ СУ заправо класе, али су подразумеване у јавности и такође ПОД објекти. C++11 је додатно проширен, како би настало деловање идентичног ПОД објекта у многим случајевима
^c Само пар
^d Иако Перл нема евиденцију, јер је тип система који омогућава различите врсте података у низу, "hashes" (асоцијативни низови) немају променљиви индекс који ће ефикасно бити исти као и евиденције.
^e Набрајања на овом језику су алгебарске врсте са само нулари конструкторима
Remove ads
Варијабиле и константе декларације
^a Паскал има декларацију блокова.
^b Типови су само редовни објекти, тако да можете само да их доделите.
^c У Перлу, "my" кључна реч сцопес је променљива у блоку.
^d Технички, то не изјашњава име да буде променљива променљива у МЛ, сви називи могу бити везани само једном; уместо тога, он изјављује име до тачке на структури "референтног" податка, која је једноставна променљиво колона. Структура података се онда може читати и писати користећи ! и := операторе.
^[e] . Ако нема почетне вредности, основна вредност се аутоматски додељује (коју ће изазвати Рун-тиме изузетак ако се користи пре него што важи вредност која је додељена). Иако се овакво понашање може потиснути препоручљиво је у интересу предвидљивости. Ако нема неважећих вредности може се наћи за тип (на пример у случају несметано типа интегер), ваљана, али предвидљива вредност је изабрана уместо тога.
Remove ads
Управљање током
Условни искази
- ^a Једна инструкција може бити написана на истој линији након главног дела. Вишеструка упутства су груписана у блоку који почиње новим редом (увлачење је потребно). Условна исказна синтакса не прати ово правило.
- ^b Ово је образац подударања и сличан је изабраном случају али не и исти. Обично се користи да деконструише алгебарски тип структуре.
- ^c У језицима сличним Паскалу, запета није део изјаве. То је сепаратор између изјава, не терминатор.
- ^d END-IF може да се користи уместо периода на крају.
While изјаве
- ^a "step n" се користи за промену интервал петље. Ako је "step" изостављен, онда интервал петља је 1.
- ^b Овај спроводи универзални квантификатор ("за све" или "∀") као и егзистенцијални квантификатор ("постоји" или "∃").
- ^c THRU се може користити уместо THROUGH.
- ^d «IS» GREATER «THAN» се може користити уместо >.
Изузеци
- ^a Common Lisp омогућује
with-simple-restart
,restart-case
иrestart-bind
за дефинисање рестартовања за коришћење саinvoke-restart
. Услови неизузетака се могу изазвати применама да покажу кориснику да се мени рестартује пре него што одпочне. - ^b Безусловни изузеци су пропагирани у најдубља динамички прихватна извршења. Изузеци не пропагирају преко задатака (осим ако су ови задаци тренутно синхронизовани у састанцима).
Остали извештаји управљања протоком
Remove ads
Потпрограм
- ^a Паскал захтева "forward;" за forward декларацијаs.
- ^b Ајфелова омогућава спецификацију корена класе апликацију и функције.
- ^c У Фортрану, функција/потпрограм параметара се називају аргументима (док PARAMETER је кључна реч језика); CALL је кључна реч за потпрограм.
- ^d Користи уместо "foo", низа променљиву која се може користити уместо садржаја исте вредности.
Remove ads
Тип конверзија
Где је string означен као децимални број:
^a JavaScript користи само децимални број, тако да су неки техникалије.[7]
^b Перл нема одвојене врсте. Стрингови и бројеви су заменљиви.
^c NUMVAL-C
или NUMVAL-F
се могу заменити уместо NUMVAL
.
Remove ads
Стандардни ток I/O
^a Algol 68 додатно као "неформатирани" транспут рутина: read, write, get и put.
^b gets(x) и fgets(x, length, stdin) прочитајте неформатирани текст из стдин. Коришћење добијања се не препоручује.
^c puts(x) и fputs(x, stdout) напише неформатирани текст на стдоут.
^d fputs(x, stderr) пише неформатирани текст на стдоут.
^e INPUT_UNIT, OUTPUT_UNIT, ERROR_UNIT су дефинисани у ISO_FORTRAN_ENV модулу.[14]
Remove ads
Читање командне линије интерфејса
- ^a Командна линија у Visual Basic није одвојена. Сплит функција
Split(string)
је потребна за их раздваја. - ^b стандардни КОБОЛ не укључује било који начин за приступање командне линије аргумената, али заједнички компајлер-екстензије за приступ њима укључује дефинисање параметара за главни програм или помоћу
ACCEPT
исказ.
Remove ads
Извршење команди
Remove ads
Референце
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads