CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS João Gabriel Ganem Barbosa
Sumário Motivação História Linha do Tempo Divisão Conceitos Paradigmas Geração Tipos de Dados Operadores Estruturada vs OO Vantagens Desvantagens
Introdução - Motivacional Por que estudar CLP? Conhecer os princípios e mecanismos por trás da linguagem Facilitar a curva de aprendizado das linguagens Melhorar o uso e diminuir o tempo de programação Escolher melhor a linguagem para resolver um problema
História O primeiro trabalho foi da Ada Lovelace, em 1843. Uma das primeiras linguagens de programação para computadores foi Plankalkul O primeiro compilador escrito foi para a linguagem A-0, em 1952 por Grace Hopper
História A primeira linguagem de alto nível amplamente usada foi Fortran, criada em 1954
Linha do Tempo Década de 50 1954 FORTRAN 1958 LISP 1959 - COBOL
Décadas de 60 e 70 1962 Simula 1964 Basic 1970 Pascal 1973 C 1972 Smalltalk (OO) 1972 - Prolog
Década de 80 1982 ADA (Sistemas modulares) 1983 C++ 1987 Perl
Década de 90 1990 Haskell 1991 Python 1991 Java 1993 Ruby 1993 Lua 1995 JavaScript 1995 PHP 2000 C#
Conceitos Programação Estruturada Programação Modular Programação Linear Programação Orientada a Objetos
Programação Estruturada Três estruturas: Sequência, Decisão e Repetição Haskell Dominou a criação de software até a OO Ainda é amplamente utilizada
Programação Modular Desenvolvimento de rotinas através de módulos Modula-2 e Modula-3
Programação Linear Utilizado para resolução de problemas matemáticos
Programação Orientada a Objetos Baseado na composição e interação entre unidades chamadas de objetos Maior facilidade em modelar o mundo real Mais utilizada atualmente para desenvolvimento
Paradigmas Imperativos Procedural n BASIC e Fortran Estrutura de Blocos n Pascal e C Orientação a Objetos n C++, Java, Python Computação Distribuída n Ada
Paradigmas Declarativos Funcional n LISP e Haskell Programação Lógica n Prolog
Gerações 1ª Geração Estruturas de controle orientadas a máquina Fortran 2ª Geração Estruturadas para minimizar o uso do GOTO Algol 60 3ª Geração Enfase a Simplicidade e Eficiência Pascal
Gerações 4ª Geração Linguagens com abstração de dados Encapsulamento Ada 5ª Geração Orientação a Objeto Paradigma Funcional Java, Prolog
Características das Linguagens de Programação Simplicidade Abstração de dados Ortogonalidade Expressividade Eficiência Portabilidade Leitura Confiabilidade
Abstração de Dados Abstração é o processo ou resultado de generalização por redução do conteúdo da informação de um conceito ou fenômeno observável A abstração de dados permite reduzir a informação necessária para a criação de um programa através das variáveis envolvidas em uma única entidade fechada.
Abstração de Dados Exemplo: struct Cliente {! Nome! Idade! CPF! }!
Encapsulamento Separar um programa em partes Tornar o software Flexível Fácil Manutenção Impedir acesso a atributos Acesso se dá por métodos definidos
Polimorfismo Classes derivadas de uma Classe base conseguem tomar diferentes formas Herança Mesmo métoodo, comportamentos diferentes
Tipos de Dados int float double char byte short long boolean
Estruturas de Repetição if else switch for while do while break continue return try catch finally
Palavras Reservadas C auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while
Palavras Reservadas Java package import new class interface enum abstract final implements extends instanceof public private protected super this throw throws try catch finally if else for do while switch case default break continue return boolean byte short int long double float char void strictfp transient volatile synchronized native assert static goto const true false null
Operadores Aritméticos Operador Descrição = Atribuição + Soma - Subtração / Divisão % Resto
Incremento e Decremento Operador Descrição ++ Incremento ( x++ ou ++x) -- Decremento (x-- ou --x)
Operadores Relacionais Operador Descrição > Maior que < Menor que >= Maior ou igual <= Menor ou igual == Igual a!= Diferente de
Operadores Lógicos Operador Descrição && E OU! Não (Negação)
Operadores Bit-a-Bit Operador Descrição & E OU ˆ XOR (Ou exclusivo) << Shift a esquerda >> Shift a direita
Estruturada Vs OO Portabilidade Em Java, o programa roda em cima de uma máquina virtual, que pode ser instalada nos sistemas mais utilizados (linux, OS e Windows), permitindo uma portabilidade muito maior que o C Em C, o programa é distribuído no formato binário executável exclusivamente para a plataforma em que foi compilado, podendo dar conflito até em tipos diferentes de processador
Estruturada Vs OO Segurança Em C, é possível ao programador acessar áreas de memória que não dizem respeito ao programa. Vírus podem ser criados em C Java é amplamente utilizado em serviços WEB por ser mais seguro (mas nem tanto).
Estruturada Vs OO Encapsulamento Em Java, pode-se declarar os atributos e métodos como public, protected e private Em C, através de Structs
Estruturada Vs OO Aplicações Java C n OpenOffice n Jdownloader n Netbeans n Kernel do Linux
CLP Dúvidas?