С-д суурилсан програмчлалын хэлнүүд

Си хэл нь 1969-өөс 1973 оны хооронд AT&T-ийн Беллийн Лабораторид Деннис Ритчи зохиосон юм. Си хэл нь бүх цаг үеийн хамгын өргөн ашиглагддаг програмчлалын хэлнүүдийн нэр бөгөөд Си хэлний хөрвүүлэгч нь ихэнх компьютерын архитектур, үйлдлийн системд бий. Си хэлнээс хойш гарч буй олон хэлнүүд Си хэл дээр суурилан бүтээгдсэн байдаг. Тэд шууд болон шууд бусаар зээлж авсан байдаг.

C хэл
Програмын хэлнүүд Бүтээгдсэн он Зохиогч (хаана) Тйлбар
Ratfor 1974 Brain Kernighan (Bell лаборотори) C болон Fortran хоёрийг хослуулсан хэл. Машин код С-ийн хөрвүүлэгч рүү хялбар хандах боломжгүй үед хэрэгжүүлнэ. ]].
C shell/tcsh 1970 оны сүүлээр Bill Joy(Berkeley Калифорниагын их сургууль) Скрипт програмчлалын хэл Юникс шеллийн стандарттай.
C++ 1979 Bjarne Stroustrup (Bell лаборотори ) Анх C with Classes гэх нэртэй байсанч 1983 онд C+++ гэж дахин нэрлэсэн. Ерөнхий програмчлалын хэл бөгөөд обьект хандалт дээр үндэслэсэн учир өргөн ашиглаж маш өсөлттэй байгаа.
Objective-C 1985 Robert Fourer, David Gay and Brian Kernighan (Bell лаборотори ) Энэ нь Smalltalk дээр суурьласан обьект хандалагат динамик програмчлалын хэл юм.
Perl 1987 Larry Wall Скрипт програмчлалын хэл бөгөөд системийн админууд, текст боловсруулахад, веб серверийн харилцаа холбоонд ашигладаг.
Java 1991 James Cosling Oak-д үйлдвэрлэгдэж 1995 онд шинэчлэгдсэн. Энэ хэл нь Objective C болон С++ хэлнүүдийн синтакс дээр суурьлан бүтээгдсэн. Хамгын өргөн ашиглагдаж байгаа програмчлалын хэл юм.
Limbo 1995 Limbo нь С хэл дээр суурьласан Alef хэл дээр суурьлан бүтээгдсэн.
PHP 1995 Rasmus Lerdorf HTML тэй скриптийн хувьд адилханч синтаксийн хувьд С дээр суурьласан.
С# 1999 Anders Hejlsberg (Microsoft) Simple Managed C хөрвүүлэгч дээр үндэслэн бүтээгдсэн. Анх Cool гэж нэрлэсэн.
JavaScript C хэлний синтаксын нөлөөгөөр бүтээгдсэн.
Python 1980 Guido van Rossum Сүүлийн үед хамгын эрэлттэй байгаа ирээдүйн хэл гэж нэрлэгдэж буй хэл бөгөөд мөн С-ийн синтакс дээр суурьласан.
С хэл дээр суурьласан бусад хэлнүүд:
засварлах

AMPL, C*, S-Lang, SAC, Alef, ECMAscrip, C—, Ch, D Cyclone, LSL, Squirrel, Go, OpenCL, Swift(програмчлалын хэл), AWK, BitC, LPC, Pike, Seed7, Processing, Split-C, Unified Parallel C, Ciik, Chapel, Fortress, Agora, Falcon, BCPL, B, Nim, Nemerle, ApeScript, Amiga E, Lite-C, Newsqueak, Not eXactly C (NXC), Not Quite C , Oak, PROMAL, Handel-C, Dart, CINT, Cg, nesC, R, Hack, Charm, X Sharp, Claire, Noop, Neko, Axum, Umple, TOM, Telescript, Fantom.

С болон бусад хэлнүүдийн синтаксын адил талууд:
засварлах


С++ бол С хэлэн дээр үндэслэсэн хэлний сонгодог жишээ бөгөөд барагл С хэлийн синтакстай бараг л адилхан юм. Доорх жишээгээр Pascal, Fortran, Scheme, С++ хэлнүүдийн арифметик фунц, оролт гаралт, функцууд параметрууд болон давталт түүний урсгалуудыг харьцуулж үзүүлнэ.


Aрифметик фунцууд

C++ Fortran Pascal Scheme
&& .AND. and and
! .NOT. not not
== .EQ. = =, equal?
>, >=, <, <= .GT., .GE., .LT., .LE. >, >=, <, <= >, >=, <, <=

Оролт гаралт

C++ Fortran Pascal Scheme
cout << "The value of k is "<< k << endl; writeln ("The value of k is ", k); PRINT *, "THE VALUE OF K IS ", K (display "The value of k is ")
(display k)
(newline)

Функцууд болон параметрууд

C++ Fortran Pascal Scheme
void PutAvg (int total, int n, float avg) {
cout << "average = " << avg << endl;
cout << "total = " << total << ", n = " << n << endl
}
SUBROUTINE
PUTAVG (TOTAL, N, AVG)
INTEGER TOTAL, N
REAL AVG
PRINT *, "AVERAGE = ", AVG
PRINT *, "TOTAL = ", TOTAL, ", N = ", N
RETURN
END
procedure PutAvg (total, n: integer; avg: real);
begin
writeln ("average = ", avg);
writeln ("total = ", total, ", n = ", n);
end;

(define (put-avg total n avg)
(display "average = ")
(display avg)
(newline)
(display "total = ")
(display total)
(display ", n = ")
(display n)
(newline) )||

float Average (int total, int n) {
return total/float(n);
}
REAL FUNCTION AVERAGE (TOTAL, N)
INTEGER TOTAL, N
AVERAGE = TOTAL/FLOAT(N)
RETURN
END
function Average (total, n: integer): real;
begin
Average := total/n;
end;
(define (average total n)
(/ total n) )

Давталт түүний урсгалууд

C++ Fortran
if (boolexpr) {
...
}
if boolexpr then begin
...
end;
if (boolexpr) {
...
} else {
...
}
if boolexpr then begin
...
end else begin
...
end;
if (boolexpr1) {
...
} else if (boolexpr2) {
...
}
if boolexpr1 then begin
...
end else if boolexpr2 then begin
...
end;
while (boolexpr) {
...
}
while boolexpr do begin
...
end;
do {
...
} while (boolexpr);
repeat
...
until boolexpr;
C++ Fortran Fortran
for (int k=1; k<=N; k=k+1) {
...
}
for k := 1 to N do begin
...
end;
DO 10 K = 1,N
...
10 CONTINUE