프로그래밍 언어 비교(syntax)
Comparison of programming languages (syntax)비교요인 프로그래밍 언어의 |
---|
|
이 프로그래밍 언어의 비교는 50개 이상의 컴퓨터 프로그래밍 언어에 대한 언어 구문(형식)의 특징을 비교한다.
표현.
프로그래밍 언어 표현식은 크게 네 가지 구문 구조로 분류할 수 있다.
- 접두사 표기법
- 리스프
(* (+ 2 3) (expt 4 5))
- 인픽스 표기법
- 포트란
(2 + 3) * (4 ** 5)
- 접미사, 포스트픽스 또는 역폴란드 표기법
- 포스
2 3 + 4 5 ** *
- 수학식 표기법
- 과외
(2 + 3)(45) $ note implicit multiply operator
진술들
프로그래밍 언어(일반적으로 알골의 후손)가 진술서를 가지고 있는 경우, 일반적으로 다음과 같은 규칙을 가진다.
- 문 구분 기호
- 문 종료자, 및
- 줄 잇기
문 구분 기호는 두 개의 별도 문장 사이의 경계를 구분하는 데 사용된다. 진술 종료자는 개별 진술의 끝을 표시하기 위해 사용된다. 행의 끝을 문장의 끝이라고 해석하는 언어를 "행 지향적" 언어라고 한다.
"라인 연속"은 줄 중심 언어에서 뉴라인 문자가 잠재적으로 문장 종료자로 잘못 해석될 수 있는 관습이다. 그런 언어에서는 하나의 문장이 한 줄 이상의 범위를 가질 수 있게 한다.
언어 | 문 구분 기호-단자 | 이차분리기단기[1] |
---|---|---|
ABAP | 기간으로 분리된 | |
에이다 | 세미콜론이 종료됨 | |
알골 | 세미콜론으로 분리된 | |
알골 68 | 세미콜론과 쉼표로 구분된[2] | |
APL | 뉴라인 종료됨 | [Direct_function ⋄] 분리 이차 |
애플스크립트 | 뉴라인 종료됨 | |
오토핫키 | 뉴라인 종료됨 | |
기본 | 뉴라인 종료됨 | 결장이 분리된 |
Boo | 뉴라인 종료됨 | |
C | 세미콜론은 문장을 끝맺는다. | 쉼표로 분리된 표현들 |
C++ | 세미콜론은 문장을 끝맺는다. | 쉼표로 분리된 표현들 |
C# | 세미콜론이 종료됨 | |
코볼 | 공백이 분리되고, 때로는 기간이 분리되며, 선택적으로 쉼표와 세미콜론으로 분리된다. | |
코브라 | 뉴라인 종료됨 | |
커피스크립트 | 뉴라인 종료됨 | |
CSS | 세미콜론으로 분리된 | |
D | 세미콜론이 종료됨 | |
에펠 | 뉴라인 종료됨 | 세미콜론 |
얼랑 | 대장 분리, 기간 종료 | |
F# | 뉴라인 종료됨 | 세미콜론 |
포트란 | 뉴라인 종료됨 | 세미콜론 |
포스 | 세미콜론은 단어 정의를 종료한다. 공간은 단어 사용을 종료한다. | |
GFA 베이직 | 뉴라인 종료됨 | |
가다 | 세미콜론으로 구분(컴파일러로 구분) | |
하스켈 (통보 중) | 뉴라인으로 분리된 | |
Haskell(경고 중, 가새 사용 시) | 세미콜론으로 분리된 | |
자바 | 세미콜론이 종료됨 | |
자바스크립트 | 세미콜론 분리(그러나 때때로 새 줄에 암시적으로 삽입) | |
코틀린 | 세미콜론 분리(그러나 때때로 새 줄에 암시적으로 삽입) | |
루아 | 공백 구분(오피니언 선택사항) | |
매스매티카 울프람이라고도 한다. | 세미콜론으로 분리된 | |
매트랩 | 뉴라인 종료됨 | 세미콜론 또는 쉼표[3] |
덤프 M이라고도 한다. | 뉴라인은 M이 가지고 있는 "설명서"에 가장 가까운 라인 스코프를 종료한다. | 공간은 명령을 분리/열어서 다른 명령이 따를 수 있게 한다. |
님 | 뉴라인 종료됨 | |
Object Pascal도 (Delphi) | 세미콜론으로 분리된 | |
목표-C | 세미콜론이 종료됨 | |
OCAML | 세미콜론으로 분리된 | |
파스칼 | 세미콜론으로 분리된 | |
펄 | 세미콜론으로 분리된 | |
PHP | 세미콜론이 종료됨 | |
기본 선택 | 뉴라인 종료됨 | 세미콜론으로 분리된 |
파워쉘 | 뉴라인 종료됨 | 세미콜론으로 분리된 |
서언, 머리말 | 쉼표 구분(쉼표 구분), 세미콜론 구분(분리), 마침표 구분(쉼표) | |
파이톤 | 뉴라인 종료됨 | 세미콜론 |
R | 뉴라인 종료됨[4] | 세미콜론[4] |
라쿠 | 세미콜론으로 분리된 | |
빨간색 | 공백으로 분리된 | |
루비 | 뉴라인 종료됨 | 세미콜론 |
녹 | 세미콜론은 문장을 끝맺는다. | 쉼표로 분리된 표현들 |
스칼라 | newline ended(newline ended(뉴라인 종료)( | 세미콜론 |
씨드7 | 세미콜론 분리(콜론 종료 허용) | |
시물라 | 세미콜론으로 분리된 | |
에스랑 | 세미콜론으로 분리된 | |
스몰토크 | 기간으로 분리된 | |
표준 ML | 세미콜론으로 분리된 | |
스위프트 | 세미콜론으로 구분(컴파일러로 구분) | |
Visual Basic 입니다. | 뉴라인 종료됨 | 결장이 분리된 |
Visual Basic 입니다.네트 | 뉴라인 종료됨 | 결장이 분리된 |
울프람어 | 세미콜론으로 분리된 | |
소조 | 뉴라인 종료됨 | |
언어 | 문 구분 기호-단자 | 이차분리기단기[1] |
라인연속
라인 지속은 일반적으로 어휘적 분석의 일부로 행해진다. 라인 지속이 감지되지 않는 한, 일반적으로 새로운 라인은 토큰 스트림에 토큰이 추가되는 결과를 초래한다.
- 공백 – 연속이 필요 없는 언어
- Ada – 세미콜론으로 선 종단
- C# – 세미콜론으로 끝나는 선
- JavaScript – 세미콜론으로 끝나는 라인(추론될 수 있음)
- 루아
- OCAML
- 행의 마지막 문자로 앰퍼샌드
- 선의 마지막 문자로 백슬래시
- 줄의 마지막 문자로 백틱
- 선의 마지막 문자로 하이픈 사용
- 선의 마지막 문자로 밑줄
- 줄임표(특수 문자가 아닌 세 개의 마침표)
- MATLAB: 줄임표 토큰이 줄의 마지막 문자가 될 필요는 없지만, 다음 문자는 무시될 것이다.[7] (본질적으로, 최초의 후속 뉴라인 캐릭터를 포함하는) 코멘트를 시작한다. 이 점을 첫 번째 후속 뉴라인까지 확장되는 인라인 코멘트와 대조하십시오.)
- 줄의 마지막 문자로 쉼표 구분 기호
- 루비(코멘트가 구분 기호를 따를 수 있음)
- 라인의 마지막 문자로 왼쪽 괄호 구분 기호
- 배치 파일: 괄호 블록을 시작하면 선이 계속[8] 이어질 수 있음
- 루비: 왼쪽 괄호, 왼쪽 대괄호 또는 왼쪽 대괄호
- 마지막 선 객체로서의 연산자
- 루비(작업자가 코멘트를 할 수 있음)
- 연속 선의 첫 번째 문자로 연산자
- AutoHotkey: ++ 및 -와 쉼표 또는 마침표를[9] 제외한 모든 식 연산자
- 연속 선의 첫 번째 문자로 백슬래시
- 어떤 형태의 인라인 코멘트가 회선 연속의 역할을 한다.
- 캐릭터 포지션
- 포트란 77: 비코멘트 라인은 6열에 공백이 아닌 문자가 나타나는 경우 이전 비코멘트 라인의 연속이다. 주석줄을 계속 진행할 수 없다.
- COBOL: 문자열 상수는 PICTION 절의 원래 문자열을 다음 항목과 함께 종료하지 않음으로써 계속 유지될 수 있음
'
, 그런 다음 a를 삽입하십시오.-
7열(직접 위치:*
코멘트가 사용됨) - 튜터: 탭으로 시작하는 행(텍스트에 필요한 들여쓰기 후)은 이전 명령을 계속하십시오.
- [종료 및 시작] 정규 따옴표를 사용하여
도서관
![]() |
라이브러리를 가져오는 것은 외부, 가능한 컴파일된 루틴, 프로그램 또는 패키지를 읽는 방법이다. 가져오기는 수준(모듈, 패키지, 클래스, 프로시저...) 및 구문(디렉티브 이름, 속성,...)별로 분류할 수 있다.
- 파일 가져오기
addpath(directory)
매트랩[10]COPY filename.
코볼:-include("filename").
서언, 머리말#include file="filename"
ASP#include "filename"
, AutoHotkey, AutoIt, C, C++#include <filename>
AutoHotkey, AutoIt, C, C++#import "filename"
, 목표-C#import <filename>
목표-CImport["filename"]
매스매티카어와 울프람어include 'filename'
포트란include "filename";
PHPinclude [filename] program
, 기본 선택#include [filename] program
기본 선택include!( "filename");
녹load "filename"
루비load %filename
빨간색require("filename")
루아require "filename";
펄, PHPrequire "filename"
루비source(""filename"")
R
- 패키지 가져오기
#include filename
C, C++#[path = "filename"] mod altname;
, 루스티@import module;
목표-C<<name
매스매티카어와 울프람어:-use_module(module).
프롤로그:from module import *
파이톤extern crate libname;
, 녹extern crate libname as altname;
녹mod modname;
, 녹library("package")
R:IMPORT module
오베론import altname "package/name"
이동:import package.module;
, Dimport altname = package.module;
Dimport Module
, 하스켈import qualified Module as M
하스켈import package.*
자바, MATLAB, 코틀린import "modname";
JavaScript:import altname from "modname";
, JavaScript:import package
스칼라import package._
, 스칼라import module
스위프트import module
, 파이톤require("modname")
루아:require "gem"
, 루비use module
, Fortran 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;
, PHPuse Namespace\ClassName as AliasName;
PHP
- 절차/기능 가져오기
from module import function
Python:import package.module : symbol;
, D:import package.module : altsymbolname = symbol;
D:import Module (function)
하스켈:import function from "modname";
, JavaScript:import {function} from "modname";
, JavaScript:import {function as altname} from "modname";
JavaScript:import package.function
매트랩:import package.class.function
, 스칼라:import package.class.{ function => alternativeName, otherFunction }
스칼라:use Module ('symbol');
펄:use function Namespace\function_name;
, PHP:use Namespace\function_name as function_alias_name;
PHP:use module::submodule::symbol;
, 녹:use module::submodule::{symbol1, symbol2};
, 녹:use module::submodule::symbol as altname;
녹:
- 상시수입
use const Namespace\CONST_NAME;
PHP
또한 위의 문장은 통사적 편의성(더 짧은 이름으로 물건을 참조할 수 있도록 허용하지만, 여전히 수입하지 않고 완전한 자격을 갖춘 어떤 이름으로 참조할 수 있음)인지 또는 실제로 코드에 접근해야 하는 것인지(이 없이는 완전한 qua로도 코드에 접근할 수 없는 것인지)에 따라 분류할 수 있다.리사이즈된 이름).
- 통사적 편의성
- 코드에 액세스하려면 필요함
블록
블록은 전체를 구성하는 방식으로 관련된 두 개 이상의 문, 표현식 또는 다른 코드 단위의 그룹을 위한 표기법이다.
- 교정기(예: 곱슬 브래킷)
{
...}
- C, C++, Object-C, Go, Java, JavaScript/ECMAScript, C#, D, Perl, PHP(
for
&loop
루프 또는 인수로 블록 통과), R, 러스트, 스칼라, S-Lang, Swift, Windows PowerShell, Haskell(수신 중), AutoHotkey
- 괄호
(
...)
- 꺾쇠묶음, 각 괄호
[
...]
- 스몰토크(블록은 일등품, a.k.a.closure)
begin
...end
do
...end
do
...done
- 바시(Bash)
for
&while
루프, Visual Basic, Fortran, TATH(블록 본체의 필수 들여쓰기 포함), Visual Prolog
do
...end
- X...
end
(예:if
...end
):
- 루비(Ruby)
if
,while
,until
,def
,class
,module
문), OCaml (for
&while
루프, MATLAB (if
&switch
조건,for
&while
루프,try
조항의package
,classdef
,properties
,methods
,events
&function
블록, Lua(블록),then
/else
&function
)
- (
begin
...)
- (progn...)
- (
do
...)
- 들여쓰기
- 오프사이드 규칙 언어: 코브라, CoffeeScript, F#, Haskell(가시가 생략된 경우 알림), 오캄, 파이톤, 님
- 자유형 언어: ALGOL(C, Pascal, Perl 포함)의 대부분의 후손, Lisp 언어
- 다른이들
- Ada, Visual Basic, Seed7:
if
...end if
- APL:
:If
...:EndIf
또는:If
...:End
- Bash, sh 및 ksh:
if
...fi
,do
...done
,case
...esac
; - ALGOL 68:
begin
...end
,(
...)
,if
...fi
,do
...od
- 루아, 파스칼, 모둘라-2, 시드7:
repeat
...until
- COBOL:
IF
...END-IF
,PERFORM
...END-PERFORM
, 진술에 대한 등..
문장의 경우 - Visual Basic 입니다.네트:
If
...End If
,For
...Next
,Do
...Loop
- 작은 기본:
If
...EndIf
,For
...EndFor
,While
...EndWhile
평.
코멘트는 다음과 같이 분류할 수 있다.
- 스타일(대형/블록)
- 구문 분석 규칙(메모리에 저장되어 있거나 저장되어 있음)
- 재귀성(둥지/비둥지)
- 사용(문서 작성/제기 의견/기타)
인라인 코멘트
인라인 코멘트는 일반적으로 코멘트의 끝을 나타내기 위해 뉴라인 문자를 사용하는 것과 코멘트의 시작을 나타내기 위해 임의의 구분 기호나 토큰 시퀀스를 사용하는 것을 말한다.
예:
기호 | 언어들 |
---|---|
C | 포트란 1번에서 포트란 77번(1열의 C) |
REM | BASIC, 배치 파일 |
:: | 배치 파일, 명령.COM, cmd.exe |
NB. | J; (역사적으로) 공통 약어 Nota bene에서 라틴어로 "note well"을 의미한다. |
⍝ | APL; 니모닉은 글리프(구두를 아래로 내려뜨린 채 심하게 부딪힌)가 책상 램프를 닮았고, 따라서 앞의 것을 "증유"한다. |
# | 본 셸 및 기타 UNIX 셸, 코브라, 펄, 파이톤, 루비, 시드7, 윈도 파워쉘, PHP, R, 메이플, 엘리시르, 줄리아[11], 님 |
% | TeX, Prolog, MATLAB,[12] Erlang, S-Lang, Visual Prolog |
// | ActionScript, C(99) C++, C#, D, F#, Go, Java, Java, JavaScript, Kotlin, Object Pascal(델피), 목표-C, PHP, 러스트, 스칼라, SASSwift, Xojo |
' | 몽키, 비주얼 베이직, VBScript, Small Basic, 감바스, Xojo |
! | Fortran, Basic Plus, Information, Pick Basic |
; | 어셈블리 x86, AutoHotkey, AutoIt, Lisp, Common Lisp, Clojure, Revol, Red, Scheme |
-- | Euphoria, Haskell, SQL, Ada, AppleScript, 에펠, 루아, VHDL, SGML, PureScript, Elm |
* | 조립체 S/360(* 1열의 경우), COBOL I to COBOL 85, PAW, Fortran IV to Fortran 77((1열의 경우)), Pick Basic, GAMS(* 1열의 경우) |
| 컬 |
" | 바이스크립트, ABAP |
\ | 포스 |
*> | 코볼 90 |
주석 차단
블록 코멘트는 일반적으로 코멘트의 시작을 나타내는 구분 기호를 사용하고 코멘트의 끝을 나타내는 다른 구분 기호를 사용하는 것이다. 이 맥락에서 공백과 줄 바꿈 문자는 구분자로 계산되지 않는다.
예:
기호 | 언어들 |
---|---|
comment ~ ; | 알골 60, 시물라 |
¢ ~ ¢ ,# ~ # , co ~ co ,comment ~ comment | 알골 68[13][14] |
/* ~ */ | ActionScript, AutoHotkey, C, C++, C#, D,[15] 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 | 오토잇[16] |
/+ ~ +/ | D(내포될 수 있음)[15] |
/# ~ #/ | 코브라(내포될 수 있음) |
<# ~ #> | 파워셀 |
<!-- ~ --> | HTML, XML |
=begin ~ =cut | 펄 |
#`( ~ ) | Raku(브래킹 문자는 () ) > {}, [], BiDi 미러링이 있는 유니코드 문자 또는 Ps/Pi/Pf 속성이 있는 유니코드 문자) |
=begin ~ =end | 루비 |
#<TAG> ~ #</TAG> , #stop ~ EOF ,#iffalse ~ #endif , #ifntrue ~ #endif ,#if false ~ #endif , #if !true ~ #endif | 에스랑[17] |
{- ~ -} | Haskell(내포될 수 있음) |
(* ~ *) | 델파이, ML, 매스매티카, 오브젝트 파스칼, 파스칼, 씨드7, 애플스크립트, OCaml(내포될 수 있음), 표준 ML(내포될 수 있음), 메이플, 뉴스피크, F# |
{ ~ } | 델파이, 오브젝트 파스칼, 파스칼, 레드 |
{# ~ #} | 넌주크, 트위그 |
{{! ~ }} | 콧수염, 핸들 바 |
{{!-- ~ --}} | 핸들 바(내포될 수 없지만 포함할 수 있음) {{ 그리고 }} ) |
# ~ # | 컬 |
%{ ~ %} | MATLAB[12](기호는 별도의 줄에 있어야 함) |
# ~ # | Lisp, Scheme, Rocket (3개 모두에 중첩될 수 있음) |
#= ~ =# | 줄리아.[18] |
#[ ~ ]# | 님[19] |
--[[ ~ ]] ,--[=[ ~ ]=] ,--[= ...=[ ~ ]= ...=] | Lua(브래킷은 원하는 수의 일치 = 문자를 가질 수 있으며, 비매칭 구분자 내에 중첩될 수 있음) |
" ~ " | 스몰토크 |
(comment ~ ) | 클로저 |
고유 변형
- 포트란
- Fortran 66/77에서 인덴싱 라인은 중요하다. 실제 문장은 한 줄의 7~72열에 있다. 6열의 공백이 아닌 문자는 이 선이 이전 행의 연속임을 나타낸다. A.'
C
1열의 '는 이 전체 행이 주석임을 나타낸다. 1열부터 5열까지 라벨 역할을 하는 숫자를 포함할 수 있다. 73열에서 80열은 무시되고 코멘트에 사용될 수 있다; 이러한 열들은 종종 카드를 펀칭한 날, 누군가 실수로 카드를 떨어뜨렸을 때 카드 데크를 올바른 순서로 정렬할 수 있도록 순서 번호를 포함했다. Fortran 90은 다음을 사용하여 들여쓰기 규칙의 필요성을 없애고 인라인 코멘트를 추가했다.!
주석 구분 기호로서의 문자
- 코볼
- 고정 형식 코드에서는 행 들여쓰기가 중요하다. 1-6열과 73 이상의 열은 무시된다. 만약
*
또는/
7열에 있고, 그러면 그 줄은 논평이다. 2002년 COBOL까지, 만약:D
또는d
7열에 있는 경우, 컴파일러가 컴파일러를 컴파일러로 컴파일하도록 지시하지 않는 한 무시될 "직선"을 정의하게 된다.
- 코브라
- 코브라는 "로 블록 코멘트를 지원한다.
/#
...#/
"는 "과 같은 것이다./*
...*/
"는 종종 C 기반 언어에서 발견되지만, 두 가지 차이점이 있다. 그#
문자는 단일 줄 설명 양식 "에서 재사용된다.#
"...", 그리고 블록 코멘트는 코드의 큰 블록을 코멘트하는 데 편리한 중첩될 수 있다.
- 컬
- 다음과 같이 사용자 정의 태그가 있는 블록 주석을 지원하는 컬링
foo# ... #foo
.
- 루아
- 원시 문자열과 마찬가지로, 시작 태그와 닫힘 태그 모두에 동일한 수의 등호 부호가 있으면 대괄호 사이에 등호 부호가 얼마든지 있을 수 있다. 이렇게 하면 중첩된 블록 주석/원시 문자열이 등호 부호와 다른 개수의 등호 부호를 사용하는 한 중첩될 수 있다.
--[[comment --[=[ nested comment ]=] ]]
. 루아는 첫 번째 뉴라인(있는 경우)을 오프닝 태그에 직접 따르는 것을 무시한다.
- 펄
- Perl의 블록 코멘트는 문서의 일부로 간주되며, 이름이 "보통 이전 문서"(POD)로 지정된다. 기술적으로 Perl은 소스 코드에 블록 코멘트를 포함시키는 규약이 없지만 POD는 일상적으로 해결책으로 사용된다.
- PHP
- PHP는 표준 C/C++ 스타일 코멘트를 지원하지만 Perl 스타일도 지원한다.
- 파이톤
- 출처의 주석 줄에 세 개의 호를 사용하는 것은 실제로 코멘트를 형성하지 않는다.[20] 동봉된 텍스트는 문자열 리터럴이 되며, Python은 일반적으로 무시한다(모듈, 클래스 또는 함수의 본문에 있는 첫 번째 문인 경우는 제외한다. 문서 문자열 참조).
- 라쿠
- 라쿠는 사용한다.
#`(...)
블록 코멘트를 나타내기 위해서.[21] 라쿠는 실제로 다음의 "우측"과 "좌측" 쌍으로 된 괄호 사용을 허용한다.#`
(즉,#`(...)
,#`[...]
,#`{...}
,#`<...>
그리고 더욱 복잡하다.#`{{...}}
모두 유효한 블록 코멘트임). 괄호는 또한 주석 내부에 중첩될 수 있다(즉, 설명).#`{ a { b } c }
마지막 닫기 버팀대로 이동).
- 루비
- Ruby의 블록 코멘트가 다음
=begin
에서 줄을 서서 닫다.=end
선을 긋다
- 에스랑
- 로 둘러싸인 선의 영역
#<tag>
그리고#</tag>
구분 기호는 통역사가 무시한다. 태그 이름은 폐쇄된 블록을 해독하는 방법을 나타내는 데 사용할 수 있는 영숫자 시퀀스가 될 수 있다. 예를 들어,#<latex>
LaTeX 형식 문서 블록의 시작을 나타낼 수 있다.
- 계략과 라켓
- 다음 전체 구문 구성 요소(s-표현)는 다음과 같이 코멘트할 수 있다.
#;
.
- ABAP
ABAP는 두 가지 다른 종류의 코멘트를 지원한다. 들여쓰기를 포함한 선의 첫 번째 문자가 별표인 경우(*
) 하나의 이중 인용(double arget)을 코멘트(comment)로 간주한다."
)는 인라인 코멘트를 시작하며, 인라인 코멘트는 라인의 끝까지 작용한다. ABAP 코멘트는 진술서들 사이에 가능하지 않다. EXEC SQL
그리고 ENDEXEC
Native SQL에는 이러한 문자에 대한 다른 사용법이 있기 때문이다. 대부분의 SQL 방언에서 이중 대시(--
대신 )를 사용할 수 있다.
- 난해한 언어
- 많은 난해한 프로그래밍 언어는 명령 포인터(예: Befunge)에 의해 실행되지 않거나 다른 의미로 할당되지 않은 텍스트(예: Brainfuck)는 "코멘트"로 간주되는 관습에 따른다.
코멘트비교
소스 코드의 코멘트를 선언하는 구문 스타일은 매우 다양하다. BlockComment
이탤릭체는 블록 코멘트 스타일을 나타내기 위해 사용된다. InlineComment
이탤릭체는 인라인 코멘트 스타일을 나타내기 위해 사용된다.
언어 | 인라인 코멘트 | 설명 차단 |
---|---|---|
아다, 에펠, 유포리아, 오캄, 스파크, ANSI SQL, VHDL | -- InlineComment | |
알골 60 | comment BlockComment; | |
알골 68 | ¢ BlockComment ¢
| |
APL | ⍝ InlineComment | |
애플스크립트 | -- InlineComment | (* BlockComment *) |
어셈블리 언어(병렬) | ; InlineComment 하나의 예(대부분의 어셈블리 언어는 줄 설명만 사용) | |
오토핫키 | ; InlineComment | /* BlockComment */ |
AWK, Bash, Bourne shell, C shell, Maple, R, Tcl 및 Windows PowerShell | # InlineComment | <# BlockComment #> |
기본(다양한 방언): | 'InlineComment (모든 방언이 아님)
| |
C(K&R, ANSI/C89/C90), CHIL, PL/I, REXX | /* BlockComment */ | |
C(C99), C+++, Go, Swift 및 JavaScript | // InlineComment | /* BlockComment */ |
C# | // InlineComment /// InlineComment (XML 문서 설명) | /* BlockComment */ /** BlockComment */ (XML 문서 설명) |
COBOL I to COBOL 85 | * InlineComment (* 7열) | |
COBOL 2002 | *> InlineComment | |
컬 | InlineComment | # BlockComment #
|
코브라 | # InlineComment | /# BlockComment #/ (동시 가능) |
D | // InlineComment /// Documentation InlineComment (ddoc 주석) | /* BlockComment */ /** Documentation BlockComment */ (ddoc 주석)
|
DCL | $! InlineComment | |
ECMAScript(JavaScript, ActionScript 등) | // InlineComment | /* BlockComment */ |
포스 | \ InlineComment | ( BlockComment ) (단일 선과 다중 선)
|
FORTRAN I to FORTRAN 77 | C InlineComment (1열의 C) | |
포트란90번길 | ! InlineComment | |
하스켈 | -- InlineComment | {- BlockComment -} |
자바 | // InlineComment | /* BlockComment */
|
줄리아. | # InlineComment | #= BlockComment =# |
리스프 앤 스킴 | ; InlineComment | # BlockComment # |
루아 | -- InlineComment | --[==[ BlockComment]==] (수 = 부호 개수 포함) |
단풍나무 | # InlineComment | (* BlockComment *) |
매스매티카 | (* BlockComment *) | |
매트랩 | % InlineComment | %{ 참고: 두 백분율-브래킷 기호는 각 줄에 공백이 아닌 유일한 문자여야 한다. |
님 | # InlineComment | #[ BlockComment ]# |
객체 파스칼 | // InlineComment | (* BlockComment *) { BlockComment } |
OCAML | (* BlockComment (* nestable *) *) | |
Pascal, Modula-2, Modula-3, Oberon 및 ML: | (* BlockComment *) | |
펄과 루비 | # InlineComment | =begin (=end Ruby)(POD 문서 설명)
|
PHP | # InlineComment // InlineComment | /* BlockComment */ /** Documentation BlockComment */ (PHP 문서 설명) |
파일럿 | R:InlineComment | |
PLZ/SYS | ! BlockComment ! | |
PL/SQL 및 TSQL | -- InlineComment | /* BlockComment */ |
서언, 머리말 | % InlineComment | /* BlockComment */ |
파이톤 | # InlineComment | ''' BlockComment ''' (모듈, 클래스, 메서드 또는 기능의 첫 번째 줄에 있는 문서 문자열) |
R | # InlineComment | |
라쿠 | # InlineComment | #`{
|
빨간색 | ; InlineComment | { BlockComment } |
녹 | // InlineComment
| /* BlockComment */ (동시 가능)
|
SAS | * BlockComment; /* BlockComment */ | |
씨드7 | # InlineComment | (* BlockComment *) |
시물라 | comment BlockComment; ! BlockComment; | |
스몰토크 | "BlockComment" | |
스마티 | {* BlockComment *} | |
표준 ML | (* BlockComment *) | |
TeX, LaTeX, PostScript, Erlang, Elixir 및 S-Lang | % InlineComment | |
텍신포 | @c InlineComment
| |
과외 | * InlineComment command $ InlineComment | |
Visual Basic 입니다. | ' InlineComment Rem InlineComment | |
Visual Basic 입니다.네트 | ' InlineComment
| |
비주얼 프롤로그 | % InlineComment | /* BlockComment */ |
울프람어 | (* BlockComment *) | |
소조 | ' InlineComment // InlineComment rem InlineComment |
참고 항목
- C 구문
- C++ 구문
- 프로그래밍 언어 구문의 광범위한 제품군인 곱슬 브래킷 프로그래밍 언어
- 자바 구문
- 자바스크립트 구문
- PHP 구문 및 의미론
- Python 구문 및 의미론
참조
- ^ a b 한 줄에 여러 개의 문이 있는 경우
- ^ 세 가지 다른 종류의 절이 각각 문구와 단위를 다르게 구분한다.
- 시작 a; b; c end – 유닛은 순서대로 실행된다.
- a, b, c end를 사용하여 beltary-secretation (viz. ")": 시작 a, b, c end – 실행 순서는 컴파일러에 의해 최적화된다.
- 또한 ""를 사용하여 병렬 처리: par b 시작 a, b, c end – 유닛은 병렬 스레드로 실행되어야 한다.
- ^ 세미콜론 – 문 숨김으로 인한 결과, 쉼표 – 결과가 표시됨
- ^ a b R 언어 정의에서 섹션 3.2 제어 구조: " 세미콜론은 항상 문장의 끝을 나타내는 반면 새로운 줄은 문장의 끝을 나타낼 수 있다. 현재 문장이 구문론적으로 완전하지 않으면 새 행은 평가자에 의해 무시된다."
- ^ Bash 참조 설명서, 3.1.2.1 이스케이프 문자
- ^ Python 설명서, 2. 어휘 분석: 2.1.5. 명시적 라인 결합
- ^ Mathworks.com Wayback Machine에서 2010년 2월
- ^ https://ss64.com/nt/syntax-brackets.html
- ^ "Scripts - Definition & Usage AutoHotkey".
- ^ M-파일(MATLAB 원본)이 이름으로 접근하려면 상위 디렉토리가 검색 경로(또는 현재 디렉토리)에 있어야 한다.
- ^ "Nim Manual".
- ^ a b "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.
- ^ a b "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".
- ^ "피톤 팁: 멀티 라인 문자열을 멀티 라인 코멘트로 사용할 수 있다.", 2011년 9월 11일, Guido van Rossum
- ^ "Perl 6 Documentation (Syntax)". docs.perl6.org. Comments. Retrieved 5 April 2017.
- ^ "Perl 6 POD Comments".
- ^ "Perl 6 POD (Abbreviated Blocks)".