Programlama dillerinin karşılaştırılması (sözdizimi) - Comparison of programming languages (syntax)
Bu karşılaştırma programlama dilleri özelliklerini karşılaştırır dil sözdizimi 50'den fazla bilgisayar programlama dilleri için (format).
İfade
Programlama dili ifadeleri genel olarak dört sözdizimi yapısında sınıflandırılabilir:
- önek gösterimi
-
Lisp
(* (+ 2 3) (expt 4 5))
- infix notasyonu
-
Fortran
(2 + 3) * (4 ** 5)
- sonek, sonek veya Ters Lehçe notasyonu
-
ileri
2 3 + 4 5 ** *
- matematik benzeri gösterim
-
ÖZEL ÖĞRETMEN
(2 + 3)(45) $$ note implicit multiply operator
İfadeler
Programlama Dilleri (genellikle Algol soyundan gelenler) ifadeleri olduğunda, genellikle aşağıdakiler için sözleşmeleri vardır:
- ifade ayırıcılar;
- ifade sonlandırıcılar; ve
- satır devamı
İki ayrı ifade arasındaki sınırları belirlemek için bir ifade ayırıcı kullanılır. Tek bir ifadenin sonunu sınırlamak için bir ifade sonlandırıcı kullanılır. Satır sonunu bir ifadenin sonu olarak yorumlayan dillere "satır yönelimli" diller denir.
"Satır devamı", satırsonu karakterinin bir ifade sonlandırıcı olarak potansiyel olarak yanlış yorumlanabileceği satır yönelimli dillerdeki bir kuraldır. Bu tür dillerde, tek bir ifadenin birden fazla satıra yayılmasına izin verir.
Dilim | İfade ayırıcı-sonlandırıcı | İkincil ayırıcı-sonlandırıcı |
---|---|---|
ABAP | dönem ayrılmış | |
Ada | noktalı virgül sonlandırıldı | |
Algol | noktalı virgülle ayrılmış | |
ALGOL 68 | noktalı virgül ve virgülle ayrılmış | |
APL | yeni satır sonlandırıldı |
[Direct_function ⋄] ayrılmış İkincil
|
AppleScript | yeni satır sonlandırıldı | |
OtomatikKısayol tuşu | yeni satır sonlandırıldı | |
TEMEL | yeni satır sonlandırıldı | kolon ayrılmış |
yuh | yeni satır sonlandırıldı | |
C | noktalı virgül ifadeleri sonlandırır | virgül ifadeleri ayırır |
C++ | noktalı virgül ifadeleri sonlandırır | virgül ifadeleri ayırır |
C# | noktalı virgül sonlandırıldı | |
COBOL | boşlukla ayrılmış, bazen noktalı ayrılmış, isteğe bağlı olarak virgül ve noktalı virgülle ayrılmış. | |
Kobra | yeni satır sonlandırıldı | |
CoffeeScript | yeni satır sonlandırıldı | |
CSS | noktalı virgülle ayrılmış | |
NS | noktalı virgül sonlandırıldı | |
Eyfel | yeni satır sonlandırıldı | noktalı virgül |
Erlang | kolon ayrıldı, dönem sonlandırıldı | |
F# | yeni satır sonlandırıldı | noktalı virgül |
Fortran | yeni satır sonlandırıldı | noktalı virgül |
ileri | noktalı virgül sözcük tanımlarını sonlandırır. boşluk kelime kullanımını sonlandırır | |
GFA TEMEL | yeni satır sonlandırıldı | |
Gitmek | noktalı virgülle ayrılmış (derleyici tarafından eklenmiştir) | |
Haskell (do-notasyonunda) | yeni satır ayrılmış | |
Haskell (do-notasyonda, parantezler kullanıldığında) | noktalı virgülle ayrılmış | |
Java | noktalı virgül sonlandırıldı | |
JavaScript | noktalı virgülle ayrılmış (ancak bazen dolaylı olarak yeni satırlara eklenmiş) | |
Kotlin | noktalı virgülle ayrılmış (ancak bazen dolaylı olarak yeni satırlara eklenmiş) | |
Lua | boşlukla ayrılmış (noktalı virgül isteğe bağlı) | |
Mathematica Wolfram olarak da bilinir |
noktalı virgülle ayrılmış | |
MATLAB | yeni satır sonlandırıldı | noktalı virgül veya virgül |
MUMPS M olarak da bilinir |
newline, M'nin sahip olduğu bir "ifadeye" en yakın olan satır kapsamını sonlandırır. | bir boşluk, bir komutu ayırır/sonlandırır ve başka bir komutun takip etmesine izin verir. |
Nim | yeni satır sonlandırıldı | |
Nesne Pascal da ( Delphi ) | noktalı virgülle ayrılmış | |
Amaç-C | noktalı virgül sonlandırıldı | |
OCaml | noktalı virgülle ayrılmış | |
paskal | noktalı virgülle ayrılmış | |
Perl | noktalı virgülle ayrılmış | |
PHP | noktalı virgül sonlandırıldı | |
Temel Seç | yeni satır sonlandırıldı | noktalı virgülle ayrılmış |
Güç kalkanı | yeni satır sonlandırıldı | noktalı virgülle ayrılmış |
Prolog | virgülle ayrılmış (bağlaç), noktalı virgülle ayrılmış (ayrılık), nokta sonlandırılmış (madde) | |
piton | yeni satır sonlandırıldı | noktalı virgül |
r | yeni satır sonlandırıldı | noktalı virgül |
Raku | noktalı virgülle ayrılmış | |
kırmızı | boşluk ayrılmış | |
yakut | yeni satır sonlandırıldı | noktalı virgül |
Pas | noktalı virgül ifadeleri sonlandırır | virgül ifadeleri ayırır |
Skala | yeni satır sonlandırıldı (noktalı virgül isteğe bağlı) | noktalı virgül |
tohum7 | noktalı virgülle ayrılmış (noktalı virgül sonlandırmaya izin verilir) | |
simülasyon | noktalı virgülle ayrılmış | |
Argo | noktalı virgülle ayrılmış | |
küçük konuşma | dönem ayrılmış | |
standart makine öğrenimi | noktalı virgülle ayrılmış | |
Süratli | noktalı virgülle ayrılmış (derleyici tarafından eklenmiştir) | |
Visual Basic | yeni satır sonlandırıldı | kolon ayrılmış |
Visual Basic .NET | yeni satır sonlandırıldı | kolon ayrılmış |
Wolfram Dili | noktalı virgülle ayrılmış | |
Xojo | yeni satır sonlandırıldı | |
Dilim | İfade ayırıcı-sonlandırıcı | İkincil ayırıcı-sonlandırıcı |
Satır devamı
Satır devamı genellikle sözcüksel analizin bir parçası olarak yapılır : yeni satır, satırın devamı algılanmadıkça, normal olarak belirteç akışına bir belirteç eklenmesiyle sonuçlanır.
- Boşluk – Devam gerektirmeyen diller
- Ada – Satırlar noktalı virgülle sonlanır
- C# – Satırlar noktalı virgülle sonlandırılır
- JavaScript – Satırlar noktalı virgülle sonlandırılır (çıkarılabilir)
- Lua
- OCaml
- Ve işareti satırın son karakteri olarak
- Satırın son karakteri olarak ters eğik çizgi
- bash ve diğer Unix kabukları
- C ve C++ ön işlemcisi
- Mathematica ve Wolfram Dili
- piton
- yakut
- JavaScript – yalnızca tek veya çift tırnaklı dizeler içinde
- Satırın son karakteri olarak tire
- Alt çizgi hattının son karakteri olarak
- MATLAB : Üç nokta belirtecinin satırdaki son karakterler olması gerekmez, ancak onu izleyenler yoksayılır. (Özünde, uzanan bir yorum başlar aracılığıyla (yani) takip eden ilk satır karakteri içeren. Uzanan bir satır içi ile karşılaştırın kadar takip eden ilk yeni satır).
- Satırın son karakteri olarak virgül sınırlayıcı
- Ruby (yorum sınırlayıcıyı takip edebilir)
- Satırın son karakteri olarak sol köşeli ayraç sınırlayıcı
- Toplu iş dosyası : parantez içinde bir blok başlatmak, satırın devamına izin verebilir
- Ruby: sol parantez, sol köşeli parantez veya sol küme parantez
- Satırın son nesnesi olarak operatör
- Ruby (yorum operatörü takip edebilir)
- AutoHotkey : ++ ve -- dışında herhangi bir ifade işlecinin yanı sıra virgül veya nokta
- Bir tür satır içi yorum , satırın devamı olarak işlev görür
-
Turbo Birleştirici :
\
-
m4 :
dnl
-
TeX :
%
- Karakter konumu
- Fortran 77 : Yorumsuz satır, 6. sütunda boşluk olmayan herhangi bir karakter görünüyorsa, önceki yorum olmayan satırın devamıdır. Yorum satırlarına devam edilemez.
-
COBOL : Dize sabitleri, bir PICTURE yan tümcesindeki orijinal dizeyi ile sonlandırmadan ve
'
ardından-
7. sütuna bir a ekleyerek devam ettirilebilir (*
for yorumuyla aynı konum kullanılır.) - TUTOR : Sekme ile başlayan satırlar (bağlamın gerektirdiği herhangi bir girintiden sonra) önceki komutla devam eder.
- Normal tırnak kullanarak [Bitir ve Başla]
- C ve C++ önişlemcisi: Dize normal şekilde sonlandırılır ve bir sonraki satırda bir alıntı ile başlayarak devam eder.
Kütüphaneler
To içe bir kütüphane dış muhtemelen derlenmiş, rutinler, programlar veya paketleri okumak için bir yoldur. İthalatlar, seviyeye (modül, paket, sınıf, prosedür,...) ve sözdizimine (yönerge adı, nitelikler,...) göre sınıflandırılabilir.
- Dosya içe aktarma
-
addpath(directory)
MATLAB -
COPY filename.
COBOL -
:-include("filename").
Prolog -
#include file="filename"
ASP -
#include "filename"
, AutoHotkey , AutoIt , C , C++ -
#include <filename>
AutoHotkey , AutoIt , C , C++ -
#import "filename"
, Amaç-C -
#import <filename>
Amaç-C -
Import["filename"]
Mathematica ve Wolfram Dili -
include 'filename'
Fortran -
include "filename";
PHP -
include [filename] program
, Temel Seç -
#include [filename] program
Temel Seç -
include!( "filename");
Pas -
load "filename"
Şahin -
load %filename
kırmızı -
require("filename")
Lua -
require "filename";
Perl , PHP -
source(""filename"")
r
- Paket içe aktarma
-
#include filename
C , C++ -
#[path = "filename"] mod altname;
, Pas -
@import module;
Amaç-C -
<<name
Mathematica ve Wolfram Dili -
:-use_module(module).
Giriş : -
from module import *
piton -
extern crate libname;
, Pas -
extern crate libname as altname;
Pas -
mod modname;
, Pas -
library("package")
R : -
load module
, Şahin -
load module.submodule
Şahin -
IMPORT module
Oberon -
import altname "package/name"
Git : -
import package.module;
, D -
import altname = package.module;
NS -
import Module
, Haskell -
import qualified Module as M
Haskell -
import package.*
Java , MATLAB , kotlin -
import "modname";
JavaScript : -
import altname from "modname";
, JavaScript : -
import package
Skala -
import package._
, Skala -
import module
Süratli -
import module
, piton -
require("modname")
Lua : -
use module
, Fortran 90 + -
use module, only : identifier
90 + -
use Module;
, Perl -
use Module qw(import options);
Perl -
use Package.Name
Kobra -
uses unit
paskal -
with package
Ada
- Sınıf içe aktarma
-
from module import class
piton -
import class
Şahin -
import package.class
Java , MATLAB , kotlin -
import class from "modname";
, JavaScript -
import {class} from "modname";
, JavaScript -
import {class as altname} from "modname";
JavaScript -
import package.class
, Skala -
import package.{ class1 => alternativeName, class2 }
, Skala -
import package._
Skala -
use Namespace\ClassName;
, PHP -
use Namespace\ClassName as AliasName;
PHP
- Prosedür/fonksiyon içe aktarma
-
from module import function
Python : -
import package.module : symbol;
, D : -
import package.module : altsymbolname = symbol;
D : -
import Module (function)
Haskell : -
import function from "modname";
, JavaScript : -
import {function} from "modname";
, JavaScript : -
import {function as altname} from "modname";
JavaScript : -
import package.function
MATLAB : -
import package.class.function
, Skala : -
import package.class.{ function => alternativeName, otherFunction }
Ölçek : -
use Module ('symbol');
Perl : -
use function Namespace\function_name;
, PHP : -
use Namespace\function_name as function_alias_name;
PHP : -
use module::submodule::symbol;
, Pas : -
use module::submodule::{symbol1, symbol2};
, Pas : -
use module::submodule::symbol as altname;
Pas :
- Sabit ithalat
-
use const Namespace\CONST_NAME;
PHP
Yukarıdaki ifadeler, sözdizimsel uygunluk olup olmadığına (nesnelerin daha kısa bir adla anılmasına izin verir, ancak yine de içe aktarma olmadan tam nitelikli bir adla atıfta bulunulabilir) veya gerçekten erişmeleri gerekip gerekmediğine göre sınıflandırılabilir. kod (bu olmadan, tam nitelikli adlarla bile koda erişmek imkansızdır).
- sözdizimsel kolaylık
- koda erişmek için gerekli
-
import altname "package/name"
Gitmek -
import altname from "modname";
JavaScript -
import module
piton
Bloklar
Bir blok , bir bütünü oluşturacak şekilde ilişkili iki veya daha fazla ifade, ifade veya diğer kod birimlerinden oluşan bir grup için bir gösterimdir.
- Parantezler (aka küme parantezleri)
{
...}
-
Kıvrımlı parantez programlama dilleri : C , C++ , Objective-C , Go , Java , JavaScript / ECMAScript , C# , D , Perl , PHP (
for
&loop
döngüler veya argüman olarak bir blok iletir), R , Rust , Scala , S-Lang , Swift , Windows PowerShell , Haskell (gösterimde), AutoHotkey
- parantezler
(
...)
- OCaml , Prolog , Standart ML
- Köşeli parantezler
[
...]
- Smalltalk (bloklar birinci sınıf nesnelerdir. aka kapanışlar)
-
begin
...end
-
do
...end
-
do
...done
-
Bash (
for
&while
döngüler), Visual Basic , Fortran , TUTOR (zorunlu blok gövdesi girintili), Visual Prolog
-
do
...end
-
Lua , Ruby (blokları argüman olarak ilet ,
for
döngü), Seed7 (do
ve arasındaki döngü gövdelerini içine alırend
)
- X ...
end
(örneğinif
...end
):
-
Ruby (
if
,while
,until
,def
,class
,module
deyimler), OCaml (for
&while
döngüler), MATLAB (if
&switch
koşullar,for
&while
döngüler,try
yan tümce,package
,classdef
,properties
,methods
,events
, &function
bloklar), Lua (then
/else
&function
)
- (
begin
...)
- (önceden ...)
- (
do
...)
- Girinti
- Off-side kuralı dilleri : Cobra , CoffeeScript , F# , Haskell (parantezler atlandığında do-notation'da), occam , Python , Nim
- Serbest biçimli diller : ALGOL'den gelen çoğu tür ( C , Pascal ve Perl dahil ); Lisp dilleri
- Diğerleri
-
Ada , Visual Basic , Seed7 :
if
...end if
-
APL :
:If
...:EndIf
veya:If
...:End
-
Bash , sh ve ksh :
if
...fi
,do
...done
,case
...esac
; -
ALGOL 68 :
begin
...end
,(
...)
,if
...fi
,do
...od
-
Lua , Pascal , Modula-2 , Seed7 :
repeat
...until
-
COBOL :
IF
...END-IF
,PERFORM
...END-PERFORM
, vb. ifadeler için; ....
cümleler için. -
Visual Basic .Net :
If
...End If
,For
...Next
,Do
...Loop
-
Küçük Temel :
If
...EndIf
,For
...EndFor
,While
...EndWhile
Yorumlar
Yorumlar şu şekilde sınıflandırılabilir:
- stil (satır içi/blok)
- ayrıştırma kuralları (yok sayıldı/enterpolasyon yapıldı/bellekte saklandı)
- özyineleme (nestable/nestable olmayan)
- kullanır ( belgeler / tek kullanımlık yorumlar / diğer)
satır içi yorumlar
Satır içi yorumlar genellikle bir yorumun sonunu belirtmek için yeni satır karakteri ve bir yorumun başlangıcını belirtmek için rastgele bir sınırlayıcı veya belirteç dizisi kullananlardır.
Örnekler:
Sembol | Diller |
---|---|
C
|
Fortran I'den Fortran 77'ye (1. sütunda C) |
REM
|
TEMEL , Toplu dosyalar |
::
|
Toplu dosyalar , COMMAND.COM , cmd.exe |
NB.
|
J ; (tarihsel olarak) ortak kısaltma Nota bene'den , Latince "iyi not" için. |
⍝
|
APL ; Anımsatıcı, gliftir (ayakkabı aşağı ile aşırı vurulmuş) bir masa lambasını andırır ve bu nedenle yukarıdakileri "aydınlatır". |
#
|
Bourne kabuğu ve diğer UNIX kabukları , Cobra , Perl , Python , Ruby , Seed7 , Windows PowerShell , PHP , R , Make , Maple , Elixir , Nim |
%
|
TeX , Prolog , MATLAB , Erlang , S-Lang , Görsel Prolog |
//
|
ActionScript , C (C99) , C++ , C# , D , F# , Go , Java , JavaScript , Kotlin , Object Pascal ( Delphi ), Objective-C , PHP , Rust , Scala , SASS , Swift , Xojo |
'
|
Maymun, Visual Basic , VBScript , Small Basic , Gambas , Xojo |
!
|
Fortran , Temel Artı, Bilgilendir, Temel Seç |
;
|
Montaj x86 , AutoHotkey , AutoIt , Lisp , Common Lisp , Clojure , Rebol , Red , Scheme |
--
|
Euphoria , Haskell , SQL , Ada , AppleScript , Eiffel , Lua , VHDL , SGML , PureScript |
*
|
Assembler S/360 (* sütun 1'de), COBOL I - COBOL 85, PAW , Fortran IV - Fortran 77 (* sütun 1'de), Pick Basic , GAMS (* sütun 1'de) |
||
|
kıvırmak |
"
|
Vimscript , ABAP |
\
|
ileri |
*>
|
KOBOL 90 |
Yorumları engelle
Blok yorumlar genellikle bir yorumun başlangıcını belirtmek için bir sınırlayıcı ve bir yorumun sonunu belirtmek için başka bir sınırlayıcı kullananlardır. Bu bağlamda, boşluk ve yeni satır karakterleri sınırlayıcı olarak sayılmaz.
Örnekler:
Sembol | Diller |
---|---|
comment ~ ;
|
ALGOL 60 , SIMULA |
¢ ~ ¢ , # ~ # , co ~ co , comment ~comment
|
ALGOL 68 |
/* ~ */
|
ActionScript, AutoHotkey , C, C++, C#, D, Go, Java , JavaScript , kotlin , Objective-C , PHP , PL/I , Prolog , Rexx , Rust (iç içe yerleştirilebilir), Scala (iç içe yerleştirilebilir), SAS , SASS, SQL, Swift (iç içe olabilir), Visual Prolog , CSS |
#cs ~ #ce
|
AutoIt |
/+ ~ +/
|
D (iç içe olabilir) |
/# ~ #/
|
Kobra (iç içe olabilir) |
<# ~ #>
|
Güç kalkanı |
<!-- ~ -->
|
HTML , XML |
=begin ~ =cut
|
Perl |
#`( ~ )
|
Raku (parantez karakterleri (), <>, {}, [], BiDi yansıtmalı herhangi bir Unicode karakteri veya Ps/Pe/Pi/Pf özellikli Unicode karakterleri olabilir) |
=begin ~ =end
|
yakut |
#<TAG> ~ , ~ , ~ , ~ , ~ , ~#</TAG> #stop EOF #iffalse #endif #ifntrue #endif #if false #endif #if !true #endif
|
Argo |
{- ~ -}
|
Haskell (iç içe olabilir) |
(* ~ *)
|
Delphi , ML, Mathematica, Object Pascal, Pascal , seed7 , AppleScript , OCaml (kısıtlanabilir), Standart ML (kısıtlanabilir), Akçaağaç, Newspeak , F # |
{ ~ }
|
Delphi, Nesne Pascal, Pascal, Kırmızı |
{# ~ #}
|
Nunjucks, Twig |
{{! ~ }}
|
Bıyık , Gidon |
{{!-- ~ --}}
|
Gidonlar (iç içe yerleştirilemez, ancak {{ ve içerebilir }} )
|
|# ~ #|
|
kıvırmak |
%{ ~ %}
|
MATLAB (semboller ayrı bir satırda olmalıdır) |
#| ~ |#
|
Lisp , Scheme , Racket (üçünün içinde yuvalanabilir). |
#[ ~ ]#
|
Nim |
--[[ ~ ]] , --[=[ ~ ]=] , --[= ... =[ ~ ]= ...=]
|
Lua (parantezler herhangi bir sayıda eşleşen = karaktere sahip olabilir; eşleşmeyen sınırlayıcıların içine yerleştirilebilir) |
" ~ "
|
küçük konuşma |
(comment ~ )
|
Clojure |
Benzersiz varyantlar
- Fortran
- Fortran 66/77'deki girinti çizgileri önemlidir. Gerçek ifade, bir satırın 7'den 72'ye kadar olan sütunlarındadır. 6. sütundaki boşluk olmayan herhangi bir karakter, bu satırın önceki satırın devamı olduğunu gösterir.
C
1. sütundaki bir ' ', bu satırın tamamının bir yorum olduğunu gösterir. 1'den 5'e kadar olan sütunlar, etiket görevi gören bir sayı içerebilir. 73'ten 80'e kadar olan sütunlar yoksayılır ve yorumlar için kullanılabilir; Delikli kartların olduğu günlerde , bu sütunlar genellikle bir sıra numarası içeriyordu, böylece biri yanlışlıkla kartları düşürürse, kart destesi doğru sıraya göre sıralanabilirdi. Fortran 90, girinti kuralına olan ihtiyacı ortadan kaldırdı ve!
karakteri yorum sınırlayıcı olarak kullanarak satır içi yorumlar ekledi .
- COBOL
- Sabit biçimli kodda satır girintisi önemlidir. 1-6 arasındaki sütunlar ve 73'ten sonraki sütunlar yoksayılır. a
*
veya/
7. sütundaysa, o satır bir yorumdur. COBOL 2002'ye kadar aD
veyad
sütun 7'deyse, derleyiciye onu derlemesi talimatı verilmedikçe göz ardı edilecek bir "hata ayıklama satırı" tanımlardı.
- Kobra
- Cobra, genellikle C tabanlı dillerde bulunan " ... " gibi , ancak iki farkla "
/#
...#/
" ile blok yorumları destekler . Karakter Tek satırlı yorum formundan yeniden kullanılır " ..." ve blok yorumları koda büyük bloklar dışında yorum için uygun olan iç içe olabilir./*
*/
#
#
- kıvırmak
- Curl, içinde olduğu gibi kullanıcı tanımlı etiketlerle blok yorumları destekler
|foo# ... #foo|
.
- Lua
- Ham dizeler gibi, hem açılış hem de kapanış etiketlerinin eşleşen sayıda eşittir işaretine sahip olması koşuluyla, köşeli parantezler arasında herhangi bir sayıda eşittir işareti olabilir; bu, iç içe blok yorumları/ham dizeler, çevreleyen yorumlarından farklı sayıda eşittir işareti kullandığı sürece iç içe geçirmeye izin verir:
--[[comment --[=[ nested comment ]=] ]]
. Lua, açılış etiketini doğrudan takip eden ilk yeni satırı (varsa) atar.
- Perl
- Perl'deki blok yorumlar, belgelerin bir parçası olarak kabul edilir ve Plain Old Documentation (POD) adı verilir . Teknik olarak, Perl'in kaynak koduna blok yorumları eklemek için bir kuralı yoktur, ancak POD rutin olarak bir geçici çözüm olarak kullanılır.
- PHP
- PHP, standart C/C++ stili yorumlarını destekler, ancak Perl stilini de destekler.
- piton
- Kaynak satırlarını yorumlamak için üçlü alıntıların kullanılması, aslında bir yorum oluşturmaz. Ekteki metin, Python'un genellikle yok saydığı bir dize değişmezi haline gelir (bir modülün, sınıfın veya işlevin gövdesindeki ilk ifade olması dışında; bkz. docstring ).
- Raku
-
Raku
#`(...)
blok yorumları belirtmek için kullanır . Raku aslında herhangi bir "sağ" ve "sol" eşleştirilmiş parantezin kullanılmasına izin verir#`
(yani#`(...)
,#`[...]
,#`{...}
,#`<...>
, ve hatta daha karmaşık#`{{...}}
olanların tümü geçerli blok yorumlarıdır). Köşeli ayraçların yorumların içine yerleştirilmesine de izin verilir (yani#`{ a { b } c }
son kapanış ayracına gider).
- yakut
- Ruby'de blok yorumu
=begin
satırda açılır ve satırda kapanır=end
.
- Argo
#<tag>
ve#</tag>
sınırlayıcılar tarafından çevrelenen çizgilerin bölgesi yorumlayıcı tarafından yok sayılır. Etiket adı, ekteki bloğun nasıl deşifre edileceğini belirtmek için kullanılabilen herhangi bir alfasayısal karakter dizisi olabilir. Örneğin,#<latex>
bir LaTeX formatlı belge bloğunun başlangıcını gösterebilir.
- Şema ve Raket
- Bir sonraki tam sözdizimsel bileşen (s-ifadesi) ile yorumlanabilir
#;
.
- ABAP
ABAP iki farklı yorum türünü destekler. Girinti dahil bir satırın ilk karakteri bir yıldız ( *
) ise, tüm satır bir yorum olarak kabul edilirken, tek bir çift tırnak ( "
) satırın sonuna kadar hareket eden bir satır içi yorumu başlatır. İfadeler arasında EXEC SQL
ve ENDEXEC
Native SQL'in bu karakterler için başka kullanımları olduğundan ABAP yorumları mümkün değildir . Çoğu SQL lehçesinde --
bunun yerine çift tire ( ) kullanılabilir.
- ezoterik diller
- Pek çok ezoterik programlama dili , talimat işaretçisi tarafından yürütülmeyen (örneğin, Befunge ) veya başka bir şekilde bir anlam atanmayan (örneğin, Brainfuck ) herhangi bir metnin bir "yorum" olarak kabul edildiği kuralına uyar .
Yorum karşılaştırma
Kaynak kodda yorumları bildirmek için çok çeşitli sözdizimi stilleri vardır.
BlockComment
italik olarak burada blok yorum stilini belirtmek için kullanılır.
InlineComment
italik olarak burada satır içi yorum stilini belirtmek için kullanılır.
Dilim | satır içi yorum | Yorumu engelle |
---|---|---|
Ada , Eiffel , Euphoria , Occam , SPARK , ANSI SQL ve VHDL |
-- InlineComment
|
|
ALGOL 60 |
comment BlockComment;
|
|
ALGOL 68 |
¢ BlockComment ¢
|
|
APL |
⍝ InlineComment
|
|
AppleScript |
-- InlineComment
|
(* BlockComment *)
|
Montaj dili (değişir) |
; InlineComment bir örnek (çoğu derleme dili yalnızca satır yorumlarını kullanır)
|
|
OtomatikKısayol tuşu |
; InlineComment
|
/* BlockComment */
|
AWK , Bash , Bourne kabuğu , C kabuğu , Akçaağaç , R , Tcl ve Windows PowerShell |
# InlineComment
|
<# BlockComment #>
|
BASIC (çeşitli lehçeler): |
'InlineComment (tüm lehçeler değil)
|
|
C (K&R, ANSI/C89/C90), CHILL , PL/I ve REXX |
/* BlockComment */
|
|
C (C99) , C++ , Go , Swift ve JavaScript |
// InlineComment
|
/* BlockComment */
|
C# |
// InlineComment /// InlineComment (XML dokümantasyon yorumu)
|
/* BlockComment */ /** BlockComment */ (XML dokümantasyon yorumu)
|
COBOL I'den COBOL 85'e |
* InlineComment (* 7. sütunda)
|
|
COBOL 2002 |
*> InlineComment
|
|
kıvırmak |
|| InlineComment
|
|# BlockComment #|
|
Kobra |
# InlineComment
|
/# BlockComment #/ (iç içe yerleştirilebilir)
|
NS |
// InlineComment /// Documentation InlineComment ( ddoc yorumları)
|
/* BlockComment */ /** Documentation BlockComment */ ( ddoc yorumları)
|
DCL |
$! InlineComment
|
|
ECMAScript ( JavaScript , ActionScript , vb.) |
// InlineComment
|
/* BlockComment */
|
ileri |
\ InlineComment
|
( BlockComment ) (tek satır ve çok satırlı)
|
FORTRAN I'den FORTRAN 77'ye |
C InlineComment (1. sütundaki C)
|
|
90 |
! InlineComment
|
|
Haskell |
-- InlineComment
|
{- BlockComment -}
|
Java |
// InlineComment
|
/* BlockComment */
|
Lisp ve Şema |
; InlineComment
|
#| BlockComment |#
|
Lua |
-- InlineComment
|
--[==[ BlockComment]==] (değişken sayısı = işaretler)
|
Akçaağaç |
# InlineComment
|
(* BlockComment *)
|
matematik |
(* BlockComment *)
|
|
matlab |
% InlineComment
|
%{ Not: Her iki yüzde-parantez sembolü, ilgili satırlarında boşluk olmayan tek karakterler olmalıdır. |
Nim |
# InlineComment
|
#[ BlockComment ]#
|
Nesne Pascal |
// InlineComment
|
(* BlockComment *) { BlockComment }
|
OCaml |
(* BlockComment (* nestable *) *)
|
|
Pascal , Modula-2 , Modula-3 , Oberon ve ML : |
(* BlockComment *)
|
|
Perl ve Ruby |
# InlineComment
|
=begin ( =end Ruby'de) ( POD dokümantasyon yorumu)
|
PHP |
# InlineComment // InlineComment
|
/* BlockComment */ /** Documentation BlockComment */ ( PHP Doküman yorumları )
|
PİLOT |
R:InlineComment
|
|
PLZ/SYS |
! BlockComment !
|
|
PL/SQL ve TSQL |
-- InlineComment
|
/* BlockComment */
|
Prolog |
% InlineComment
|
/* BlockComment */
|
piton |
# InlineComment
|
''' BlockComment ''' ( Modül, sınıf, yöntem veya işlevin ilk satırı olduğunda belge dizesi ) |
r |
# InlineComment
|
|
Raku |
# InlineComment
|
#`{
|
kırmızı |
; InlineComment
|
{ BlockComment }
|
Pas |
// InlineComment
|
/* BlockComment */ (iç içe yerleştirilebilir)
|
SAS |
* BlockComment; /* BlockComment */
|
|
tohum7 |
# InlineComment
|
(* BlockComment *)
|
simülasyon |
comment BlockComment; ! BlockComment;
|
|
küçük konuşma |
"BlockComment"
|
|
akıllı |
{* BlockComment *}
|
|
standart makine öğrenimi |
(* BlockComment *)
|
|
TeX , LaTeX , PostScript , Erlang , Elixir ve S-Lang |
% InlineComment
|
|
Teksas bilgisi |
@c InlineComment
|
|
ÖZEL ÖĞRETMEN |
* InlineComment command $$ InlineComment
|
|
Visual Basic |
' InlineComment Rem InlineComment
|
|
Visual Basic .NET |
' InlineComment
|
|
Görsel Giriş |
% InlineComment
|
/* BlockComment */
|
Wolfram Dili |
(* BlockComment *)
|
|
Xojo |
' InlineComment // InlineComment rem InlineComment
|
Ayrıca bakınız
- C sözdizimi
- C++ sözdizimi
- Kıvrımlı parantez programlama dilleri , geniş bir programlama dili sözdizimi ailesi
- Java sözdizimi
- JavaScript sözdizimi
- PHP sözdizimi ve anlambilimi
- Python sözdizimi ve anlambilimi