curs 1 adrian iftene adiftene@info.uaicadiftene/scoala/2011/li/cursuri/li01.pdf · exemple: c, c++,...

Post on 04-Sep-2019

13 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Curs 1 – 17 Februarie 2011

Adrian Ifteneadiftene@info.uaic.ro

1

Limbajele calculatorului◦ Compilate

◦ Interpretate

◦ Scripting

◦ P-cod

◦ Orientate pe aspect

◦ Orientate spre date

2

Cum lucrează?

Orice program trebuie să se execute ca un şir de octeţi care sunt instrucţiuni în limbaj maşină al calculatorului

Limbajele de asamblare de “nivel jos”

Limbaj de nivel înalt: codul sursă al unui program trebuie tradus în cod maşină pe care maşină să poată de fapt să-l ruleze

3

După nivelul de apropiere al acestora de

limbajul natural

După modul de “traducere”

După scopul pentru care au fost proiectate

După modul de restricționare

4

Limbaje de nivel scăzut: limbajul de asamblare;

Limbaje de nivel mediu: C, C++;

Limbaje de nivel înalt: Java, PHP, Prolog, Pascal, Matlab, Python etc;

5

Sunt de 2 tipuri: procedurale și declarative

Se pot clasifica și în interpretate sau compilate

Limbajele de nivel foarte înalt – limbajele de generația a patra, limbajele de interogări baze de date si limbajele vizuale (de exemplu, Visual Basic)

În aceasta categorie pot fi incluse si limbajele de nivel comandă (exemple, Shell Unix, DOS Batch Command Language)

6

Limbaje compilate (necesită un compilator)

Limbaje interpretate (necesită un interpretor)

Limbaje P-cod (necesită și compilator și interpretor)

7

Limbajele compilate sunt traduse în fişiere executabile de cod maşină de un program special numit compilator

Odată ce binarul a fost generat acesta poate fi rulat direct

Limbajele compilate au o performanţă foarte bună şi au cel mai mult acces la SO

Dezavantajul este ca un program să fie compilat trebuie sa fie destul de rigid si restrictiv

Exemple: C, C++, FORTRAN, Pascal, COBOL

8

Ada

ALGOL

SMALL Machine Algol Like Language

BASIC

C

C++

C#

CLEO

CLush

COBOL

Lisp

Corn

D

Fortran

Haskell

Java

Nemerle

Ocaml

Pascal

Prolog

Scheme

Standard ML

Visual Basic

Visual Foxpro

Visual Prolog 9/48

Un limbaj interpretat depinde de un program interpretor care citeşte codul sursă şi îl traduce pe loc în calcule şi chemări de sistem

Sursa trebuie să fie re-interpretată (şi interpretorul prezent) de fiecare dată când codul este executat.

Limbajele interpretate sunt mai încete decât limbajele compilate, şi deseori au acces limitat la sistemul de operare şi hardware-ul intern

Pe de altă parte, ele tind să fie mai uşor de programat şi mai iertătoare la erori de codare decât limbajele compilate

10

Cum funcționează un interpretor?

Funcționează în felul următor: preia prima comanda din codul sursa, o traduce în limbajul mașină și o execută, apoi a doua comandă și tot așa.

Avantaje:

◦ flexibilitatea sporită (variabilele nu trebuie declarate)

◦ întreținerea este simplificată (orice modificare se reflectă imediat in program)

Dezavantaje:

◦ viteza de execuție scăzuta (datorită interpretării pas cu pas)

◦ împreună cu programul trebuie distribuit interpretorul

11/48

Exemple: multe utilitare Unix, incluzând shellul şi bc(1) şi sed(1) şi awk(1). La fel şi Tcl

Istoric, cel mai importante limbaj interpretor a fost LISP

Astăzi Perl este foarte folosit şi creşte în popularitate constant

Exemple: APL, AutoIt scripting language, BASIC, CodeSimian, Databus, Forth, Frink, J, Lisp, Lush, Pascal, REXX, VBScript, Some scripting languages

12

AWK

AppleScript

BeanShell

Ch

CLIST

ColdFusion

ActionScript, DMDScript, JavaScript, Jscript

EXEC, EXEC 2

F-Script

Frink

Groovy

ICI

Io

JASS

Lua

Mondrian

Perl

PHP

Python

REXX

Ruby

Sed

Tcl

Revolution

VBScript

13/48

Limbajele P-cod sunt ca limbajele compilate în sensul că sursa este tradusă la o formă binară compactă care este ceea ce executaţi de fapt, dar acea formă nu este cod maşină

În loc este pseudocod (sau p-cod), care este de obicei mult mai simplu dar mai puternic decât un limbaj maşină advărat. Când rulaţi programul, interpretaţi p-codul

P-codul poate rula aproape la fel de repede ca binarul compilat

Limbajele importante p-cod includ Python şi Java

14

Limbaje de uz general: C, C++, Pascal;

Limbaje specializate: Prolog, SQL

Limbajele de uz general sunt folosite pentru rezolvarea majorității problemelor de programare

Limbajele specializate sunt folosite pentru rezolvarea problemelor dintr-un domeniu restrâns. De exemplu Prolog pentru aplicațiile de inteligență artificială, SQL pentru bazele de date.

15

Limbaje tipizate: C, C++, Pascal, Java;

Limbaje netipizate: Perl, PHP;

Limbajele tipizate impun anumite restricții asupra operațiilor care se aplică anumitor date

Limbajele netipizate sunt cele care nu impun restricții și oferă o flexibilitate sporită

16/48

17

AOP is a programming paradigm which isolates secondary or supporting functions from the main program’s business logic

AOP increases modularity by allowing the separation of cross-cutting concerns

AOP includes programming techniques and tools that support the modularization of concerns at the level of the source code

18

Cross-cutting concerns - aspects of a program which affect other concerns

Advice - additional code

Pointcut - point where additional code is executed

Aspect - the combination of the pointcut and the advice

Exemple: AspectJ, CaesarJ, CLOS, Compose, JAsCo, ObjectTeams

19

20

aspect

pointcut

advice

21

Problem: we want to know when something changes the student (name or grade)

Solution: we add a pointcut for all “set” methods

22

Problem: we want to trace our program execution

Solution: we add a pointcut for all methods

set

println

toString

Cum lucrează limbajele calculatorului: http://www.itim-cj.ro/%7Ejalobean/Cursuri/Fundamental/Unix-Internet-Fundamentals-HOWTO-12.html

Listă de limbaje de programare după categorie: http://ro.wikipedia.org/wiki/Listă_de_limbaje_de_programare_după_categorie.htm

Clasificarea limbajelor de programare: http://www.worldit.info/articole/clasificarea-limbajelor-de-programare/

23

top related