Conceitos de Linguagens de Programação - Características. Paavo Soeiro

Documentos relacionados
CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

Introdução à Programação Aula 03. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Linguagens de Programação. Introdução. Carlos Bazilio

Python - Variáveis e expressões

Fundamentos de Programação 1

DELEGAÇÃO REGIONAL DO ALENTEJO CENTRO DE FORMAÇÃO PROFISSIONAL DE ÉVORA REFLEXÃO 5

Slides trabalhados durante a quinta aula

Aspectos preliminares

Programação Orientada a Objetos

MCTA028 Programação Estruturada Aula 01: - Introdução à linguagem C - Teste de avaliação

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

Capítulo 1. Aspectos Preliminares

Linguagem de Programação e Compiladores

LINGUAGEM C: VARIÁVEIS E EXPRESSÕES

Programação de Computadores

Linguagens de Programação

Revisão: linguagens de programação

PROGRAMAÇÃO ORIENTADA A OBJETOS I -CONCEITOS PRELIMINARES. Prof. Angelo Augusto Frozza, M.Sc.

Paradigmas. Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I

Aula 1 Java Prof. Dr. Sylvio Barbon Junior

Gabriel Giorisatto De Angelo Luiz Otávio Gerhardt Fernandes

Linguagem de Programação C. Prof. Fabrício Olivetti de França

1 Introdução à Programação O que é? Para que serve?... 1

Revisão C++ - Parte 1

Linguagem C Operadores

Linguagens de Programação. Marco A L Barbosa

Capítulo 7. Expressões e Sentenças de Atribuição

Linguagem C Operadora

Introdução à Computação

Introdução e Conceitos

Instituto Superior de Engenharia de Lisboa

Material III-Bimestre Introdução e conceitos fundamentais da Linguagem C#

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

Introdução à Linguagem C++

Paradigmas de Linguagens de Programação. Expressões e Instruções de Atribuição

Groovy. Cleisson Santos Guterres Lucas Augusto Santos Renato Menezes Machado

Linguagem de Programação. Thiago Leite Francisco Barretto

Informática I. Aula 19. Aula 19-31/10/2007 1

Programação em Sistemas Computacionais

Linguagens de programação

MsC. João Maria MsC. Liviane Melo

CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO

Programação I Apresentação

Programação Imperativa

Linguagens de Programação

Noçõ linguagem Java. Profs. Marcel Hugo e Jomi Fred Hübner. Departamento de Sistemas e Computação Universidade Regional de Blumenau - FURB

Tipos, Literais, Operadores

Tipos, Literais, Operadores

Questões de Paradigmas de Programação Matéria: Prova 1 4ª EDIÇÃO

Linguagens de Programação

Daniel Wildt

FACULDADE BATISTA MINEIRA - CST Banco de Dados Estruturas de Dados - Variáveis

3. Linguagem de Programação C

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

No final deste curso, saberás criar programas através da linguagem de programação Java.

Introdução à Linguagem C

Introdução a JAVA. Variáveis, tipos, expressões, comandos e blocos

Curso teórico: Orientação a Objetos. Matemática computacional Marcos Aurelio Wozhiak Jr webzhiak.com.br

Linguagens de Programação Aula 3

INTRODUÇÃO À LINGUAGEM C

Java 2 Standard Edition Tipos, literais, operadores e controle de fluxo

Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto

Fundamentos de Sistemas Operacionais

Palavras Reservadas da Linguagem Java

Estudos de Linguagens de Programação - Revisão

Histórico de Linguagens de Programação

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Paradigmas de Programação

Programação de Computadores:

Linguagens de Programação Conceitos e Técnicas. Amarrações

Linguagem de Programação II Implementação

Programação Aplicada à Engenharia

Autômatos e Linguagens

Introdução à Computação: Máquinas Multiníveis

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4

2 Paradigmas de linguagens de programação João B. Rocha- Junior. As linguagens evoluem com o passar do tempo

Algoritmos e Programação

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

TÉCNICO DE INFORMÁTICA - SISTEMAS

RESUMO DA DISCUSSÃO SOBRE LINGUAGENS DE PROGRAMAÇÃO DO DIA 26 DE OUTUBRO DE 2006

Linguagens de Programação I

Polimorfismo. O que é polimorfismo?

Métodos de implementação de linguagens. Kellen Pinagé

Organização de Computadores

Variáveis primitivas e Controle de fluxo

7 Operadores e Expressões

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

Fundamentos de Programação. Linguagem C++ Introdução, identificadores, tipos de dados. Prof. Bruno E. G. Gomes IFRN

Introdução à orientação a objetos. João Tito Almeida Vianna 18/05/2013

Compiladores. Eduardo Ferreira dos Santos. Fevereiro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 38

PROGRAMAÇÃO I. Introdução

Introdução à Computação

Introdução à Programação Aula 04. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Programação de Computadores IV. Introdução a Linguagens de Programação Simone Martins SLIDES CEDIDOS POR BRUNO MARQUES 1

Transcrição:

Conceitos de Linguagens de Programação - Características Paavo Soeiro

Motivação Para que possa escolher uma linguagem apropriada ao problema. Melhorar o entendimento da linguagem utilizada. Facilitar o aprendizado de uma nova linguagem. Fazer um melhor uso de determinada linguagem. Facilitar o projeto de uma nova linguagem, ou uma nova funcionalidade.

