مقایسه زبان‌های برنامه‌نویسی (نحو)

این مقایسه زبان‌های برنامه‌نویسی، ویژگی‌های نحو زبان را برای بیش از ۵۰ زبان برنامه‌نویسی رایانه مقایسه می‌کند.

عبارات 
هنگامی که زبان برنامه‌نویسی‌ای دارای عبارت است، معمولاً قراردادهایی برای موارد زیر دارد:
 جداکننده عبارات
 پایان دهنده‌های عبارات
 ادامه خط

یک جداکننده عبارت، مرز بین دو عبارت دیگر را مشخص می‌کند. پایان دهنده عبارت، پایان یک عبارت را تعریف می‌کند. زبان‌هایی که انتهای خط را به عنوان پایان یک عبارت در نظر می‌گیرند، زبان‌های «خط گرا» نامیده می‌شوند.

«ادامه خط» قراردادی در زبان‌های خط گرا است که در آن کاراکتر خط جدید می‌تواند به اشتباه به عنوان یک پایان دهنده عبارت تفسیر شود. در چنین زبان‌هایی با یک دستور اجازه می‌دهند که یک عبارت در چندین خط نوشته شوند.

ادامه خط 
ادامه خط به‌طور کلی به عنوان بخشی از تحلیل واژگانی انجام می‌شود. یک خط جدید معمولاً منجر به اضافه شدن یک نشانه به جریان نشانه می‌شود، مگر اینکه ادامه خط تشخیص داده شود.

فضای خالی – زبان‌هایی که نیازی به ادامه ندارند
 ایدا - خطوط با نقطه ویرگول خاتمه می‌یابند
 سی شارپ - خطوط با نقطه ویرگول خاتمه می‌یابند
 جاوا اسکریپت - خطوط با نقطه ویرگول خاتمه می‌یابند (که ممکن است استنباط شود)
 لوآ
 اکمل

امپرسند به عنوان آخرین کاراکتر خط
 فرترن ۹۰, فرترن ۹۵, فرترن ۲۰۰۳, فرترن ۲۰۰۸

بک اسلش به عنوان آخرین کاراکتر خط
 bash و سایر پوسته‌های یونیکس
 پیش پردازنده C و C++
 مثمتیکا و ولفرم
 پایتون
 روبی
 جاوا اسکریپت - فقط در رشته‌های تک یا دو نقل قول

بکتیک به عنوان آخرین کاراکتر خط
 پاورشل

خط فاصله به عنوان آخرین کاراکتر خط
 اس‌کیوال*پلاس

زیرخط به عنوان آخرین کاراکتر خط
 اوتوات
 کبرا
 ویژوال بیسیک
 Xojo

جداکننده کاما به عنوان آخرین کاراکتر خط
 روبی (نظر ممکن است به دنبال جداکننده باشد)

جداکننده براکت چپ به عنوان آخرین کاراکتر خط
 فایل بچ: شروع یک بلوک پرانتزی می‌تواند ادامه خط را مجاز کند
 روبی: پرانتز چپ، کروشه چپ، یا آکولاد چپ

اپراتور به عنوان آخرین شیء خط
 روبی (نظر ممکن است به دنبال اپراتور باشد)

اپراتور به عنوان اولین کاراکتر خط ادامه‌دار
 اوتوهات‌کی: هر عملگر عبارتی به جز ++ و -- و همچنین کاما یا نقطه

بک اسلش به عنوان کاراکتر اول خط ادامه‌دار
 ویم

برخی از شکل‌های نظر درون خطی به عنوان ادامه خط عمل می‌کند
 توربو اسمبلر: \
 ام‌۴: dnl
 تک: %

[پایان و شروع] با استفاده از نقل قول‌های معمولی
 پیش پردازنده C و C++: رشته به‌طور معمول به پایان می‌رسد و با شروع با یک نقل قول در خط بعدی ادامه می‌یابد.

کتابخانه‌ها 
وارد کردن کتابخانه راهی برای خواندن عبارات، برنامه‌ها یا بسته‌های خارجی، احتمالاً کامپایل شده‌است. وارد کردن یک کتابخانه را می‌توان بر اساس سطح (ماژول، بسته، کلاس، عبارات،...) و بر اساس نحو (نام دستورالعمل، ویژگی‌ها) طبقه‌بندی کرد.

وارد کردن فایل
 addpath( directory ) متلب
 COPY filename. کوبول
 :-include(" filename "). پرولوگ
 #include file=" filename " ای‌اس‌پی
 #include " filename "  اوتوهات‌کی، اوتوات، سی، سی پلاس پلاس
 #include < filename > اوتوهات‌کی، اوتوات، سی، سی پلاس پلاس
 #import " filename " آبجکتیو-سی
 #import < filename > آبجکتیو-سی
 Import["filename"] زبان Mathematica و Wolfram
 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 . * جاوا، متلب، کاتلین
 import " modname "; جاوا اسکریپت
 import altname from " modname ";  جاوا اسکریپت
 import package اسکالا
 import package. _  اسکالا
 import module سوئیفت
 import module  پایتون
 require(" modname ") لوآ
 require "gem"  روبی
 use module  فرترن ۹۰+
 use module, only: identifier فرترن ۹۰ +
 use Module;  پرل
 use Module qw( import options ); پرل
 use Package . Name کبرا
 uses unit پاسکال
 with package ایدا

