Menü Kapat

Proqramlaşdırma dilləri – proqram modullarından ibarət olub, məsələnin həll mərhələsinə hazırlığını təmin edir. Proqramlaşdırma dili kompyuterin alqoritmi qəbul etməsi üçün istifadə edilir. Proqramlaşdırma dilləri adi dillərdən “sözlərin” (ancaq translyatorun başa düşdüyü) sayına və əmrlərin ciddi yazılış qaydasına görə fərqlənir.  EHM-də proqram yazmaq üçün istifadə olunan formallaşmış dillərə proqramlaşdırma dilləri deyilir. Proqramlaşdırma dili süni dil olub, təbii dillərdən məhdud sayda sözlərin olması ilə fərqlənirlər. Bu dillərlə hazır proqramlar deyil, yalnız proqramın mətni yaradılır. Proqram dilini kompyuterin başa düşdüyü maşın dilinə çevirmək üçün translyatorlardan (translator – tərcüməçi) və kompilyatorlardan (compiler – tərtibatçı) istifadə edilir. Hər bir proqramlaşdırma dilinin öz translyatoru (kompilyatoru) olur. Məsələ həll edərkən əvvəlcə yerinə yetiriləcək əməliyyatların alqoritmi tərtib edilir, daha sonra bu əməliyyatlar hər-hansı alqoritm (proqramlaşdırma) dilində əmrlər şəklində yazılır. Tərtib olunmuş proqram xüsusi əlavələr (translyator proqramlar) vasitəsilə yerinə yetirilir və ya maşın koduna çevrilir.

İstənilən proqramlaşdırma dilinin əsas elementləri bunlardır: dilin əlifbası, sintaksisi və semantikası.

Dilin əlifbası dedikdə, həmin dildə işlənən bütün simvollar nəzərdə tutulur.
Sintaksis – əlifbada olan simvollardan dilin ayrı-ayrı konstruksiyalarının (komandaların, operatorların) düzəldilməsinin formal qaydalarıdır. Bu qaydalar müxtəlif həll alqoritmlərini proqramlaşdırmağa imkan verir.
Semantika – dilin bu və ya digər sintaksis konstruksiyalarının təsviridir. Məsələn, əgər proqramın bu yerində y =a*(b+c) ifadəsinin hesablanması yazılıbsa, onda semantika qaydaları maşına “göstərir” ki, əvvəlcə (b+c) cəmini tapsın, sonra həmin cəmi a-ya vursun.
Beləliklə, hər hansı verilənlərin emalı prosesini birbaşa həyata keçirməyə imkan verən proqramlar, dili təyin edən sintaksis qaydalara uyğun olaraq əlifbadakı simvolların birləşməsi nəticəsində və semantika qaydalarını nəzərə almaqla işlənib hazırlanır.

Proqramlaşdırma biliyini inkişaf etdirmək və ya oyun proqramı yazmaq istəyən dostlar üçün bir tərtibat hazırlamaq istədim. Hər bir dilin fərqli memarlıq, iş stili olduğundan hər bir layihəni istədiyiniz kimi yerinə yetirə bilməzsiniz. Siz də dilinizi inkişaf etdirməyə və bu sahədə ixtisaslaşmağa çalışmalısınız.

– Nə edəcəyinizə qərar verin.
Proqramlaşdırma dil deyil, alətdir. Əvvəl öyrənmək, sonra işləmək yanlış fikirdir. Proqramı yazarkən öyrənin. Hər dilin yaxşı, pis xüsusiyyətləri var. Hansı hansı dildə proqramlaşdırma dilləri mövcuddur? Bir neçə cari istifadə sahələri:

