+ All Categories
Home > Documents > Curs 1 Adrian Iftene [email protected]/Scoala/2011/LI/Cursuri/LI01.pdf · Exemple: C, C++,...

Curs 1 Adrian Iftene [email protected]/Scoala/2011/LI/Cursuri/LI01.pdf · Exemple: C, C++,...

Date post: 04-Sep-2019
Category:
Upload: others
View: 10 times
Download: 0 times
Share this document with a friend
23
Curs 1 17 Februarie 2011 Adrian Iftene [email protected] 1
Transcript
Page 1: Curs 1 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/LI/Cursuri/LI01.pdf · Exemple: C, C++, FORTRAN, Pascal, COBOL 8 Ada ALGOL SMALL Machine Algol Like Language BASIC C C++

Curs 1 – 17 Februarie 2011

Adrian [email protected]

1

Page 2: Curs 1 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/LI/Cursuri/LI01.pdf · Exemple: C, C++, FORTRAN, Pascal, COBOL 8 Ada ALGOL SMALL Machine Algol Like Language BASIC C C++

Limbajele calculatorului◦ Compilate

◦ Interpretate

◦ Scripting

◦ P-cod

◦ Orientate pe aspect

◦ Orientate spre date

2

Page 3: Curs 1 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/LI/Cursuri/LI01.pdf · Exemple: C, C++, FORTRAN, Pascal, COBOL 8 Ada ALGOL SMALL Machine Algol Like Language BASIC C C++

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

Page 4: Curs 1 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/LI/Cursuri/LI01.pdf · Exemple: C, C++, FORTRAN, Pascal, COBOL 8 Ada ALGOL SMALL Machine Algol Like Language BASIC C C++

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

Page 5: Curs 1 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/LI/Cursuri/LI01.pdf · Exemple: C, C++, FORTRAN, Pascal, COBOL 8 Ada ALGOL SMALL Machine Algol Like Language BASIC C C++

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

Page 6: Curs 1 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/LI/Cursuri/LI01.pdf · Exemple: C, C++, FORTRAN, Pascal, COBOL 8 Ada ALGOL SMALL Machine Algol Like Language BASIC C C++

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

Page 7: Curs 1 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/LI/Cursuri/LI01.pdf · Exemple: C, C++, FORTRAN, Pascal, COBOL 8 Ada ALGOL SMALL Machine Algol Like Language BASIC C C++

Limbaje compilate (necesită un compilator)

Limbaje interpretate (necesită un interpretor)

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

7

Page 8: Curs 1 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/LI/Cursuri/LI01.pdf · Exemple: C, C++, FORTRAN, Pascal, COBOL 8 Ada ALGOL SMALL Machine Algol Like Language BASIC C C++

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

Page 9: Curs 1 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/LI/Cursuri/LI01.pdf · Exemple: C, C++, FORTRAN, Pascal, COBOL 8 Ada ALGOL SMALL Machine Algol Like Language BASIC C C++

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

Page 10: Curs 1 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/LI/Cursuri/LI01.pdf · Exemple: C, C++, FORTRAN, Pascal, COBOL 8 Ada ALGOL SMALL Machine Algol Like Language BASIC C C++

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

Page 11: Curs 1 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/LI/Cursuri/LI01.pdf · Exemple: C, C++, FORTRAN, Pascal, COBOL 8 Ada ALGOL SMALL Machine Algol Like Language BASIC C C++

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

Page 12: Curs 1 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/LI/Cursuri/LI01.pdf · Exemple: C, C++, FORTRAN, Pascal, COBOL 8 Ada ALGOL SMALL Machine Algol Like Language BASIC C C++

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

Page 13: Curs 1 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/LI/Cursuri/LI01.pdf · Exemple: C, C++, FORTRAN, Pascal, COBOL 8 Ada ALGOL SMALL Machine Algol Like Language BASIC C C++

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

Page 14: Curs 1 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/LI/Cursuri/LI01.pdf · Exemple: C, C++, FORTRAN, Pascal, COBOL 8 Ada ALGOL SMALL Machine Algol Like Language BASIC C C++

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

Page 15: Curs 1 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/LI/Cursuri/LI01.pdf · Exemple: C, C++, FORTRAN, Pascal, COBOL 8 Ada ALGOL SMALL Machine Algol Like Language BASIC C C++

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

Page 16: Curs 1 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/LI/Cursuri/LI01.pdf · Exemple: C, C++, FORTRAN, Pascal, COBOL 8 Ada ALGOL SMALL Machine Algol Like Language BASIC C C++

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

Page 17: Curs 1 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/LI/Cursuri/LI01.pdf · Exemple: C, C++, FORTRAN, Pascal, COBOL 8 Ada ALGOL SMALL Machine Algol Like Language BASIC C C++

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

Page 18: Curs 1 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/LI/Cursuri/LI01.pdf · Exemple: C, C++, FORTRAN, Pascal, COBOL 8 Ada ALGOL SMALL Machine Algol Like Language BASIC C C++

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

Page 19: Curs 1 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/LI/Cursuri/LI01.pdf · Exemple: C, C++, FORTRAN, Pascal, COBOL 8 Ada ALGOL SMALL Machine Algol Like Language BASIC C C++

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

19

Page 20: Curs 1 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/LI/Cursuri/LI01.pdf · Exemple: C, C++, FORTRAN, Pascal, COBOL 8 Ada ALGOL SMALL Machine Algol Like Language BASIC C C++

20

aspect

pointcut

advice

Page 21: Curs 1 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/LI/Cursuri/LI01.pdf · Exemple: C, C++, FORTRAN, Pascal, COBOL 8 Ada ALGOL SMALL Machine Algol Like Language BASIC C C++

21

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

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

Page 22: Curs 1 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/LI/Cursuri/LI01.pdf · Exemple: C, C++, FORTRAN, Pascal, COBOL 8 Ada ALGOL SMALL Machine Algol Like Language BASIC C C++

22

Problem: we want to trace our program execution

Solution: we add a pointcut for all methods

set

println

toString

Page 23: Curs 1 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2011/LI/Cursuri/LI01.pdf · Exemple: C, C++, FORTRAN, Pascal, COBOL 8 Ada ALGOL SMALL Machine Algol Like Language BASIC C C++

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


Recommended