وارد کردن کلاس
 from module import class پایتون
 import package . class جاوا، متلب، کاتلین
 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; راست

راحتی نحوی
 import package . * جاوا
 import package . class جاوا
 open module اکمل

برای دسترسی به کد مورد نیاز است
 import altname " package/name " گو
 import altname from " modname "; جاوا اسکریپت
 import module پایتون

بلوک‌ها 
بلوک نمادی برای گروهی از دو یا چند عبارت یا دیگر واحدهای کد است که به گونه‌ای مرتبط هستند که یک کل را تشکیل می‌دهند.

آکولاد { . . . }
 سی، سی پلاس پلاس، آبجکتیو-سی، گو، جاوا، جاوا اسکریپت / اکما اسکریپت، سی شارپ، دی، پرل، پی اچ پی (حلقه‌های for & loop ، یا ارسال یک بلوک به عنوان آرگومان)، R، Rust، اسکالا، S- Lang، سوئیفت، پاورشل، هسکل، اوتوهات‌کی

پرانتز ( . . . )
 اکمل، پرولوگ، استاندارد ML

کروشه [ . . . ]
 اسمال‌تاک

‍‍‍‍‍‍‍‍‍begin … end
 ایدا، الگول، پاسکال، روبی، اکمل، اس‌سی‌ال، سیمولا، ارلنگ.

do … end
 پی‌ال/۱، آرای‌ایکس‌ایکس

do … done
 Bash، ویژوال بیسیک، فرترن، ویژوال پرولوگ، TUTOR

do … end
 لوآ، روبی، سید۷

X … end (مثلاً if … end):
 روبی (if ، while ، until ، def ، class ، دستورات module)، اکمل (حلقه‌های for & while)، متلب (شرط‌های if & switch ، حلقه‌های for & while ، عبارت try ، package ، classdef ، properties ، methods ، events ، و بلوک‌های function)، لوآ (then / else و function)

(begin . . .)
 اسکیم

(progn ...)
 لیسپ

(do . . .)
 کلوژور

تو رفتگی
 زبان‌های قوانین آف‌ساید: بو، کبرا، کافه اسکریپت، اف شارپ، هسکل (در صورت حذف پرانتزها)، لایو اسکریپت، اوکام، پایتون، Nemerle، نیم، اسکالا (اختیاری، مانند Nemerle)
 زبان‌های نوشتار آزاد: اکثر نوادگان الگول (از جمله سی، پاسکال و پرل). زبان‌های لیسپ

سایر
 ایدا، ویژوال بیسک، سید۷: if … end if
 ای‌پی‌ال :If . . . :EndIf یا :If . . . :End
 بش و پوسته بورن و پوسته کرن: if … fi, do … done, case … esac;
 الگول۶۸: begin … end, ( … ), if … fi, do … od
 لوآ، پاسکال، Modula-2, سید۷: repeat … until
 کوبول: IF . . . END-IF ، PERFORM . . . END-PERFORM ، و غیره برای عبارات. . برای جملات.
 ویژوال بیسیک دات نت: If . . . End If ، For . . . Next ، Do . . . Loop
 اسمال بیسیک: If . . . EndIf ، For . . . EndFor, While . . . EndWhile

نظرات 
نظرات را می‌توان بر اساس موارد زیر طبقه‌بندی کرد:
 سبک (داخلی/بلاک)
 قوانین تجزیه (نادیده گرفته شده / درون یابی / ذخیره شده در حافظه)
 بازگشتی (تودرتو/غیر تودرتو)
 موارد استفاده (رشته‌های اسنادی / نظرات پرتاب کننده / سایر موارد)

نظرات درون خطی 
نظرات درون خطی معمولاً آنهایی هستند که از یک کاراکتر دلخواه یا دنباله ای از نشانه‌ها برای نشان دادن شروع یک نظر و از خط جدید (یا پایان حط) برای نشان دادن پایان یک نظر استفاده می‌کنند.

مثال‌ها:

بلوک نظرات 
کامنت‌های بلوک معمولاً آنهایی هستند که از یک جداکننده برای نشان دادن ابتدای یک نظر و از یک جداکننده دیگر برای نشان دادن پایان یک نظر استفاده می‌کنند. در این زمینه، کاراکترهای فضای خالی و خط جدید به عنوان جداکننده محسوب نمی‌شوند.

مثال‌ها:

جستارهای وابسته 
 نحو سی
 نحو سی پلاس پلاس
 زبان‌های برنامه نویسی براکت، خانواده وسیعی از نحو زبان‌های برنامه نویسی
 نحو جاوا
 نحو جاوا اسکریپت
 نحو و معنای پی‌اچ‌پی
 نحو و معناشناسی پایتون
مقایسه‌های زبان‌های برنامه‌نویسی