Paradigmas de Linguagens de Programacao - Aula #1
-
Upload
ismarfrango -
Category
Education
-
view
5.196 -
download
3
description
Transcript of Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programação
Conceitos IntrodutóriosAula #1
(CopyLeft)2009 - Ismar Frango [email protected]
Paradigmas• A palavra paradigma tem origem:
– Na palavra grega παράδειγμα que significa “padrão” ou “exemplo”, que por sua vez vem de παραδεικνύναι, que significa “demonstrar”.
• Final do século 19 – A palavra paradigma referia-se
a um padrão de pensamento (thought pattern) em umcontexto epistemológico
– Ferdinand de Saussure (da Lingüística) usou paradigma para denotar uma classe de elementos com similaridades
Epistemologia ou teoria do conhecimento (do grego
"ἐπιστήμη" - ciência, conhecimento; "λόγος" - discurso),
é um ramo da filosofia que trata dos problemas filosóficos
relacionados à crença e ao conhecimento.
Paradigmas
Thomas S. Kuhn foi o responsável pela definição atual de paradigma:
Sinopse do livro em http://www.des.emory.edu/mfp/kuhnsyn.html
"an entire constellation of beliefs, values and techniques, and so on, shared by the members of a
given community "
Paradigma científico (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.
Paradigmas de programação
• Um paradigma de programação é um estilo paradigmático de programar
• Uma linguagem está para um paradigma assim como um processo de engenharia de software está para uma determinada metodologia
• Um paradigma de programação fornece (e determina) a visão que o programador possui sobre a estruturação e execução do programa
Paradigmas de programação
• * Annotative programming (as in Flare language)• * Aspect-oriented programming (as in AspectJ)• * Attribute-Oriented Programming (as in Java 5 Annotations, pre-processed by the XDoclet class; C# Attributes)• * Class-based programming, compared to Prototype-based programming (within the context of object-oriented
programming)• * Concept-oriented programming is based on using concepts as the main programming construct.• * Constraint programming, compared to Logic programming• * Dataflow programming (as in Spreadsheets)• * Flow-driven programming, compared to Event-driven programming• * Functional programming• * Imperative programming, compared to Declarative programming• * Logic programming (as in Prolog)• * Message passing programming, compared to Imperative programming• * Nondeterministic Programming• * Object-Oriented Programming (as in Smalltalk)• * Pipeline Programming (as in the UNIX command line)• * 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 Imperativo ( C, Pascal, C++, Java)
• Paradigma Orientado a Objetos ( C++, Java, Smalltalk)
• Paradigma Orientado a Aspectos ( AspectJ, AspectC++)
• Paradigma Funcional (ML,LISP, Scheme, Haskell)
• Paradigma de Programação em Lógica (PROLOG,Gödel)
• Paradigma Concorrente (ADA, Java)
Voltando no tempo...