Limbaje procedurale – neprocedurale Cele doua tipuri de limbaje , procedurale si neprocedurale , se diferentiaza prin nivelul de organizare ( structurare ) a unui program . Limbajele neprocedurale sunt concepute pentru a gandi un program la nivel de instructiune , pe cand cele procedurale , obliga programatorul sa conceapa programe la nivel de bloc . Intr-un limbaj procedural (numit si limbaj structurat) programele sunt scrise instructiune cu instructiune , dar ele sunt organizate logic in blocuri (grupuri de instructiuni ) ce realizeaza o actiune bine determinata .In general un bloc are un punct de intrare si un punct de iesire – nu mai multe . Un limbaj procedural ofera posibilitatea utilizarii unui nivel ridicat de concepere a unui program si duce la realizarea de programe coerente si protejate la erori . Prin contrast , limbajele neprocedurale nu favorizeaza programatorul in a se desprinde de nivelul „instructiune „ si duc deseori la programe greu de controlat – mai ales in cazul programelor de dimensiuni mari . Limbajele neprocedurale sunt inca preferate de unii utilizatori datorita timpului foarte scurt cat decurge invatarea si utlizarea lor . I.3. Limbaje orientate Din punctul de vedere al aplicabilitatii unui limbaj , limbajele pot fi orientate pe o anumita problema sau concepute pentru solutionarea oricarui tip de problema – limbaje de uz general sau altfel spus , neorientate pe o problema . 49569idd49pru4f Limbajele orientate prezinta un grad inalt de specificitate pe cand un limbaj neorientat reprezinta un cadru general ce permite introducerea de catre utilizator a conceptelor si prelucrarilor dorite . Deci , diferenta esentiala dintre cele doua tipuri de limbaje o constitue nivelul conceptual definit . Cele specializate poseda deja integral suportul necesar si permit programatorului sa se concentreze la ansamblul problemei , pe cand cele nespecializate lasa in sarcina programatorului manevrarea nivelelor inferioare ale problemei . I.4. Limbaje concurente
Un limbaj concurent permite definirea de procese ( prelucrari ) paralele , executia sa fiind ramificata la un anumit moment de timp . Prin contrast limbajele neconcurente ( majoritatea limbajelor ) au o desfasurare liniara , fiind activ un singur proces la un moment dat . Procesele concurente presupun in mod obligatoriu un sistem multi-tasking ce poate gestiona mai multe „ sarcini „ la un moment dat .