WikiDer > Dasturlash tillarini taqqoslash (sintaksis)
Ushbu taqqoslash dasturlash tillari xususiyatlarini taqqoslaydi til sintaksisi (format) 50 dan ortiq kompyuter dasturlash tillari uchun.
Ifodalar
Dasturlash tili iboralar to'rtta sintaksis tuzilmalariga keng tasniflanishi mumkin:
- prefiks belgisi
- Lisp (* (+ 2 3) (expt 4 5))
- infix notation
- Fortran (2 + 3) * (4 ** 5)
- qo'shimchasi, postfiksi yoki Teskari Polsha yozuvlari
- To'rtinchi 2 3 + 4 5 ** *
- matematikaga o'xshash yozuv
- TUTOR (2 + 3)(45) $$ eslatma ko'paytirish operatori
Bayonotlar
Dasturlash tili bayonotlar odatda quyidagilar uchun konventsiyalar mavjud:
- bayonotlarni ajratuvchi vositalar;
- bayonotni to'xtatuvchilar; va
- chiziq davomi
Ikki alohida bayonotlar orasidagi chegaralarni belgilash uchun bayonot ajratuvchisi ishlatiladi. Shaxsiy bayonotning oxirini belgilash uchun bayonot terminatoridan foydalaniladi. Satrning oxirini bayonotning oxiri deb izohlaydigan tillarga "yo'nalishga yo'naltirilgan" tillar deyiladi.
"Chiziqni davom ettirish" - bu satrga yo'naltirilgan tillarda konventsiya bo'lib, unda yangi satr belgisi bayonot terminatori sifatida noto'g'ri talqin qilinishi mumkin. Bunday tillarda u bitta gapni bitta qatordan ko'proq qamrab olishga imkon beradi.
| Til | Bayonnomani ajratuvchi-terminator | Ikkilamchi ajratuvchi[1] |
|---|---|---|
| ABAP | davr ajratilgan | |
| Ada | vergul tugadi | |
| ALGOL | vergul bilan ajratilgan | |
| ALGOL 68 | vergul va vergul ajratilgan[2] | |
| APL | yangi raqam bekor qilindi | ⋄ ajratilgan |
| AppleScript | yangi raqam bekor qilindi | |
| AutoHotkey | yangi raqam bekor qilindi | |
| ASOSIY | yangi raqam bekor qilindi | yo'g'on ichak ajratilgan |
| Boo | yangi raqam bekor qilindi | |
| C | nuqta-vergul bayonotlarni tugatadi | vergul ifodalarni ajratib turadi |
| C ++ | nuqta-vergul bayonotlarni tugatadi | vergul ifodalarni ajratib turadi |
| C # | vergul tugatildi | |
| COBOL | bo'sh joy ajratilgan, ba'zan nuqta ajratilgan, ixtiyoriy ravishda vergul va yarim nuqta bilan ajratilgan. | |
| Kobra | yangi raqam bekor qilindi | |
| CoffeeScript | yangi raqam bekor qilindi | |
| CSS | vergul bilan ajratilgan | |
| D. | vergul tugatildi | |
| Eyfel | yangi raqam bekor qilindi | vergul |
| Erlang | yo'g'on ichak ajratilgan, muddat tugagan | |
| F # | yangi raqam bekor qilindi | vergul |
| Fortran | yangi raqam bekor qilindi | vergul |
| To'rtinchi | nuqta-vergul so'z ta'riflarini bekor qiladi | |
| GFA BASIC | yangi raqam bekor qilindi | |
| Boring | vergul bilan ajratilgan (kompilyator tomonidan kiritilgan) | |
| Xaskell (notada) | yangi qator ajratildi | |
| Xaskell (brauzerlardan foydalanilganda) | vergul bilan ajratilgan | |
| Java | vergul tugadi | |
| JavaScript | vergul bilan ajratilgan (lekin ba'zida yangi qatorlarga bevosita kiritiladi) | |
| Kotlin | vergul bilan ajratilgan (lekin ba'zida yangi qatorlarga bevosita kiritiladi) | |
| Lua | bo'sh joy ajratilgan (vergul-ixtiyoriy) | |
| Matematik | vergul bilan ajratilgan | |
| MATLAB | yangi raqam bekor qilindi | vergul yoki vergul[3] |
| Ob'ekt Paskal (Delphi) | vergul bilan ajratilgan | |
| Maqsad-C | vergul tugatildi | |
| OCaml | vergul bilan ajratilgan | |
| Paskal | vergul bilan ajratilgan | |
| Perl | vergul bilan ajratilgan | |
| PHP | vergul tugatildi | |
| Asosiyni tanlang | yangi raqam bekor qilindi | vergul bilan ajratilgan |
| PowerShell | yangi raqam bekor qilindi | vergul bilan ajratilgan |
| Prolog | vergul bilan ajratilgan (birikma), vergul bilan ajratilgan (disjunktsiya), nuqta tugadi (band) | |
| Python | yangi raqam bekor qilindi | vergul |
| Raku | vergul bilan ajratilgan | |
| Qizil | bo'sh joy ajratildi | |
| Yoqut | yangi raqam bekor qilindi | vergul |
| Zang | nuqta-vergul bayonotlarni tugatadi | vergul ifodalarni ajratib turadi |
| Scala | yangi satr bekor qilindi (nuqta-vergul ixtiyoriy) | vergul |
| 7. Urug ' | vergul bilan ajratilgan (vergul bilan tugatishga ruxsat beriladi) | |
| Simula | vergul bilan ajratilgan | |
| S-Lang | vergul bilan ajratilgan | |
| Kichik munozarasi | davr ajratilgan | |
| Standart ML | vergul bilan ajratilgan | |
| Tez | vergul bilan ajratilgan (kompilyator tomonidan kiritilgan) | |
| Visual Basic | yangi raqam bekor qilindi | yo'g'on ichak ajratilgan |
| Visual Basic .NET | yangi raqam bekor qilindi | yo'g'on ichak ajratilgan |
| Wolfram tili | vergul bilan ajratilgan | |
| Xojo | yangi raqam bekor qilindi | |
| Til | Bayonnomani ajratuvchi-terminator | Ikkilamchi ajratuvchi[1] |
Chiziqning davomi
Chiziqni davom ettirish odatda bir qismi sifatida amalga oshiriladi leksik tahlil: yangi satr odatda token oqimiga belgi qo'shilishiga olib keladi, agar chiziq davomi aniqlanmasa.
- Bo'shliq - davom ettirishga muhtoj bo'lmagan tillar
- Ada - chiziqlar nuqta-vergul bilan tugaydi
- C # - chiziqlar nuqta-vergul bilan tugaydi
- JavaScript - chiziqlar nuqta-vergul bilan tugaydi (ular haqida xulosa qilish mumkin)
- Lua
- OCaml
- Ampersand chiziqning oxirgi belgisi sifatida
- Orqa chiziq chiziqning oxirgi belgisi sifatida
- bosh[4] va boshqa Unix chig'anoqlari
- C va C ++ oldingi protsessor
- Matematik va Wolfram tili
- Python[5]
- Yoqut
- JavaScript - faqat bitta yoki ikkita tirnoqli satrlar ichida
- Backtick chiziqning oxirgi belgisi sifatida
- Tire chiziqning oxirgi belgisi sifatida
- Pastki chiziq chiziqning oxirgi belgisi sifatida
- Ellipsis (uchta davr sifatida - bitta maxsus belgi emas)
- MATLAB: Ellipsis belgisi satrdagi so'nggi belgilar bo'lmasligi kerak, ammo unga rioya qilingan har qanday kishi e'tiborga olinmaydi.[6] (Aslida, u kengaytirilgan sharhni boshlaydi orqali (ya'ni, shu jumladan) birinchi keyingi yangi satr belgisi. Buni kengaytirilgan ichki sharh bilan taqqoslang qadar birinchi keyingi yangi qator.)
- Vergul bilan ajratuvchi chiziqning oxirgi belgisi sifatida
- Ruby (izoh ajratuvchiga qarab ketishi mumkin)
- Chap qavsni ajratuvchi chiziqning oxirgi belgisi sifatida
- Ommaviy fayl: Qavslar blokini boshlash qatorni davom ettirishga imkon berishi mumkin[7]
- Yoqut: chap qavs, chap kvadrat qavs yoki chap jingalak qavs
- Operator chiziqning so'nggi ob'ekti sifatida
- Ruby (izoh operatorni ta'qib qilishi mumkin)
- Operator davom etgan qatorning birinchi belgisi sifatida
- AutoHotkey: ++ va - dan tashqari har qanday ifoda operatorlari, shuningdek vergul yoki nuqta[8]
- Orqa chiziq davom etgan qatorning birinchi belgisi sifatida
- Ba'zi shakllari ichki sharh chiziq davomi sifatida xizmat qiladi
- Turbo yig'uvchi:
- m4:
dnl - TeX:
%
- Belgining pozitsiyasi
- Fortran 77: 6-ustunda bo'sh joy bo'lmagan belgi paydo bo'lsa, sharhlanmagan satr oldingi sharhlanmagan satrning davomi.
- COBOL: String konstantalarini PICTURE bandidagi asl satrni tugatmasdan davom ettirish mumkin
', keyin a qo'shib qo'ying-7-ustunda (. bilan bir xil holat*izoh uchun ishlatiladi.) - TUTOR: Yorliqdan boshlanadigan satrlar (kontekst talab qiladigan har qanday kirishdan keyin) oldingi buyruqni davom ettiradi.
- Oddiy tirnoqlardan foydalanib [End va Begin]
- C va C ++ oldingi protsessor: mag'lubiyat normal tugaydi va keyingi satrda tirnoq bilan boshlanib davom etadi.
Kutubxonalar
Ushbu bo'lim kengayishga muhtoj. Siz yordam berishingiz mumkin unga qo'shilish. (2009 yil dekabr) |
Kimga Import a kutubxona tashqi, ehtimol tuzilgan, muntazam ravishda, dasturlarni yoki paketlarni o'qish usuli. Import darajasi (modul, paket, sinf, protsedura, ...) va sintaksis (direktiv nomi, atributlar, ...) bo'yicha tasniflanishi mumkin.
- Faylni import qilish
addpath (katalog)MATLAB [9]Fayl nomini nusxalash.COBOL: -kiritish ("Fayl nomi").Prolog#include file = "Fayl nomi"ASP#kiritish "Fayl nomi", AutoHotkey, AutoIt, C, C ++# o'z ichiga oladi <Fayl nomi>AutoHotkey, AutoIt, C, C ++#Import "Fayl nomi", Maqsad-C#import <Fayl nomi>Maqsad-CImport ["fayl nomi"]Matematik va Wolfram tili"fayl nomi" ni o'z ichiga oladiFortrano'z ichiga oladi "Fayl nomi";PHPo'z ichiga oladi [fayl nomi] dasturi, Asosiyni tanlang# fayl nomini o'z ichiga oladiAsosiyni tanlango'z ichiga oladi! ("Fayl nomi");Zangyuklash "Fayl nomi"Falcon% fayl nomini yuklangQiziltalab qilish ("Fayl nomi")Luatalab "Fayl nomi";Perl, PHPmanba ("" fayl nomi "")R
- Paketni import qilish
# shu jumladan Fayl nomiC, C ++# [path = "Fayl nomi"] mod familiya;, Zang@Import modul;Maqsad-C<<ismMatematik va Wolfram tili: -use_module (modul).Prolog:dan modul Import *Pythontashqi sandiq libname;, Zangtashqi sandiq libname kabi familiya;Zangmod modname;, Zangkutubxona ("to'plam")R:yuk modul, Falconyuk modul.submoduleFalconIMPORT modulOberonaltname import "paket / ism"Boring:Import paket.module;, D.Import familiya = paket.module;D.Import Modul, Xaskellimport malakali Modul kabi MXaskellImport paket.*Java, MATLAB, kotlinImport "modname";JavaScript:Import familiya dan "modname";, JavaScript:Import paketScalaImport paket._, ScalaImport modulTezImport modul, Pythontalab qilish ("modname")Lua:foydalanish modul, Fortran 90+foydalanish modul, faqat: identifikatorFortran 90+moduldan foydalaning;, Perlqw modulidan foydalaning (import qilish imkoniyatlari);PerlPackage.Name-dan foydalaningKobrafoydalanadi birlikPaskalbilan paketAda
- Sinf importi
dan modul Import sinfPythonImport sinfFalconImport paket.sinfJava, MATLAB, kotlinImport sinf "modname" dan;, JavaScriptImport {sinf} "modname";, JavaScriptImport {sinf kabi familiya} "modname";JavaScriptImport paket.sinf, ScalaImport paket.{ sinf1 => muqobilName, sinf2 }, ScalaImport paket._Scalafoydalanish NamespaceClassName;, PHPfoydalanish AliasName sifatida NamespaceClassName;PHP
- Protsedura / funktsiyalarni import qilish
dan modul Import funktsiyaPython:Import paket.module : belgi;, D.:Import paket.module : altsymbolname = belgi;D.:Import Modul (funktsiya)Xaskell:Import funktsiya "modname" dan;, JavaScript:Import {funktsiya} "modname";, JavaScript:Import {funktsiya kabi familiya} "modname";JavaScript:Import paket.funktsiyaMATLAB:Import paket.sinf.funktsiya, Scala:Import paket.sinf.{ funktsiya => muqobilName, otherFunction }Scala:moduldan foydalaning ('belgi');Perl:funktsiyadan foydalanish Ism maydoni funktsiyasi_name;, PHP:foydalanish Namespacefunction_name function_alias_name sifatida;PHP:foydalanish modul::submodule::belgi;, Zang:foydalanish modul::submodule::{belgi1, belgi2};, Zang:foydalanish modul::submodule::belgi kabi familiya;Zang:
- Doimiy import
constdan foydalaning Ism maydoniCONST_NAME;PHP
Yuqoridagi bayonotlar, shuningdek, sintaktik qulaylik (narsalar qisqartirilgan nom bilan atalishiga imkon beradi, lekin ularni import qilinmasdan ham to'liq malakali ism bilan atalishi mumkin) yoki ular aslida kirish huquqiga ega bo'ladimi-yo'qligi bilan tasniflanishi mumkin. kod (bu holda, hatto to'liq malakali ismlar bilan ham kodga kirish mumkin emas).
- Sintaktik qulaylik
- Kodga kirish uchun talab qilinadi
altname import "paket / ism"BoringImport familiya dan "modname";JavaScriptImport modulPython
Bloklar
A blokirovka qilish bu bir butunni o'z ichiga oladigan tarzda bog'langan ikki yoki undan ortiq bayonotlar, iboralar yoki boshqa kod birliklari guruhi uchun yozuvdir.
- Qavslar (a.a. jingalak qavslar)
{...}
- Buruq qavsli dasturlash tillari: C, C ++, Maqsad-C, Boring, Java, JavaScript/ECMAScript, C #, D., Perl, PHP (
uchun&pastadirko'chadan yoki blokni argument sifatida o'tkazing), Zang, Scala, S-Lang, Tez, Windows PowerShell, Xaskell (yozuvda), AutoHotkey
- Qavslar
(...)
- Kvadrat qavslar
[...]
- Kichik munozarasi (bloklar - bu birinchi sinf ob'ektlari. a.k.a. yopilish)
boshlash...oxiri
- Ada, ALGOL, Paskal, Yoqut (
uchun,do / while&bajaring / qadarilmoqlar), OCaml, SCL, Simula, Erlang.
qil...oxiri
qil...amalga oshirildi
- Bosh (
uchun&esailmoqlar), Visual Basic, Fortran, TUTOR (blok korpusining majburiy indententi bilan), Visual Prolog
qil...oxiri
- Lua, Yoqut (bloklarni argument sifatida o'tkazing,
uchunpastadir), 7. Urug ' (orasidagi tsikl tanalarini qamrab oladiqilvaoxiri)
- X ...
oxiri(masalan,agar...oxiri):
- Yoqut (
agar,esa,qadar,def,sinf,modulbayonotlar), OCaml (uchun&esailmoqlar), MATLAB (agar&almashtirishshartli,uchun&esailmoqlar,harakat qilib ko'ringband,paket,classdef,xususiyatlari,usullari,voqealar, &funktsiyabloklar), Lua (keyin/boshqa&funktsiya)
- (
boshlash...)
- (prognoz ...)
- (
qil...)
- Chiziq
- Chet el qoidalari tillari: Kobra, CoffeeScript, F #, Xaskell (qavslar tushirilganda do-notation), okam, Python
- Erkin shakldagi tillar: ko'p avlodlar ALGOL (shu jumladan C, Paskalva Perl); Lisp tillar
- Boshqalar
- Ada, Visual Basic, 7. Urug ':
agar...tugatish agar - APL:
: Agar...: EndIfyoki: Agar...:Oxiri - Bosh, shva ksh:
agar...fi,qil...amalga oshirildi,ish...esac; - ALGOL 68:
boshlash...oxiri,(...),agar...fi,qil...od - Lua, Paskal, Modula-2, 7. Urug ':
takrorlang...qadar - COBOL:
IF...END-IF,IJRO...Tugatishbayonotlar uchun va boshqalar; ....jumlalar uchun. - Visual Basic .Net:
Agar...Agar tugatish,Uchun...Keyingisi,Qil...Loop - Kichik asosiy:
Agar...EndIf,Uchun...EndFor,Esa...Oxirida
Izohlar
Izohlar quyidagicha tasniflanishi mumkin:
- uslubi (ichki / blok)
- tahlil qoidalari (e'tiborsiz / interpolatsiya qilingan / xotirada saqlanadi)
- rekursivlik (joylashiladigan / joylashtirilmaydigan)
- ishlatadi (dokstringlar/ sharhlar / boshqa)
Ichki sharhlar
Ichki izohlar odatda a dan foydalanadigan sharhlardir yangi qator izohning oxirini ko'rsatadigan belgi va o'zboshimchalik bilan ajratuvchi yoki ketma-ketligi nishonlar sharhning boshlanishini ko'rsatish uchun.
Misollar:
Fikrlarni bloklash
Bloklangan sharhlar, odatda, sharhning boshlanishini belgilash uchun ajratuvchi va sharhning oxirini ko'rsatish uchun boshqa ajratuvchidan foydalanadigan sharhlardir. Shu nuqtai nazardan, bo'sh joy va yangi qator belgilar ajratuvchi sifatida hisobga olinmaydi.
Misollar:
| Belgilar | Tillar |
|---|---|
sharh ~ ; | ALGOL 60, SIMULA |
¢ ~ ¢,# ~ #, ko ~ ko,sharh ~ sharh | ALGOL 68[12][13] |
/* ~ */ | ActionScript, AutoHotkey, C, C ++, C #, D,[14] Boring, Java, JavaScript, kotlin, Maqsad-C, PHP, PL / I, Prolog, Rexx, Zang (joylashtirilgan bo'lishi mumkin), Scala (joylashtirilgan bo'lishi mumkin), SAS, SASS, SQL, Swift (joylashtirilishi mumkin), Visual Prolog, CSS |
# dona ~ #ce | AutoIt[15] |
/+ ~ +/ | D (joylashtirilgan bo'lishi mumkin)[14] |
/# ~ #/ | Kobra (joylashtirilgan bo'lishi mumkin) |
<# ~ #> | Kuchli qobiq |
<!-- ~ --> | HTML, XML |
= boshlash ~ = kesilgan | Perl |
#`( ~ ) | Raku (parantez belgilar (), <>, {}, [], BiDi oynali har qanday Unicode belgilar yoki Ps / Pe / Pi / Pf xususiyatlarga ega Unicode belgilar bo'lishi mumkin) |
= boshlash ~ = oxiri | Yoqut |
#<TAG> ~ #</TAG>, #To'xta ~ EOF,#false ~ #endif, #fntrue ~ #endif,# yolg'on bo'lsa ~ #endif, #if! rost ~ #endif | S-Lang[16] |
{- ~ -} | Xaskell (joylashtirilgan bo'lishi mumkin) |
(* ~ *) | Delphi, ML, Mathematica, Ob'ekt Paskal, Paskal, 7. Urug ', Olma, OCaml (joylashtirilgan bo'lishi mumkin), standart ML (joylashtirilgan bo'lishi mumkin), Maple, Gazeta, F # |
{ ~ } | Delphi, Ob'ekt Paskal, Paskal, Qizil |
{# ~ #} | Nunjaklar, Twig |
{{! ~ }} | Mo'ylov, Rullar |
{{!-- ~ --}} | Rullar (joylashtirilmaydi, lekin o'z ichiga olishi mumkin {{ va }}) |
|# ~ #| | Jingalak |
%{ ~ %} | MATLAB[11] (belgilar alohida satrda bo'lishi kerak) |
#| ~ |# | Lisp, Sxema, Raketka (uchalasida ham joylashtirilgan bo'lishi mumkin). |
#[ ~ ]# | Nim[17] |
--[[ ~ ]],--[=[ ~ ]=],--[=...=[ ~ ]=...=] | Lua (qavslar har qanday mos keladigan = belgidan iborat bo'lishi mumkin; mos kelmaydigan ajratuvchilar ichida joylashtirilishi mumkin) |
" ~ " | Kichik munozarasi |
(sharh ~ ) | Klojure |
Noyob variantlar
- Fortran
- Chiziq chiziqlari Fortran 66/77 ahamiyatli. Haqiqiy bayon satrning 7 dan 72 gacha ustunlarida joylashgan. 6-ustundagi har qanday bo'sh joy bo'lmagan belgi bu satr oldingi satrning davomi ekanligini ko'rsatadi. A '
C1-ustunda ushbu satr izoh ekanligini bildiradi. 5-ustunlardagi 1-ustunda yorliq vazifasini bajaradigan raqam bo'lishi mumkin. 73-ustunlar, ammo 80 ga e'tibor berilmaydi va sharhlar uchun ishlatilishi mumkin; ichida perforatorlar kunlari, ushbu ustunlar ko'pincha tartib raqamini o'z ichiga olgan, shuning uchun kimdir kartalarni tasodifan tashlab yuborgan bo'lsa, kartalar pastki qismi to'g'ri tartibda saralanishi mumkin. Fortran 90 indentatsiya qoidasini bekor qildi va ichidagi sharhlarni qo'shdi!izoh ajratuvchi sifatida belgi.
- COBOL
- Ruxsat etilgan formatdagi kodda chiziq chizig'i muhim ahamiyatga ega. 1-6 ustunlar va 73 dan boshlab ustunlar e'tiborga olinmaydi. Agar a
*yoki/7-ustunda, keyin bu satr sharhdir. COBOL 2002 yilgacha, agar aD.yokid7-ustunda bo'lgan bo'lsa, u "tuzatuvchi satr" ni belgilaydi, agar kompilyatorga uni kompilyatsiya qilish bo'yicha ko'rsatma berilmasa, e'tiborga olinmaydi.
- Kobra
- Cobra blokirovka qilingan sharhlarni "bilan qo'llab-quvvatlaydi.
/#...#/"bu o'xshash"/*...*/"ko'pincha C-ga asoslangan tillarda uchraydi, lekin ikkita farq bilan#belgi bir qatorli sharh shaklidan qayta foydalanilgan "#... ", va blokirovka qilingan izohlar joylashtirilishi mumkin, bu kodning katta bloklarini sharhlash uchun qulaydir.
- Jingalak
- Curl, foydalanuvchi tomonidan belgilangan teglar bilan blokirovka qilingan sharhlarni qo'llab-quvvatlaydi
| foo # ... #foo |.
- Lua
- Xom simlar singari, to'rtburchak qavslar orasida har qanday tenglik belgilari bo'lishi mumkin, agar ikkala ochilish va yopish teglari teng keladigan belgilarga ega bo'lsa; bu ichki joylashtirilgan blokli sharhlar / xom satrlar o'zlarining qo'shib qo'yilgan sharhlaridan farqli o'laroq tenglik belgilaridan foydalangan ekan, bu joylashtirishga imkon beradi:
- [[sharh - [= [ichki sharh] =]]]. Lua ochilish yorlig'iga to'g'ridan-to'g'ri ergashgan birinchi yangi qatorni (agar mavjud bo'lsa) yo'q qiladi.
- Perl
- Perl-dagi blokirovka qilingan sharhlar hujjatning bir qismi hisoblanadi va ularga nom beriladi Oddiy eski hujjatlar (POD). Texnik jihatdan Perl-da blokirovka qilingan izohlarni manba kodiga qo'shish bo'yicha kelishuv mavjud emas, ammo POD muntazam ravishda vaqtinchalik echim sifatida ishlatiladi.
- PHP
- PHP standart C / C ++ uslubidagi sharhlarni qo'llab-quvvatlaydi, ammo Perl uslubini ham qo'llab-quvvatlaydi.
- Python
- Manba satrlarini sharhlash uchun uchta kotirovkadan foydalanish aslida sharh hosil qilmaydi.[18] Yopiq matn Python odatda e'tiborsiz qoldiradigan satr harfiga aylanadi (agar u modul, sinf yoki funktsiya tanasida birinchi gap bo'lsa, bundan tashqari; qarang dokstring).
- Raku
- Raku foydalanadi
#`(...)bloklangan sharhlarni belgilash uchun.[19] Raku aslida har qanday "o'ng" va "chap" juft qavslardan foydalanishga ruxsat beradi#`(ya'ni#`(...),#`[...],#`{...},#`<...>va undan ham murakkabroq#`{{...}}barchasi blokli sharhlardir). Qavslarni sharhlar ichiga joylashtirishga ruxsat beriladi (ya'ni.)# `{a {b} c}oxirgi yopuvchi qavsga o'tadi).
- Yoqut
- Ruby-dagi sharhni bloklash soatida ochiladi
= boshlashchiziq va yopiladi= oxirichiziq.
- S-Lang
- Bilan yopilgan chiziqlar mintaqasi
#va#ajratuvchilar tarjimon tomonidan e'tiborga olinmaydi. Yorliq nomi ilova qilingan blokni qanday ochilishini ko'rsatish uchun ishlatilishi mumkin bo'lgan harf-raqamli belgilar ketma-ketligi bo'lishi mumkin. Masalan,#LaTeX formatlangan hujjatlar blokining boshlanishini ko'rsatishi mumkin.
- Sxema va raketka
- Keyingi to'liq sintaktik komponent (s-ifodasi) bilan izohlash mumkin
#;.
- ABAP
ABAP ikki xil sharhlarni qo'llab-quvvatlaydi. Agar chiziqning birinchi belgisi, shu jumladan chiziq, yulduzcha bo'lsa (*) butun satr sharh sifatida qaraladi, bitta qo'shiq tirnoq (") satr oxirigacha harakat qiladigan in-line commet boshlanadi. ABAP izohlari bayonotlar orasida mumkin emas EXEC SQL va ENDEXEC chunki Native SQL-da ushbu belgilar uchun boshqa qo'llanmalar mavjud. Ko'pgina SQL dialektlarida ikkita chiziqcha (--) o'rniga ishlatilishi mumkin.
- Ezoterik tillar
- Ko'pchilik ezoterik dasturlash tillari tomonidan bajarilmagan har qanday matnga rioya qiling ko'rsatma ko'rsatgichi (masalan, Befunge) yoki boshqacha ma'no berilgan (masalan, Brainfuck), "sharh" deb hisoblanadi.
Izohlarni taqqoslash
Manba kodida izohlarni e'lon qilish uchun turli xil sintaksis uslublari mavjud.BlockComment blokirovka qilingan sharh uslubini ko'rsatish uchun kursivda bu erda ishlatiladi.InlineComment kursivda bu erda ichki izoh uslubini ko'rsatish uchun foydalaniladi.
| Til | Qatorli sharh | Izohni bloklash |
|---|---|---|
| Ada, Eyfel, Eyforiya, Okkam, Uchqun, ANSI SQLva VHDL | -- InlineComment | |
| ALGOL 60 | sharh BlockComment; | |
| ALGOL 68 | ¢ BlockComment ¢
| |
| APL | ⍝ InlineComment | |
| AppleScript | -- InlineComment | (* BlockComment *) |
| Assambleya tili (farq qiladi) | ; InlineComment bitta misol (aksariyat yig'ilish tillarida faqat satr izohlari ishlatiladi) | |
| AutoHotkey | ; InlineComment | /* BlockComment */ |
| AWK, Bosh, Bourne shell, C qobig'i, Chinor, R, Tclva Windows PowerShell | # InlineComment | <# BlockComment #> |
| ASOSIY (turli lahjalar): | 'InlineComment (hamma shevalarda emas)
| |
| C (K&R, ANSI / C89 / C90), CHILL, PL / Iva REXX | /* BlockComment */ | |
| FZR (C99), C ++, Boring, Tez va JavaScript | // InlineComment | /* BlockComment */ |
| C # | // InlineComment/// InlineComment (XML hujjatlari sharhi) | /* BlockComment *//** BlockComment */ (XML hujjatlari sharhi) |
| COBOL Men COBOL 85 ga | * InlineComment (* 7-ustunda) | |
| COBOL 2002 yil | *> InlineComment | |
| Jingalak | || InlineComment | |# BlockComment #|
|
| Kobra | # InlineComment | /# BlockComment #/ (uylanadigan) |
| D. | // InlineComment/// Hujjatlar InlineComment (ddoc Izohlar) | /* BlockComment *// ** Hujjatlar BlockComment */ (ddoc Izohlar)
|
| DCL | $! InlineComment | |
| ECMAScript (JavaScript, ActionScript, va boshqalar.) | // InlineComment | /* BlockComment */ |
| To'rtinchi | InlineComment | ( BlockComment ) (bitta qator va ko'p qatorli)
|
| FORTRAN Men FORTRAN 77 ga | C InlineComment (1-ustundagi S) | |
| Fortran 90 | ! InlineComment | |
| Xaskell | -- InlineComment | {- BlockComment -} |
| Java | // InlineComment | /* BlockComment */
|
| Lisp va Sxema | ; InlineComment | #| BlockComment |# |
| Lua | -- InlineComment | --[==[ BlockComment]==] (o'zgaruvchan soni = belgilar) |
| Chinor | # InlineComment | (* BlockComment *) |
| Matematik | (* BlockComment *) | |
| Matlab | % InlineComment | %{Izoh: Qavslar foizining ikkala belgisi ham o'z satrlarida bo'sh joy bo'lmagan yagona belgi bo'lishi kerak. |
| Nim | # InlineComment | #[ BlockComment ]# |
| Ob'ekt Paskal (Delphi) | // InlineComment | (* BlockComment *){ BlockComment } |
| OCaml | (* BlockComment (* nestable *) *) | |
| Paskal, Modula-2, Modula-3, Oberonva ML: | (* BlockComment *) | |
| Perl va Yoqut | # InlineComment | = boshlash (= oxiri Ruby-da) (POD hujjatlar sharhi)
|
| PHP | # InlineComment// InlineComment | /* BlockComment *// ** Hujjatlar BlockComment */ (PHP Doc sharhlari) |
| Uchuvchi samolyot | R:InlineComment | |
| PLZ / SYS | ! BlockComment ! | |
| PL / SQL va TSQL | -- InlineComment | /* BlockComment */ |
| Prolog | % InlineComment | /* BlockComment */ |
| Python | # InlineComment | ''' BlockComment '''(Hujjatlar qatori birinchi qatorda modul, sinf, usul yoki funktsiya) |
| Raku | # InlineComment | #`{
|
| Qizil | ; InlineComment | { BlockComment } |
| Zang | // InlineComment
| /* BlockComment */ (uylanadigan)
|
| SAS | * BlockComment;/* BlockComment */ | |
| 7. Urug ' | # InlineComment | (* BlockComment *) |
| Simula | sharh BlockComment;! BlockComment; | |
| Kichik munozarasi | "BlockComment" | |
| Aqlli | {* BlockComment *} | |
| Standart ML | (* BlockComment *) | |
| TeX, LaTeX, PostScript, Erlang, Elixir va S-Lang | % InlineComment | |
| Texinfo | @c InlineComment
| |
| TUTOR | * InlineCommentbuyruq $$ InlineComment | |
| Visual Basic | ' InlineCommentRem InlineComment | |
| Visual Basic .NET | ' InlineComment
| |
| Visual Prolog | % InlineComment | /* BlockComment */ |
| Wolfram tili | (* BlockComment *) | |
| Xojo | ' InlineComment// InlineCommentrem InlineComment |
Shuningdek qarang
- S sintaksis
- C ++ sintaksisi
- Buruq qavsli dasturlash tillari, dasturlash tili sintaksislarining keng oilasi
- Java sintaksis
- JavaScript sintaksis
- PHP sintaksisi va semantikasi
- Python sintaksis va semantikasi
Adabiyotlar
- ^ a b Bir satrda bir nechta bayonotlar uchun
- ^ Uch xil turdagi iboralar, ularning har biri iboralarni va birliklarni turlicha ajratadi:
- ketma-ket foydalanish belgi (ya'ni vergul): boshlash a; b; v oxiri - birliklar tartibda bajariladi.
- foydalanish garov-bandi va-token (ya'ni ","): boshlash a, b, c oxiri - bajarish tartibi kompilyator tomonidan optimallashtirilishi kerak.
- parallel-band yordamida va-token (ya'ni ","): par boshlanadi a, b, c oxiri - birliklar parallel iplarda bajarilishi kerak.
- ^ nuqta-vergul - qaytarib olingan natija yashiringan, vergul - natija ko'rsatiladi
- ^ Bash uchun qo'llanma, 3.1.2.1 Qochish belgisi
- ^ Python hujjatlari, 2. Leksik tahlil: 2.1.5. Aniq qo'shilish
- ^ Mathworks.com Arxivlandi 2010 yil 7 fevral Orqaga qaytish mashinasi
- ^ https://ss64.com/nt/syntax-brackets.html
- ^ https://autohotkey.com/docs/Scripts.htm#continuation
- ^ M-faylga (MATLAB manbasiga) nom bilan kirish uchun uning ota-katalogi qidiruv yo'lida (yoki joriy katalogda) bo'lishi kerak.
- ^ https://nim-lang.org/docs/manual.html#lexical-analysis-comments
- ^ a b "Mathworks.com". Arxivlandi asl nusxasi 2013 yil 21-noyabrda. Olingan 25 iyun 2013.
- ^ "Algol68_revised_report-AB.pdf PDF-dagi 61-62 betlar, hujjatning asl nusxasi 121-122 betlar." (PDF). Olingan 27 may 2014.
- ^ "Algol68 qayta ko'rib chiqilgan AB hisobotining HTML versiyasi". Arxivlandi asl nusxasi 2013 yil 17 martda. Olingan 27 may 2014.
- ^ a b "DLang.org, leksik". Olingan 27 may 2014.
- ^ "AutoItScript.com kalit so'ziga havola, # ta sharh-boshlash". Olingan 27 may 2014.
- ^ "slang-2.2.4 / src / slprepr.c - qator 43 dan 113 gacha". Olingan 28 may 2014.
- ^ "Nim qo'llanma".
- ^ "Python maslahati: Ko'p qatorli satrlarni ko'p satrli izoh sifatida ishlatishingiz mumkin", 2011 yil 11 sentyabr, Gido van Rossum
- ^ "Perl 6 hujjatlari (sintaksis)". docs.perl6.org. Izohlar. Olingan 5 aprel 2017.
- ^ "Perl 6 POD sharhlari".
- ^ "Perl 6 POD (qisqartirilgan bloklar)".