Mobil proqram hazırlayacağam deyirsinizsə:
iOS -> Objective-C, Swift
Android -> Java
Windows Mobile -> .NET ilə istifadə edilə bilən bir dil (Visual C ++, Visual C #, VB, F # …)

Bir PC proqramı inkişaf etdirmək istəyirsinizsə:
Proqramınız Windows-da işləyəcəksə
.NET dili (Visual C #, Visual F #, Visual C ++, Visual Basic) [C # təklif olunur]

Tətbiqinizin bütün mühitlərdə (Mac, Windows, Linux …) işləməsini istəyirsinizsə
Java (Tövsiyə olunur)
Python
C ++

Bir oyun inkişaf etdirəcəyəm deyə düşünürsünüzsə:
Lua (Tövsiyə olunur) [Bu, bir çox mühitlərdə, transcendental və mobil istifadə edilə bilər.] C # (yaxşı işlər Windows altında XNA Game Studio ilə edilə bilər)
C (OpenGL kimi əsas qrafik kitabxanalarla məşğul olmağınız tələb olunur)
Elektron qurğulara hakim olacağam deyirsinizsə:
C
Məclis (başlamağa ehtiyac yoxdur).
Süni intellekt ilə məşğul olacağam deyirsinizsə:
Haskell
Prolog
Scala
Mənim İşim veb və serverlər deyirsinizsə:
Front-end üçün: (İstifadəçi ilə qarşılıqlı olan hissəsi, həmçinin görmə hissəsi)
HTML (Absolutely!) (Proqramlaşdırma dil deyil, bir marka dili)
CSS (zəruri!)
JavaScript (müştəri proqramlaşdırmasının həlli nöqtəsi).
JS-də hərəkət etdikdən sonra da CoffeeScript-ə baxa bilərsiniz.
Back-end üçün: (Server tərəfi) (Breakpoint)
Bunu öyrənmək və mümkün qədər tez başlamaq istəyirsiniz?
PHP
ASP.NET + C #
Asanlığla inkişaf edilə bilən, asanlıqla paylanabilən tətbiqləri inkişaf etdirmək istəyirsiniz?
Ruby (Mən Ruby Rails adlı böyük bir çərçivə var)
Python (Django çərçivəsi ilə)
JavaScript (Bu günün məqamları: Node.js. adlı veb çərçivə var)
Scala (Play! Çərçivə və Lift)
İstəsəniz rok-bərk tətbiqlər:
Java (JavaEE bu konsepsiyaya belə sahibdir.)
ASP.NET (Burada mövcudluğu mübahisəli.)

Üstünlükləri və fərqləri.

Java
+ Bütün mühitlərdə işləyə bilər.
+ C ilə oxşar sözdiziminə malikdir.
+ Stabil işləyə bilər.
Çox geniş bir məlumat toplusu, çox geniş kitabxanası var.
– Bytecode’a kompilyasiya, maşın kodu şərh edilir. (JVM burada oynayır). Beləliklə, C-ə uyğun olaraq yavaş-yavaş işləyir.
– JRE işləyəcək kompüterdə quraşdırılmalıdır.

PHP
+ İndiki vaxtda ən çox istifadə olunan veb proqramlaşdırma dillərindən biridir. e.g. (wordpress)
+ Digər dillər üçün öyrənmə çox asandır
Türk dilində bir çox mənbələr var.
+/- Data növləri dinamik olaraq müəyyən edilir. (Proqramlaşdırma asanlaşdırır, lakin səhvlərin yoxlanmasını çətinləşdirir və performansı azaldır)
– Dildəki uyğunsuzluqlar var. (metod adları, qaydalar ciddi deyildir, giriş səviyyəsinin öyrənilməsini asanlaşdıran, ixtisaslaşmanın çətinləşməsinə səbəb olan bir çox standartlar yoxdur).

C # .Net
+ Windows masa üstü tətbiqi ağıl ilkdir.
+ Visual Studio çox şeyləri asanlaşdırır ki, bir IDE-yə malikdir.
+ Bir çox ardıcıl, oturmuş qapaq. C-kimi sintaksisli (bəli, strukturdan Java-dan daha yaxşı) dillər arasında ən strukturlaşdırılmış ola bilər.
+ Türk mənbələrinin tapılması asandır.
– Bu, Microsoft-da bir dil dilidir (əslində tam olaraq deyil, .NET olmadan işləmir), Microsoft-unda olmayan məhsullara da səbəb ola bilər.
– Windows olmadan işləməyəcək.

JavaScript
* JavaScript (JS) Java ilə eyni deyil!
Bir çox sahələr birbaşa istifadə olunur. Istifadə sahəsi məhdud deyil.
Hər iki iterativ və funksional proqramlaşdırma dil xüsusiyyətini göstərir.
+ Sıxıla bilməz. Google V8 mühərriki ilə işləmə sürəti tamamilə fərqli bir ölçüə keçirildi.
+/- Bütün hadisələr dinamik şəkildə keçir. Derlenmez.
– Debug çətin (qismən).

C / C ++
Bir çox dilin atasıdır.
70-ci illərdə yarandığına baxmayaraq, hələ də yenilənir (C ++ haqqında danışarkən ANSI-C eynidır)
+ Tez əməliyyatlar və əsas vəzifələr üçün xüsusi hazırlanmışdır.
+ Donanma üçün ən yaxın dil. Birbaşa bir yığıncaq olaraq tərtib edilir.
– Səhv aşkar edilə biləcəyi bir çox nöqtə var. Dil sizin üçün çox nəzarət etmir. Minik səhvlər dəli nəticələrə səbəb ola bilər.
– Debug etmək çətindir.
– Istifadə etmək çətindir.

Python
+ Dil istifadə etmək asandır.
+ Google tərəfindən bəyənilir.
– Türk mənbəyini tapmaq çox asan deyil.

Scala
+ Bu artım yeni deyil.
+ Object-oriented və funksional dil xüsusiyyətlərini göstərir.
+ JVM üzərində işləyir, bütün Java-lərin kitabxanaları mövcuddur.
– Türk mənbələrini tapmaq çox çətindir.

Lua
+ Tez çalışan, asan istifadə scripting dili.
Oyun dünyasının bir çox yerlərində istifadə olunur
– Türk mənbəyi kiçikdir.
– Kitablardan öyrənmək çətin ola bilər, ilk olaraq video rəvayətləri izləməklə öyrənə bilərsiniz. Kitabın qalan hissəsi üçün kitab oxumağı tələb edə bilər, ancaq kitab başlanğıcda ağır ola bilər.