प्रोग्रामिंग लैंग्वेजेज की तुलना (वाक्यविन्यास)
This article uses bare URLs, which are uninformative and vulnerable to link rot. (August 2022) (Learn how and when to remove this template message) |
प्रोग्रामिंग भाषाओं की यह तुलना 50 से अधिक कंप्यूटर प्रोग्रामिंग भाषाओं के लिए सिंटेक्स (प्रोग्रामिंग भाषाओं) (प्रारूप) की विशेषताओं की तुलना करती है।
भाव
प्रोग्रामिंग भाषा अभिव्यक्ति (प्रोग्रामिंग) को मोटे तौर पर चार वाक्यविन्यास संरचनाओं में वर्गीकृत किया जा सकता है:
- उपसर्ग संकेतन
- लिस्प (प्रोग्रामिंग भाषा)
(* (+ 2 3) (expt 4 5))
- इन्फिक्स नोटेशन
- फोरट्रान
(2 + 3) * (4 ** 5)
- प्रत्यय, उपसर्ग, या रिवर्स पोलिश नोटेशन
- फोर्थ (प्रोग्रामिंग भाषा)
2 3 + 4 5 ** *
- गणित जैसा अंकन
- ट्यूटर (प्रोग्रामिंग भाषा)
(2 + 3)(45) $$ note implicit multiply operator
कथन
जब किसी प्रोग्रामिंग भाषा में वक्तव्य (प्रोग्रामिंग) होता है, तो उनके पास आम तौर पर इसके लिए कन्वेंशन होते हैं:
- कथन विभाजक;
- स्टेटमेंट टर्मिनेटर; और
- लाइन निरंतरता
एक कथन विभाजक दो अलग-अलग कथनों के बीच सीमा का सीमांकन करता है। एक स्टेटमेंट टर्मिनेटर एक व्यक्तिगत स्टेटमेंट के अंत को परिभाषित करता है। वे भाषाएँ जो पंक्ति के अंत को किसी कथन का अंत मानती हैं, पंक्ति-उन्मुख भाषाएँ कहलाती हैं।
लाइन निरंतरता लाइन-उन्मुख भाषाओं में एक परंपरा है जहां न्यूलाइन चरित्र को स्टेटमेंट टर्मिनेटर के रूप में संभावित रूप से गलत समझा जा सकता है। ऐसी भाषाओं में, यह एक ही कथन को केवल एक पंक्ति से अधिक फैलाने की अनुमति देता है।
Language | Statement separator-terminator | Secondary separator-terminator[1] |
---|---|---|
ABAP | period separated | |
Ada | semicolon terminated | |
ALGOL | semicolon separated | |
ALGOL 68 | semicolon and comma separated[2] | |
APL | newline terminated | [Direct_function ⋄] separated Secondary
|
AppleScript | newline terminated | |
AutoHotkey | newline terminated | |
BASIC | newline terminated | colon separated |
Boo | newline terminated | |
C | semicolon terminates statements | comma separates expressions |
C++ | semicolon terminates statements | comma separates expressions |
C# | semicolon terminated | |
COBOL | whitespace separated, sometimes period separated, optionally separated with commas and semi-colons. | |
Cobra | newline terminated | |
CoffeeScript | newline terminated | |
CSS | semicolon terminated | |
D | semicolon terminated | |
Eiffel | newline terminated | semicolon |
Erlang | colon separated, period terminated | |
F# | newline terminated | semicolon |
Fortran | newline terminated | semicolon |
Forth | semicolons terminate word definitions. space terminates word use | |
GFA BASIC | newline terminated | |
Go | semicolon separated (inserted by compiler) | |
Haskell (in do-notation) | newline separated | |
Haskell (in do-notation, when braces are used) | semicolon separated | |
Java | semicolon terminated | |
JavaScript | semicolon separated (but often inserted as statement terminator) | |
Kotlin | semicolon separated (but sometimes implicitly inserted on newlines) | |
Lua | whitespace separated (semicolon optional) | |
Mathematica also called Wolfram |
semicolon separated | |
MATLAB | newline terminated | semicolon or comma[3] |
MUMPS also called M |
newline terminates line-scope, the closest to a "statement" that M has. | a space separates/terminates a command, allowing another command to follow. |
Nim | newline terminated | |
Object Pascal also (Delphi) | semicolon separated | |
Objective-C | semicolon terminated | |
OCaml | semicolon separated | |
Pascal | semicolon separated | |
Perl | semicolon separated | |
PHP | semicolon terminated | |
Pick Basic | newline terminated | semicolon separated |
PowerShell | newline terminated | semicolon separated |
Prolog | comma separated (conjunction), semicolon separated (disjunction), period terminated (clause) | |
Python | newline terminated | semicolon |
R | newline terminated[4] | semicolon[4] |
Raku | semicolon separated | |
Red | whitespace separated | |
Ruby | newline terminated | semicolon |
Rust | semicolon terminated | comma separates expressions |
Scala | newline terminated (semicolon optional) | semicolon |
Seed7 | semicolon separated (semicolon termination is allowed) | |
Simula | semicolon separated | |
S-Lang | semicolon separated | |
Smalltalk | period separated | |
Standard ML | semicolon separated | |
Swift | semicolon separated (inserted by compiler) | |
Visual Basic | newline terminated | colon separated |
Visual Basic .NET | newline terminated | colon separated |
Wolfram Language | semicolon separated | |
Xojo | newline terminated | |
Language | Statement separator-terminator | Secondary separator-terminator[1] |
लाइन निरंतरता
लाइन निरंतरता आम तौर पर शाब्दिक विश्लेषण के हिस्से के रूप में की जाती है: एक नई लाइन के परिणामस्वरूप आम तौर पर टोकन स्ट्रीम में एक टोकन जोड़ा जाता है, जब तक कि लाइन निरंतरता का पता नहीं चलता।
- व्हाट्सएप चरित्र - ऐसी भाषाएँ जिन्हें निरंतरता की आवश्यकता नहीं है
- एडा (प्रोग्रामिंग भाषा) - पंक्तियाँ अर्धविराम से समाप्त होती हैं
- सी शार्प (प्रोग्रामिंग भाषा)|सी# - पंक्तियाँ अर्धविराम से समाप्त होती हैं
- जावास्क्रिप्ट - पंक्तियाँ अर्धविराम से समाप्त होती हैं (जिसका अनुमान लगाया जा सकता है)
- लुआ (प्रोग्रामिंग भाषा)
- ओकैमल
- एम्पसेंड पंक्ति के अंतिम अक्षर के रूप में
- पंक्ति के अंतिम अक्षर के रूप में बैकस्लैश
- बैश (यूनिक्स शेल)[5] और अन्य यूनिक्स शैल
- C (प्रोग्रामिंग भाषा) और C++ प्रीप्रोसेसर
- गणितज्ञ और वोल्फ्राम भाषा
- पायथन (प्रोग्रामिंग भाषा)[6]
- रूबी (प्रोग्रामिंग भाषा)
- जावास्क्रिप्ट - केवल एकल- या दोहरे-उद्धृत स्ट्रिंग के भीतर
- पंक्ति के अंतिम अक्षर के रूप में बैकटिक करें
- पंक्ति के अंतिम अक्षर के रूप में हैफ़ेन
- पंक्ति के अंतिम अक्षर के रूप में बल देना करें
- अंडाकार (तीन अवधियों के रूप में-एक विशेष वर्ण नहीं)
- मैटलैब: इलिप्सिस टोकन को लाइन पर अंतिम अक्षर होने की आवश्यकता नहीं है, लेकिन इसके बाद आने वाले किसी भी अक्षर को नजरअंदाज कर दिया जाएगा।[7] (संक्षेप में, यह एक टिप्पणी शुरू करता है जो पहले बाद वाले न्यूलाइन चरित्र तक विस्तारित होता है (यानी इसमें शामिल होता है)। एक इनलाइन टिप्पणी के साथ इसकी तुलना करें, जो पहले बाद वाले न्यूलाइन तक विस्तारित होती है।)
- पंक्ति के अंतिम अक्षर के रूप में सीमांकक
- रूबी (टिप्पणी सीमांकक का अनुसरण कर सकती है)
- Delimiter#Bracket पंक्ति के अंतिम अक्षर के रूप में सीमांकक
- बैच फ़ाइल: एक कोष्ठक ब्लॉक शुरू करने से लाइन को जारी रखने की अनुमति मिल सकती है[8]
- रूबी: कोष्ठक|बायाँ कोष्ठक, बायाँ वर्गाकार कोष्ठक, या बायाँ घुंघराले कोष्ठक
- ऑपरेटर (कंप्यूटर प्रोग्रामिंग) लाइन के अंतिम ऑब्जेक्ट के रूप में
- रूबी (टिप्पणी ऑपरेटर का अनुसरण कर सकती है)
- ऑपरेटर (कंप्यूटर प्रोग्रामिंग) निरंतर पंक्ति के पहले अक्षर के रूप में
- जारी पंक्ति के पहले अक्षर के रूप में बैकस्लैश
- इनलाइन टिप्पणियों का कुछ रूप लाइन निरंतरता के रूप में कार्य करता है
- टर्बो असेंबलर:
\
- M4 (कंप्यूटर भाषा):
dnl
- टीएक्स:
%
- चरित्र स्थिति
- फोरट्रान 77: यदि कोई गैर-स्पेस वर्ण कॉलम 6 में दिखाई देता है तो एक गैर-टिप्पणी पंक्ति पिछली गैर-टिप्पणी पंक्ति की निरंतरता है। टिप्पणी पंक्तियों को जारी नहीं रखा जा सकता है।
- COBOL: पिक्चर क्लॉज में मूल स्ट्रिंग को समाप्त न करके स्ट्रिंग स्थिरांक को जारी रखा जा सकता है
'
, फिर a सम्मिलित करें-
कॉलम 7 में (उसी स्थिति में)।*
टिप्पणी के लिए प्रयोग किया जाता है।) - ट्यूटर (प्रोग्रामिंग भाषा): एक टैब से शुरू होने वाली लाइनें (संदर्भ द्वारा आवश्यक किसी भी इंडेंटेशन के बाद) पिछले कमांड को जारी रखती हैं।
- [अंत और आरंभ] सामान्य उद्धरण चिह्नों का उपयोग करते हुए
- सी (प्रोग्रामिंग भाषा) और सी++ प्रीप्रोसेसर: स्ट्रिंग सामान्य रूप से समाप्त हो जाती है और अगली पंक्ति पर एक उद्धरण के साथ शुरू होकर जारी रहती है।
पुस्तकालय
This section needs expansion. You can help by adding to it. (December 2009) |
किसी सॉफ्टवेयर लाइब्रेरी को आयात करना बाहरी, संभवतः संकलित, रूटीन, प्रोग्राम या पैकेज को पढ़ने का एक तरीका है। आयातों को स्तर (मॉड्यूल, पैकेज, वर्ग, प्रक्रिया,...) और सिंटैक्स (निर्देश नाम, विशेषताएँ,...) द्वारा वर्गीकृत किया जा सकता है।
- फ़ाइल आयात
addpath(directory)
मतलब[10]COPY filename.
कोबोल:-include("filename").
प्रोलॉग#include file="filename"
सक्रिय सर्वर पेज#include "filename"
, ऑटोहॉटकी, ऑटोइट, सी (प्रोग्रामिंग भाषा), सी++#include <filename>
ऑटोहॉटकी, ऑटोइट, सी (प्रोग्रामिंग भाषा), सी++#import "filename"
, उद्देश्य सी#import <filename>
उद्देश्य सीImport["filename"]
गणितज्ञ और वोल्फ्राम भाषाinclude 'filename'
फोरट्रानinclude "filename";
पीएचपीinclude [filename] program
, बेसिक चुनें#include [filename] program
बेसिक चुनेंinclude!("filename");
जंग (प्रोग्रामिंग भाषा)load "filename"
रूबी (प्रोग्रामिंग भाषा)load %filename
लाल (प्रोग्रामिंग भाषा)require('filename')
लुआ (प्रोग्रामिंग भाषा)require "filename";
पर्ल, पीएचपीrequire "filename"
रूबी (प्रोग्रामिंग भाषा)source(""filename"")
आर (प्रोग्रामिंग भाषा)
- पैकेज आयात
#include filename
सी (प्रोग्रामिंग भाषा), सी++#[path = "filename"] mod altname;
, जंग (प्रोग्रामिंग भाषा)@import module;
उद्देश्य सी<<name
गणितज्ञ और वोल्फ्राम भाषा:-use_module(module).
प्रोलॉग:from module import *
पायथन (प्रोग्रामिंग भाषा)extern crate libname;
, जंग (प्रोग्रामिंग भाषा)extern crate libname as altname;
जंग (प्रोग्रामिंग भाषा)mod modname;
, जंग (प्रोग्रामिंग भाषा)library("package")
आर (प्रोग्रामिंग भाषा):IMPORT module
ओबेरॉन (प्रोग्रामिंग भाषा)import altname "package/name"
जाओ (प्रोग्रामिंग भाषा):import package.module;
, डी (प्रोग्रामिंग भाषा)import altname = package.module;
डी (प्रोग्रामिंग भाषा)import Module
, हास्केल (प्रोग्रामिंग भाषा)import qualified Module as M
हास्केल (प्रोग्रामिंग भाषा)import package.*
जावा (प्रोग्रामिंग भाषा), MATLAB, कोटलिन (प्रोग्रामिंग भाषा)import "modname";
जावास्क्रिप्ट:import altname from "modname";
, जावास्क्रिप्ट:import package
स्काला (प्रोग्रामिंग भाषा)import package._
, स्काला (प्रोग्रामिंग भाषा)import module
स्विफ्ट (प्रोग्रामिंग भाषा)import module
, पायथन (प्रोग्रामिंग भाषा)require('modname')
लुआ (प्रोग्रामिंग भाषा):require "gem"
, रूबी (प्रोग्रामिंग भाषा)use module
, फोरट्रान 90+use module, only : identifier
फोरट्रान 90+use Module;
, पर्लuse Module qw(import options);
पर्लuse Package.Name
कोबरा (प्रोग्रामिंग भाषा)uses unit
पास्कल (प्रोग्रामिंग भाषा)with package
एडा (प्रोग्रामिंग भाषा)
- वर्ग आयात
from module import Class
पायथन (प्रोग्रामिंग भाषा)import package.class
जावा (प्रोग्रामिंग भाषा), MATLAB, कोटलिन (प्रोग्रामिंग भाषा)import class from "modname";
, जावास्क्रिप्टimport {class} from "modname";
, जावास्क्रिप्टimport {class as altname} from "modname";
जावास्क्रिप्टimport package.class
, स्काला (प्रोग्रामिंग भाषा)import package.{ class1 => alternativeName, class2 }
, स्काला (प्रोग्रामिंग भाषा)import package._
स्काला (प्रोग्रामिंग भाषा)use Namespace\ClassName;
, पीएचपीuse Namespace\ClassName as AliasName;
पीएचपी
- प्रक्रिया/कार्य आयात
from module import function
पायथन (प्रोग्रामिंग भाषा):import package.module : symbol;
, डी (प्रोग्रामिंग भाषा):import package.module : altsymbolname = symbol;
डी (प्रोग्रामिंग भाषा):import Module (function)
हास्केल (प्रोग्रामिंग भाषा):import function from "modname";
, जावास्क्रिप्ट:import {function} from "modname";
, जावास्क्रिप्ट:import {function as altname} from "modname";
जावास्क्रिप्ट:import package.function
मतलब:import package.class.function
, स्काला (प्रोग्रामिंग भाषा):import package.class.{ function => alternativeName, otherFunction }
स्काला (प्रोग्रामिंग भाषा):use Module ('symbol');
पर्ल:use function Namespace\function_name;
, पीएचपी:use Namespace\function_name as function_alias_name;
पीएचपी:use module::submodule::symbol;
, जंग (प्रोग्रामिंग भाषा):use module::submodule::{symbol1, symbol2};
, जंग (प्रोग्रामिंग भाषा):use module::submodule::symbol as altname;
जंग (प्रोग्रामिंग भाषा):
- निरंतर आयात
use const Namespace\CONST_NAME;
पीएचपी
उपरोक्त कथनों को इस आधार पर भी वर्गीकृत किया जा सकता है कि क्या वे वाक्यात्मक सुविधा हैं (चीज़ों को छोटे नाम से संदर्भित करने की अनुमति देते हैं, लेकिन उन्हें अभी भी आयात के बिना कुछ पूर्णतः योग्य नाम से संदर्भित किया जा सकता है), या क्या उन्हें वास्तव में एक्सेस करने की आवश्यकता है कोड (जिसके बिना कोड तक पहुंचना असंभव है, यहां तक कि पूरी तरह से योग्य नामों के साथ भी)।
- वाक्यात्मक सुविधा
import package.*
जावा (प्रोग्रामिंग भाषा)import package.class
जावा (प्रोग्रामिंग भाषा)open module
ओकैमल
- कोड तक पहुंचने के लिए आवश्यक है
import altname "package/name"
जाओ (प्रोग्रामिंग भाषा)import altname from "modname";
जावास्क्रिप्टimport module
पायथन (प्रोग्रामिंग भाषा)
ब्लॉक
एक ब्लॉक दो या दो से अधिक कथनों, अभिव्यक्तियों या कोड की अन्य इकाइयों के समूह के लिए एक संकेतन है जो इस तरह से संबंधित होते हैं कि एक संपूर्ण को समाहित करते हैं।
- ब्रेसेस (उर्फ घुंघराले ब्रैकेट)
{
...}
घुंघराले ब्रैकेट प्रोग्रामिंग भाषा भाषाएँ: सी (प्रोग्रामिंग भाषा), सी++, ऑब्जेक्टिव-सी, गो (प्रोग्रामिंग भाषा), जावा (प्रोग्रामिंग भाषा), जावास्क्रिप्ट/ईसीएमएस्क्रिप्ट, सी शार्प (प्रोग्रामिंग भाषा)|सी#, डी (प्रोग्रामिंग भाषा), पर्ल , पीएचपी (for
& loop
लूप, या किसी ब्लॉक को तर्क के रूप में पास करें), आर (प्रोग्रामिंग भाषा), रस्ट (प्रोग्रामिंग भाषा), स्काला (प्रोग्रामिंग भाषा), केवल एस, स्विफ्ट (प्रोग्रामिंग भाषा), पावरशेल, हास्केल (प्रोग्रामिंग भाषा) (डू-नोटेशन में) ), ऑटोहॉटकी
- कोष्ठक
(
...)
- वर्ग कोष्ठक
[
...]
- विद्रोह, रेड (प्रोग्रामिंग भाषा), सेल्फ (प्रोग्रामिंग भाषा), स्मॉलटॉक (ब्लॉक प्रथम श्रेणी के ऑब्जेक्ट हैं। उर्फ क्लोजर)
begin
...end
- Ada (प्रोग्रामिंग भाषा), ALGOL, F शार्प (प्रोग्रामिंग भाषा)|F# (वर्बोज़ सिंटैक्स),[11]पास्कल (प्रोग्रामिंग भाषा), रूबी (प्रोग्रामिंग भाषा) (
for
,do/while
&do/until
लूप्स), ओकैमल, आईसीएल वीएमई#एससीएल, शुरुआत , एरलांग (प्रोग्रामिंग भाषा)।
do
...end
- पीएल/आई, आरईएक्सएक्स
do
...done
- बैश (यूनिक्स शेल) (
for
&while
लूप्स), एफ शार्प (प्रोग्रामिंग भाषा)|एफ# (वर्बोज़ सिंटैक्स)[11]विजुअल बेसिक, फोरट्रान, ट्यूटर (प्रोग्रामिंग भाषा) (ब्लॉक बॉडी के अनिवार्य इंडेंटिंग के साथ), दृश्य प्रोलॉग
do
...end
- लुआ (प्रोग्रामिंग भाषा), रूबी (प्रोग्रामिंग भाषा) (तर्क के रूप में ब्लॉक पास करें,
for
लूप), सही (लूप बॉडी को बीच में घेरता हैdo
औरend
)
- एक्स ...
end
(उदाif
...end
)
- रूबी (प्रोग्रामिंग भाषा) (
if
,while
,until
,def
,class
,module
कथन), OCaml (for
&while
लूप्स), MATLAB (if
&switch
सशर्त,for
&while
लूप,try
उपवाक्य,package
,classdef
,properties
,methods
,events
, &function
ब्लॉक), लुआ (प्रोग्रामिंग भाषा) (then
/else
&function
)
- (
begin
...)
- (प्रोग्न...)
- लिस्प (प्रोग्रामिंग भाषा)
- (
do
...)
- इंडेंटेशन
- ऑफ-साइड नियम#ऑफ-साइड नियम भाषाएं|ऑफ-साइड नियम भाषाएं: बू (प्रोग्रामिंग भाषा), कोबरा (प्रोग्रामिंग भाषा), कॉफ़ीस्क्रिप्ट , एफ शार्प (प्रोग्रामिंग भाषा)|एफ#, हास्केल (प्रोग्रामिंग भाषा) (इन डू- जब ब्रेसिज़ छोड़े जाते हैं तो नोटेशन), लाइवस्क्रिप्ट (प्रोग्रामिंग भाषा), ओकैम (प्रोग्रामिंग भाषा), पायथन (प्रोग्रामिंग भाषा), नेमेरले (वैकल्पिक; यदि उपयोगकर्ता चाहें तो कर्ली-ब्रेस सिंटैक्स के बजाय व्हाइट-स्पेस संवेदनशील सिंटैक्स का उपयोग कर सकते हैं) , निम (प्रोग्रामिंग भाषा), स्काला (प्रोग्रामिंग भाषा) (वैकल्पिक, जैसा कि नेमर्ले में है)
- फ्री-फ़ॉर्म भाषाएँ: ALGOL के अधिकांश वंशज (C (प्रोग्रामिंग भाषा), पास्कल (प्रोग्रामिंग भाषा), और पर्ल सहित); लिस्प (प्रोग्रामिंग भाषा) भाषाएँ
- अन्य
- एडा (प्रोग्रामिंग भाषा), विजुअल बेसिक, सीड7:
if
...end if
- एपीएल (प्रोग्रामिंग भाषा):
:If
...:EndIf
या:If
...:End
- बैश (यूनिक्स शेल), बॉर्न शैल, और के शेल :
if
...fi
,do
...done
,case
...esac
; - अल्गोल 68:
begin
...end
,(
...)
,if
...fi
,do
...od
- लुआ (प्रोग्रामिंग भाषा), पास्कल (प्रोग्रामिंग भाषा), मॉड्यूल-2, सीड7:
repeat
...until
- कोबोल:
IF
...END-IF
,PERFORM
...END-PERFORM
, आदि कथनों के लिए; ....
वाक्यों के लिए. - विजुअल बेसिक .नेट:
If
...End If
,For
...Next
,Do
...Loop
- लघु बुनियादी:
If
...EndIf
,For
...EndFor
,While
...EndWhile
टिप्पणियाँ
टिप्पणी (कंप्यूटर प्रोग्रामिंग) को इसके द्वारा वर्गीकृत किया जा सकता है:
- शैली (इनलाइन/ब्लॉक)
- पार्स नियम (अनदेखा/प्रक्षेपित/स्मृति में संग्रहीत)
- पुनरावर्तीता (नेस्टेबल/गैर-नेस्टेबल)
- उपयोग (डॉकस्ट्रिंग्स/फेंकने वाली टिप्पणियाँ/अन्य)
इनलाइन टिप्पणियाँ
इनलाइन टिप्पणियाँ आम तौर पर वे होती हैं जो किसी टिप्पणी के अंत को इंगित करने के लिए एक नई पंक्ति वर्ण का उपयोग करती हैं, और एक टिप्पणी की शुरुआत को इंगित करने के लिए एक मनमाना सीमांकक या टोकन (पार्सर) का अनुक्रम।
उदाहरण:
टिप्पणियाँ ब्लॉक करें
ब्लॉक टिप्पणियाँ आम तौर पर वे होती हैं जो किसी टिप्पणी की शुरुआत को इंगित करने के लिए एक सीमांकक का उपयोग करती हैं, और किसी टिप्पणी के अंत को इंगित करने के लिए एक अन्य सीमांकक का उपयोग करती हैं। इस संदर्भ में, व्हाइटस्पेस वर्ण और न्यूलाइन वर्णों को सीमांकक के रूप में नहीं गिना जाता है। उदाहरणों में, प्रतीक ~ टिप्पणी का प्रतिनिधित्व करता है; और, इसके आस-पास के प्रतीकों को व्याख्याकारों/संकलकों द्वारा सीमांकक के रूप में समझा जाता है।
उदाहरण:
Symbol | Languages |
---|---|
comment ~ ;
|
ALGOL 60, SIMULA |
¢ ~ ¢ ,# ~ # , co ~ co ,comment ~ comment
|
ALGOL 68[14][15] |
/* ~ */
|
ActionScript, AutoHotkey, C, C++, C#, D,[16] Go, Java, JavaScript, Kotlin, Objective-C, PHP, PL/I, Prolog, Rexx, Rust (can be nested), Scala (can be nested), SAS, SASS, SQL, Swift (can be nested), Visual Prolog, CSS |
#cs ~ #ce
|
AutoIt[17] |
/+ ~ +/
|
D (can be nested)[16] |
/# ~ #/
|
Cobra (can be nested) |
<# ~ #>
|
PowerShell |
<!-- ~ -->
|
HTML, XML |
=begin ~ =cut
|
Perl |
#`( ~ )
|
Raku (bracketing characters can be (), <>, {}, [], any Unicode characters with BiDi mirrorings, or Unicode characters with Ps/Pe/Pi/Pf properties) |
=begin ~ =end
|
Ruby |
#<TAG> ~ #</TAG> , #stop ~ EOF ,#iffalse ~ #endif , #ifntrue ~ #endif ,#if false ~ #endif , #if !true ~ #endif
|
S-Lang[18] |
{- ~ -}
|
Haskell (can be nested) |
(* ~ *)
|
Delphi, ML, Mathematica, Object Pascal, Pascal, Seed7, AppleScript, OCaml (can be nested), Standard ML (can be nested), Maple, Newspeak, F# |
{ ~ }
|
Delphi, Object Pascal, Pascal, PGN, Red |
{# ~ #}
|
Nunjucks, Twig |
{{! ~ }}
|
Mustache, Handlebars |
{{!-- ~ --}}
|
Handlebars (cannot be nested, but may contain {{ and }} )
|
|# ~ #|
|
Curl |
%{ ~ %}
|
MATLAB[13] (the symbols must be in a separate line) |
#| ~ |#
|
Lisp, Scheme, Racket (can be nested in all three). |
#= ~ =#
|
Julia[19] |
#[ ~ ]#
|
Nim[20] |
--[[ ~ ]] ,--[=[ ~ ]=] ,--[= ...=[ ~ ]= ...=]
|
Lua (brackets can have any number of matching = characters; can be nested within non-matching delimiters) |
" ~ "
|
Smalltalk |
(comment ~ )
|
Clojure |
#If COMMENT Then ~ #End If [lower-alpha 1]
|
Visual Basic .NET |
#if COMMENT ~ #endif [lower-alpha 2]
|
C# |
' comment _ or REM comment _ [lower-alpha 3]
|
Classic Visual Basic, VBA, VBScript |
अद्वितीय वेरिएंट
- फोरट्रान
- फोरट्रान 66/77 में इंडेंटिंग लाइनें महत्वपूर्ण हैं। वास्तविक विवरण एक पंक्ति के कॉलम 7 से 72 में है। कॉलम 6 में कोई भी गैर-स्पेस वर्ण इंगित करता है कि यह पंक्ति पिछली पंक्ति की निरंतरता है। ए '
C
' कॉलम 1 में यह दर्शाया गया है कि यह पूरी पंक्ति एक टिप्पणी है। कॉलम 1 यद्यपि 5 में एक संख्या हो सकती है जो एक लेबल के रूप में कार्य करती है। कॉलम 73 हालांकि 80 को नजरअंदाज कर दिया गया है और टिप्पणियों के लिए इस्तेमाल किया जा सकता है; पंच्ड कार्ड युग में कंप्यूटर प्रोग्रामिंग में, इन कॉलमों में अक्सर एक अनुक्रम संख्या होती थी ताकि यदि कोई गलती से कार्ड गिरा दे तो कार्डों के डेक को सही क्रम में क्रमबद्ध किया जा सके। फोरट्रान 90 ने इंडेंटेशन नियम की आवश्यकता को हटा दिया और इसका उपयोग करते हुए इनलाइन टिप्पणियाँ जोड़ीं!
टिप्पणी सीमांकक के रूप में चरित्र।
- कोबोल
- निश्चित प्रारूप कोड में, लाइन इंडेंटेशन महत्वपूर्ण है। कॉलम 1-6 और 73 से आगे के कॉलमों को नजरअंदाज कर दिया गया है। यदि एक
*
या/
कॉलम 7 में है, तो वह पंक्ति एक टिप्पणी है। COBOL 2002 तक, यदि aD
याd
कॉलम 7 में था, यह एक डिबगिंग लाइन को परिभाषित करेगा जिसे तब तक नजरअंदाज कर दिया जाएगा जब तक कि कंपाइलर को इसे संकलित करने का निर्देश न दिया जाए।
- कोबरा
- कोबरा ब्लॉक टिप्पणियों का समर्थन करता है
/#
...#/
जो इस प्रकार है/*
...*/
अक्सर सी-आधारित भाषाओं में पाया जाता है, लेकिन दो अंतरों के साथ।#
ई> वर्ण का एकल-पंक्ति टिप्पणी प्रपत्र से पुन: उपयोग किया जाता है#
..., और ब्लॉक टिप्पणियों को नेस्ट किया जा सकता है जो कोड के बड़े ब्लॉकों पर टिप्पणी करने के लिए सुविधाजनक है।
- कर्ल
- कर्ल उपयोगकर्ता-परिभाषित टैग के साथ ब्लॉक टिप्पणियों का समर्थन करता है
|foo# ... #foo|
.
- लुआ
- कच्चे तारों की तरह, वर्गाकार कोष्ठकों के बीच किसी भी संख्या में समान चिह्न हो सकते हैं, बशर्ते कि उद्घाटन और समापन टैग दोनों में समान चिह्नों की मिलान संख्या हो; यह तब तक नेस्टिंग की अनुमति देता है जब तक नेस्टेड ब्लॉक टिप्पणियाँ/कच्ची स्ट्रिंग्स अपनी संलग्न टिप्पणी की तुलना में भिन्न संख्या में समान चिह्नों का उपयोग करती हैं:
--[[comment --[=[ nested comment ]=] ]]
. लुआ पहली नई लाइन (यदि मौजूद है) को हटा देता है जो सीधे शुरुआती टैग का अनुसरण करती है।
- पर्ल
- पर्ल में ब्लॉक टिप्पणियों को दस्तावेज़ीकरण का हिस्सा माना जाता है, और उन्हें सादा पुराना दस्तावेज़ीकरण (POD) नाम दिया जाता है। तकनीकी रूप से, पर्ल के पास स्रोत कोड में ब्लॉक टिप्पणियों को शामिल करने की कोई परंपरा नहीं है, लेकिन POD को नियमित रूप से वर्कअराउंड के रूप में उपयोग किया जाता है।
- PHP
- PHP मानक C/C++ शैली टिप्पणियों का समर्थन करता है, लेकिन पर्ल शैली का भी समर्थन करता है।
- पायथन
- स्रोत की पंक्तियों पर टिप्पणी करने के लिए ट्रिपल-उद्धरण का उपयोग, वास्तव में एक टिप्पणी नहीं बनाता है।[21] संलग्न पाठ एक स्ट्रिंग शाब्दिक बन जाता है, जिसे पायथन आमतौर पर अनदेखा कर देता है (सिवाय इसके कि जब यह मॉड्यूल, क्लास या फ़ंक्शन के मुख्य भाग में पहला कथन हो; डॉकस्ट्रिंग देखें)।
- अमृत
- पायथन में उपयोग की गई उपरोक्त ट्रिक एलिक्सिर में भी काम करती है, लेकिन अगर कंपाइलर इसे देखता है तो वह एक चेतावनी देगा। चेतावनी को दबाने के लिए, किसी को सतर्क रहने की आवश्यकता होगी
~S
(जो स्ट्रिंग इंटरपोलेशन को रोकता है) ट्रिपल-उद्धृत स्ट्रिंग तक, जिससे अंतिम निर्माण होता है~S""" ... """
. इसके अलावा, एलिक्सिर एक आधिकारिक भाषा सुविधा के रूप में ब्लॉक टिप्पणियों के सीमित रूप का समर्थन करता है, लेकिन पर्ल की तरह, यह निर्माण पूरी तरह से दस्तावेज़ लिखने के लिए है। पर्ल के विपरीत, इसे वर्कअराउंड के रूप में उपयोग नहीं किया जा सकता है, यह कोड के कुछ हिस्सों तक ही सीमित है और त्रुटियों को फेंकता है या यहां तक कि अन्यत्र उपयोग किए जाने पर फ़ंक्शन को भी दबा देता है।[22]
- राकु
- राकू (प्रोग्रामिंग भाषा) का उपयोग करता है
#`(...)
ब्लॉक टिप्पणियों को दर्शाने के लिए।[23] राकू वास्तव में किसी भी दाएं और बाएं युग्मित ब्रैकेट के उपयोग की अनुमति देता है#`
(अर्थात।#`(...)
,#`[...]
,#`{...}
,#`<...>
, और उससे भी अधिक जटिल#`{{...}}
सभी वैध ब्लॉक टिप्पणियाँ हैं)। ब्रैकेट को टिप्पणियों के अंदर नेस्ट करने की भी अनुमति है (अर्थात।#`{ a { b } c }
अंतिम समापन ब्रेस पर जाता है)।
- माणिक
- रूबी में ब्लॉक टिप्पणी यहां खुलती है
=begin
लाइन और पर बंद हो जाती है=end
पंक्ति।
- बोलचाल की भाषा
- से घिरी रेखाओं का क्षेत्र
#<tag>
और#</tag>
दुभाषिया द्वारा सीमांककों को नजरअंदाज कर दिया जाता है। टैग नाम अल्फ़ान्यूमेरिक वर्णों का कोई भी अनुक्रम हो सकता है जिसका उपयोग यह इंगित करने के लिए किया जा सकता है कि संलग्न ब्लॉक को कैसे समझा जाना है। उदाहरण के लिए,#<latex>
LaTeX स्वरूपित दस्तावेज़ के एक ब्लॉक की शुरुआत का संकेत दे सकता है।
- स्कीम और रैकेट
- अगले पूर्ण वाक्यात्मक घटक (एस-अभिव्यक्ति) पर टिप्पणी की जा सकती है
#;
.
- एबीएपी
एबीएपी दो अलग-अलग प्रकार की टिप्पणियों का समर्थन करता है। यदि इंडेंटेशन सहित किसी पंक्ति का पहला अक्षर तारांकन चिह्न है (*
) पूरी पंक्ति को एक टिप्पणी के रूप में माना जाता है, जबकि एक एकल दोहरे उद्धरण ("
) एक इन-लाइन टिप्पणी शुरू करता है जो पंक्ति के अंत तक कार्य करता है। बयानों के बीच एबीएपी टिप्पणियाँ संभव नहीं हैं EXEC SQL
और ENDEXEC
क्योंकि नेटिव SQL में इन वर्णों के लिए अन्य उपयोग हैं। अधिकांश SQL बोलियों में डबल डैश (--
) का उपयोग इसके स्थान पर किया जा सकता है।
- गूढ़ भाषाएँ
- कई गूढ़ प्रोग्रामिंग भाषाएं इस परंपरा का पालन करती हैं कि कोई भी पाठ जो निर्देश सूचक (उदाहरण के लिए, बेफंज) द्वारा निष्पादित नहीं किया जाता है या अन्यथा कोई अर्थ नहीं दिया जाता है (उदाहरण के लिए, ब्रेनफक), को एक टिप्पणी माना जाता है।
टिप्पणी तुलना
स्रोत कोड में टिप्पणियाँ घोषित करने के लिए वाक्यविन्यास शैलियों की एक विस्तृत विविधता है।
BlockComment
ब्लॉक टिप्पणी शैली को इंगित करने के लिए यहां इटैलिक का उपयोग किया गया है।
InlineComment
इनलाइन टिप्पणी शैली को इंगित करने के लिए यहां इटैलिक का उपयोग किया गया है।
Language | In-line comment | Block comment |
---|---|---|
Ada, Eiffel, Euphoria, Occam, SPARK, ANSI SQL, and VHDL | -- InlineComment
|
|
ALGOL 60 | comment BlockComment;
| |
ALGOL 68 | ¢ BlockComment ¢
| |
APL | ⍝ InlineComment
|
|
AppleScript | -- InlineComment
|
(* BlockComment *)
|
Assembly language (varies) | ; InlineComment one example (most assembly languages use line comments only)
|
|
AutoHotkey | ; InlineComment
|
/* BlockComment */
|
AWK, Bourne shell, C shell, Maple, and PowerShell | # InlineComment
|
<# BlockComment #>
|
Bash | # InlineComment
|
<<EOF : '
|
BASIC (various dialects): | 'InlineComment (not all dialects)
|
|
C (K&R, ANSI/C89/C90), CHILL, PL/I, and REXX | /* BlockComment */
| |
C (C99), C++, Go, Swift and JavaScript | // InlineComment
|
/* BlockComment */
|
C# | // InlineComment /// InlineComment (XML documentation comment)
|
/* BlockComment */ /** BlockComment */ (XML documentation comment)#if COMMENT (Compiler directive)[lower-alpha 2]
|
COBOL I to COBOL 85 | * InlineComment (* in column 7)
|
|
COBOL 2002 | *> InlineComment
|
|
Curl | || InlineComment
|
|# BlockComment #|
|
Cobra | # InlineComment
|
/# BlockComment #/ (nestable)
|
D | // InlineComment /// Documentation InlineComment (ddoc comments)
|
/* BlockComment */ /** Documentation BlockComment */ (ddoc comments)
|
DCL | $! InlineComment
|
|
ECMAScript (JavaScript, ActionScript, etc.) | // InlineComment
|
/* BlockComment */
|
Elixir | # InlineComment
|
~S""" @doc """ (Documentation, only works in modules) @moduledoc (Module documentation) @typedoc (Type documentation)
|
Forth | \ InlineComment
|
( BlockComment ) (single line as well as multiline)
|
FORTRAN I to FORTRAN 77 | C InlineComment (C in column 1)
|
|
Fortran 90 and later | ! InlineComment
|
#if 0 [lower-alpha 4]
|
Haskell | -- InlineComment
|
{- BlockComment -}
|
Java | // InlineComment
|
/* BlockComment */
|
Julia | # InlineComment
|
#= BlockComment =#
|
Lisp and Scheme | ; InlineComment
|
#| BlockComment |#
|
Lua | -- InlineComment
|
--[==[ BlockComment]==] (variable number of = signs, nestable with delimiters with different numbers of = signs)
|
Maple | # InlineComment
|
(* BlockComment *)
|
Mathematica | (* BlockComment *)
| |
Matlab | % InlineComment
|
%{ Note: Both percent–bracket symbols must be the only non-whitespace characters on their respective lines. |
Nim | # InlineComment
|
#[ BlockComment ]#
|
Object Pascal | // InlineComment
|
(* BlockComment *) { BlockComment }
|
OCaml | (* BlockComment (* nestable *) *)
| |
Pascal, Modula-2, Modula-3, Oberon, and ML: | (* BlockComment *)
| |
Perl and Ruby | # InlineComment
|
=begin (=end in Ruby) (POD documentation comment)
|
PGN, Red | ; InlineComment
|
{ BlockComment }
|
PHP | # InlineComment // InlineComment
|
/* BlockComment */ /** Documentation BlockComment */ (PHP Doc comments)
|
PILOT | R:InlineComment
|
|
PLZ/SYS | ! BlockComment !
| |
PL/SQL and TSQL | -- InlineComment
|
/* BlockComment */
|
Prolog | % InlineComment
|
/* BlockComment */
|
Python | # InlineComment
|
''' BlockComment ''' (Documentation string when first line of module, class, method, or function) |
R | # InlineComment
|
|
Raku | # InlineComment
|
#`{
|
Rust | // InlineComment
|
/* BlockComment */ (nestable)
|
SAS | * BlockComment; /* BlockComment */
| |
Seed7 | # InlineComment
|
(* BlockComment *)
|
Simula | comment BlockComment; ! BlockComment;
| |
Smalltalk | "BlockComment"
| |
Smarty | {* BlockComment *}
| |
Standard ML | (* BlockComment *)
| |
TeX, LaTeX, PostScript, Erlang and S-Lang | % InlineComment
|
|
Texinfo | @c InlineComment
|
|
TUTOR | * InlineComment command $$ InlineComment
|
|
Visual Basic | ' InlineComment Rem InlineComment
|
' BlockComment _ Rem BlockComment _ [lower-alpha 3]
|
Visual Basic .NET | ' InlineComment
|
#If COMMENT Then
|
Visual Prolog | % InlineComment
|
/* BlockComment */
|
Wolfram Language | (* BlockComment *)
| |
Xojo | ' InlineComment // InlineComment rem InlineComment
|
यह भी देखें
- सी सिंटैक्स
- सी++ सिंटैक्स
- घुंघराले ब्रैकेट प्रोग्रामिंग भाषाएँ , प्रोग्रामिंग लैंग्वेज सिंटैक्स का एक विस्तृत परिवार
- जावा सिंटैक्स
- जावास्क्रिप्ट सिंटैक्स
- PHP सिंटैक्स और शब्दार्थ
- पायथन सिंटैक्स और शब्दार्थ
संदर्भ
- ↑ 1.0 1.1 For multiple statements on one line
- ↑ Three different kinds of clauses, each separates phrases and the units differently:
- serial-clause using go-on-token (viz. semicolon): begin a; b; c end – units are executed in order.
- collateral-clause using and-also-token (viz. ","): begin a, b, c end – order of execution is to be optimised by the compiler.
- parallel-clause using and-also-token (viz. ","): par begin a, b, c end – units must be run in parallel threads.
- ↑ semicolon – result of receding statement hidden, comma – result displayed
- ↑ 4.0 4.1 From the R Language Definition, section 3.2 Control structures: "A semicolon always indicates the end of a statement while a new line may indicate the end of a statement. If the current statement is not syntactically complete new lines are simply ignored by the evaluator."
- ↑ Bash Reference Manual, 3.1.2.1 Escape Character
- ↑ Python Documentation, 2. Lexical analysis: 2.1.5. Explicit line joining
- ↑ Mathworks.com Archived 7 February 2010 at the Wayback Machine
- ↑ https://ss64.com/nt/syntax-brackets.html
- ↑ "Scripts - Definition & Usage | AutoHotkey".
- ↑ For an M-file (MATLAB source) to be accessible by name, its parent directory must be in the search path (or current directory).
- ↑ 11.0 11.1 11.2 "Verbose Syntax - F# | Microsoft Learn". Microsoft Learn. 5 November 2021. Retrieved 17 November 2022.
- ↑ "Nim Manual".
- ↑ 13.0 13.1 "Mathworks.com". Archived from the original on 21 November 2013. Retrieved 25 June 2013.
- ↑ "Algol68_revised_report-AB.pdf on PDF pp. 61–62, original document pp. 121–122" (PDF). Retrieved 27 May 2014.
- ↑ "HTML Version of the Algol68 Revised Report AB". Archived from the original on 17 March 2013. Retrieved 27 May 2014.
- ↑ 16.0 16.1 "DLang.org, Lexical". Retrieved 27 May 2014.
- ↑ "AutoItScript.com Keyword Reference, #comments-start". Retrieved 27 May 2014.
- ↑ "slang-2.2.4/src/slprepr.c – line 43 to 113". Retrieved 28 May 2014.
- ↑ "Punctuation · The Julia Language".
- ↑ "Nim Manual".
- ↑ "Python tip: You can use multi-line strings as multi-line comments", 11 September 2011, Guido van Rossum
- ↑ "Writing Documentation — Elixir v1.12.3". Retrieved 28 July 2023.
- ↑ "Perl 6 Documentation (Syntax)". docs.perl6.org. Comments. Retrieved 5 April 2017.
- ↑ "Using the FPP Preprocessor". Retrieved 18 November 2022.
- ↑ "Perl 6 POD Comments".
- ↑ "Perl 6 POD (Abbreviated Blocks)".
टिप्पणियाँ
- ↑ Visual Basic .NET does not support traditional multi-line comments, but they can be emulated through compiler directives.
- ↑ 2.0 2.1 While C# supports traditional block comments
/* ... */
, compiler directives can be used to mimic them just as in VB.NET. - ↑ 3.0 3.1 The line continuation character
_
can be used to extend a single-line comment to the next line without needing to type'
orREM
again. This can be done up to 24 times in a row. - ↑ Fortran does not support traditional block comments, but some compilers support preprocessor directives in the style of C/C++, allowing a programmer to emulate multi-line comments.[24]
[Category:Programming language comparisons|*Synt