Você está na página 1de 12

Paradigmas de

Linguagens de
Programao

Conceitos Introdutrios
Aula #1
(CopyLeft)2009 - Ismar Frango ismar@mackenzie.br

Paradigmas
A palavra paradigma tem origem:
Na palavra grega que significa padro ou
exemplo, que por sua vez vem de , que
significa demonstrar.

Final do sculo 19

Epistemologia ou teoria do
conhecimento (do grego
"" - cincia,
conhecimento; "" - discurso),
um ramo da filosofia que trata
dos problemas filosficos
relacionados crena e ao
conhecimento.

A palavra paradigma referia-se


a um padro de pensamento
(thought pattern) em um
contexto epistemolgico
Ferdinand de Saussure (da Lingstica)
usou paradigma para denotar uma
classe de elementos com similaridades

Paradigmas
Thomas S. Kuhn foi o responsvel pela
definio atual de paradigma:
"an entire constellation of beliefs, values and
techniques, and so on, shared by the members of a
given community "
Paradigma cientfico (Kuhn):
what is to be observed and scrutinized,
the kind of questions that are supposed to be asked
and probed for answers in relation to this subject,
how these questions are to be structured,
how the results of scientific investigations should be
interpreted.
Sinopse do livro em http://www.des.emory.edu/mfp/kuhnsyn.html

Paradigmas de
programao
Um paradigma de programao um estilo
paradigmtico de programar
Uma linguagem est para um paradigma assim
como um processo de engenharia de software
est para uma determinada metodologia
Um paradigma de programao fornece (e
determina) a viso que o programador possui
sobre a estruturao e execuo do programa

Paradigmas de
programao

* Annotative programming (as in Flare language)


Paradigma
* Aspect-oriented programming (as in AspectJ)
* Attribute-Oriented Programming (as in Java 5 Annotations, pre-processed by the XDoclet class; C# Attributes)
Funcional
* Class-based programming, compared to Prototype-based programming (within the context of object-oriented programming)
(ML,LISP,
* Concept-oriented programming is based on using concepts as the main programming construct.
* Constraint programming, compared to Logic programming
Paradigma
Scheme,
Haskell)(as in Spreadsheets)
* Dataflow programming
Concorrente
* Flow-driven programming, compared to Event-driven programming

Paradigma
* Functional programming
(ADA, Java)
* Imperative programming, compared to Declarative programming
Orientado a
* Logic programming (as in Prolog)
Aspectos
* Message passing programming, compared to Imperative programming
* Nondeterministic Programming
( AspectJ,
* Object-Oriented Programming (as in Smalltalk)
* Pipeline Programming (as in the UNIX command line)
AspectC++)
* Policy-based programming
* Procedural programming, compared to Functional programming
* Process oriented programming a parallel programming model.
* Reactive programming
* Recursive programming, compared to Iterative programming
* Reflective programming
* Scalar programming, compared to Array programming
* Component-oriented programming (as in OLE)
* Structured programming, compared to Unstructured programming
* Subject-oriented programming
* Tree programming
* Value-level programming, compared to Function-level programming

Paradigma
Orientado a
Objetos ( C++,
Java,
Smalltalk)

Paradigma
Imperativo ( C,
Pascal, C++, Java)

Paradigma de
Programao em
Lgica (PROLOG,
Gdel)

Voltando no tempo...

Você também pode gostar