Pré-história 1842-1843 Ada Lovelace criou um algoritmo para o cálculo da sequência de Bernoulli usando a máquina analítica de Charles Babbage

História 1950 a 1960 1954 FORTRAN Desenvolvida pela IBM por uma equipe liderada por John W. Backus. 1958 LISP Desenvolvida por John McCarthy durante um projeto de pesquisa em inteligência artificial. 1959 COBOL Criado por um comitê de investigadores de várias instituições civis e governamentais

1967 a 1978 Nascimento dos paradigmas fundamentais 1962 Simula 1964 BASIC 1970 Pascal 1969 a 1973 C Dennis Ritchie, no AT&T Bell Labs 1972 Smalltalk Orientação a objetos 1972 Prolog Programação logica

1980 Módulos, performance 1983 Ada Sistemas modulares 1983 C++ Fortalecimento da orientação a objetos 1987 Perl

1990 Era da Internet 1990 Haskell 1991 Python 1991 Java 1993 Ruby 1993 Lua 1995 JavaScript 1995 PHP 2000 C#

Fonte: TIOBE

Objetivos Permitir que uma pessoa escreva programas que ajudem a resolver problemas. Facilitando a comunicação entre o programador e a máquina.

Programação estruturada Programação modular Programação orientada a objetos Programação linear

Paradigma Paradigma Imperativo: Procedural Estrutura de blocos Orientação a objetos Computação distribuída Paradigma Declarativo: Funcional Lógica

Grau de abstração Linguagem de programação de baixo nível Assembly Linguagem de programação de médio nível C Linguagem de programação de alto nível Java

Geração Segundo Henri Bal e Dick Grune: Primeira geração - linguagem de máquina. Segunda geração - linguagens de montagem (assembly). Terceira geração - Linguagens procedurais. Quarta geração - Linguagens aplicativas. Quinta geração - Linguagens voltadas a Inteligência artificial como as linguagens lógicas (Prolog) e as linguagens funcionais (Lisp). Sexta geração - Redes neurais.

Interpretada x Compilada Interpretada: Programa é executado instrução a instrução Cada comando é traduzido depois executado Compilada: Programa é executado somente após a tradução completa do código fonte.

Características Simplicidade Abstração de dados Ortogonalidade Expressividade Eficiência Portabilidade Leitura Confiabilidade

Abstração de dados Descrever famílias de objetos focando nos aspectos fundamentais, sem entrar em possíveis detalhes específicos sobre um objeto em particular. A abstração de dados torna-se cada fez mais importante a medida que o grau de complexidade do problema aumenta.

Encapsulamento Técnica que permite a separação de aspectos internos e externos de um objeto. Impedir o acesso direto aos atributos. Provê métodos de acesso para esses atributos.

Herança Permite que características comuns a um grupo de classes, seja encapsulado em uma superclasse, a qual é estendida em subclasses que herdam as características da classe base e adiciona características especificas. Herança simples Herança múltipla

Polimorfismo Muitas formas Permite que classes derivadas de uma classe base invoquem métodos com mesma assinatura, porem com comportamentos diferentes.

Tipos de polimorfismo Inclusão O mais básico, ponteiro (referencia) da classe pai, aponta para instancia da classe filha. Animal animal = new Cachorro(); Paramétrico Generics em Java Sobrecarga Coerção Casting implicito

Escopo de variáveis Escopo diz respeito a visibilidade de uma variável. Qual porção de código enxerga a variável? O escopo pode ser: Dinâmico Estático Quanto a visibilidade: Local Global

C vs Java Características Gerais: C Paradigma procedural Compilado Java Orientado a objetos Hibrido (bytecode + interpretador)

Tipos de dados int float double char int float double char byte short long boolean

Estruturas de repetição e controle if else switch for while do while break continue return if else switch for while do while break continue return try catch finally

Palavras reservadas C

Java Reservadas porem não utilizadas

Operadores aritméticos Operador binário Descrição = Atribuição + Soma - Subtração / Divisão % Modulo (obtém o resto da divisão)

Incremento e decremento Operador Instrução Pós-fixado Pré-fixado ++ var = var+1; -- var = var-1; var = var++; ou var++; var = var--; ou var--; var = ++var; ou ++var; var= --var; ou --var;

Relacional Operador Descrição > Maior >= Maior igual < Menor <= Menor igual == Igualdade!= Diferente

Logico Operador Descrição && AND OR! NOT (operador de negação)

Bit a bit Operador Descrição & AND OR ^ XOR (OR exclusivo) << Deslocamento para esquerda >> Deslocamento para direita

Portabilidade O programa em C precisa é distribuído em formato binário executável e precisa ser compilado em cada arquitetura que for executado. Em Java, o programa é distribuído em bytecode e necessita de uma maquina virtual para ser executado.

Segurança O programador C possui mais liberdades ao escrever seus códigos. Ex.: acessando regiões de memoria fora do escopo da aplicação por meio de ponteiros.

Encapsulamento Java prove mecanismos de encapsulamento: C public protected private Através de struct

Aplicações C kernel Linux Excel Java Netbeans