Linguagens de Programação 10 Avaliação de Linguagens

Documentos relacionados
Gabriel Giorisatto De Angelo Luiz Otávio Gerhardt Fernandes

Programação Estruturada Orientada a Objetos

Groovy. Cleisson Santos Guterres Lucas Augusto Santos Renato Menezes Machado

GRUPO: Rafael Igor Vanderlei Vieira

Histórico de Linguagens de Programação

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

Linguagens de Programação 2016/2

Gabriel Santa Clara Ucelli

Paradigmas de Linguagens

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

Histórico. Perl (Practical Extraction and Report Language). Criada por Larry Wall em 1987.

Linguagens de Programação Scala. Gabriel Favalessa Gustavo Andrade

PLANO DE UNIDADE DIDÁTICA- PUD

Seminário de Linguagens de Programação. Grupo: Felipe de Aquino Fernandes

Projeto de Linguagem. Linguagens de Programação

Linguagens. Programação

Conceitos de Linguagens de Programação

Verificação de Tipo. Unions. Verificação de tipo estática. Verificação de tipo dinâmica

6 Polimorfismo. Desenvolvimento OO com Java. Vítor E. Silva Souza ~ vitorsouza

Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática. Erlang. Luiz Carlos Passamani Filho.

Aula 1 Java Prof. Dr. Sylvio Barbon Junior

Linguagem de Programação I Apresentação da Disciplina

Introdução a Orientação a Objetos

Aspectos preliminares

Linguagens de Programação

Paradigmas de Linguagens

Sistemas Distribuídos e Paralelos

Expressões e sentença de atribuição

Agenda da Aula. Reuso de Software. Tipos de Reuso. Potenciais Problemas. Vantagens de Reuso. Introdução a Reuso de Software

Carlos Eduardo Batista. Centro de Informática - UFPB

Linguagens de Programação 2 Amarrações

AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos.

Lua. Simple things simple, complex things possible. André Martinelli, Breno Krohling, Israel Santos, Matheus Vieira, Pedro Henrique Flores

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Conceitos de Programação Orientada a Objetos

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

Linguagens de Programação. Marco A L Barbosa

Programação Orientada a Objetos

AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos

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

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Programação orientada a objetos

FIC-POO. Aula 1.1 Apresentação do Curso e Introdução aos Paradigmas de Programação. Prof. Dr. Bruno Moreno

Desenvolva de qualquer sistema operacional para qualquer sistema operacional. Sem limites.

SEMINÁRIOS INTEGRADOS EM SISTEMAS DE INFORMAÇÃO. Luiz Leão

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

Java Básico. Carga Horária: 32 horas. Pré-requisito: Lógica de Programação; JAVA. Conteúdo Programático

[Desenvolvimento OO com Java] Organizando suas classes

Programação orientada a objetos

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Sumário. Capítulo 1 Introdução 29. Capítulo 2 Utilizando Objetos 59

MINISTÉRIO DA EDUCAÇÃO SECRETARIA DA EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA INSTITUTO FEDERAL GOIANO - CAMPUS TRINDADE

FACULDADE DE CIÊNCIA DE ENGENHARIA DE SOFTWARE MATRIZ CURRICULAR DO CURSO DE ENGENHARIA DE SOFTWARE PRIMEIRO PERÍODO SEGUNDO PERÍODO

Noções de sistemas de computação

Universidade Federal de Minas Gerais Colégio Técnico Plano de Ensino

Introdução à Análise e Projeto de Sistemas

Requisitos de sistemas

Agenda do Curso. Reuso de Software. Agenda da Aula. Tipos de Reuso. Vantagens de Reuso. Reuso de Software. Eduardo Figueiredo

SUMÁRIO CAPÍTULO 1 INTRODUÇÃO AO JAVA...1

Desenvolvimento OO com Java Um pouco de vetores

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos

Trabalho Linguagem e Programação de Compiladores

Academia Java IP JAVA: Introdução à Programação em Java (30 horas)

Ferramenta para Desenvolvimentode Sistemas EmbarcadosUtilizando Linguagem de Alto Nível p.1/25

Técnicas para Reutilização de Software

Universidade Federal do Espírito Santo. Programação II. CT IX - Sala 206 Departamento de Informática Centro Tecnológico

Técnicas para Reutilização de Software Prof. Eduardo Figueiredo Estagiário: Johnatan Oliveira

RPC e RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Classes e Objetos. Sintaxe de classe em Java

Academia Programador de Aplicações JAVA

Informática Parte 15 Prof. Márcio Hunecke

JAVA Express com Lógica. Subtítulo

IV. CONTEÚDO PROGRAMÁTICO

CONTEÚDO PROGRAMÁTICO

SCALA! Mariah Barros Cardoso Ruann Magalhães Homem Rudá Martinez Pimentel Deeke Yuri Pereira Constante

Curso Técnico Concomitante em Informática

Técnico em Informática. Web JavaScript. Profª Ana Paula Mandelli

Principais paradigmas de programação. Programação imperativa Programação funcional Programação lógica Programação OO

EMENTAS DAS DISCIPLINAS

Introdução ao Java. Prof. Herbert Rausch Fernandes

Opções de persistência

Objetos e Componentes Distribuídos: EJB e CORBA

INTRODUÇÃO A LINGUAGEM JAVA

Capítulo 9. Subprogramas

Capítulo 8. Estruturas de Controle no Nível de Sentença

Conceitos de Programação Orientada por Objectos. Rui Camacho Programação 2

Sistemas de Tipos. Prof. Alberto Costa Neto Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe

PROGRAMAÇÃO I. Introdução

Nomes, vinculações e escopos

Apresentação SCC0204 Programação Orientada a Objetos

Como Modelar com UML 2

Introdução à Programação para Dispositivos Móveis

Ponteiros de Variáveis

Transcrição:

Linguagens de Programação 10 Avaliação de Linguagens Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do Espírito Santo Este obra foi licenciada sob uma Licença Creative Commons Atribuição 3.0 Não Adaptada.

Conteúdo do curso Introdução; Amarrações; Valores e tipos de dados; Variáveis e constantes; Expressões e comandos; Modularização; Polimorfismo; Exceções; Concorrência; Avaliação de linguagens. Estes slides foram baseados em: Slides do prof. Flávio M. Varejão; Livro Linguagens de Programação Conceitos e Técnicas (Varejão); Livro Linguagens de Programação Princípios e Paradigmas, 2a edição (Tucker & Noonan). Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 2

Linguagens de programação Fundamentais para o profissional de computação; Envolvida em diversas etapas do processo de software: Viabilidade de um projeto; Estimativa de tempo e custo; Definição do paradigma de desenvolvimento; etc. Conhecimento dos conceitos teóricos: Maior habilidade para resolver problemas; Mais facilidade para aprender novas LPs; Maior capacidade de escolher a LP para um projeto. Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 3

Critérios de comparação Dificuldade para definir: Inúmeras possibilidades; Granularidade; Dependência do contexto; Opiniões divergentes; Etc. Isso se aplica mesmo a essa aula (visão do professor sobre o assunto) e ao capítulo do livro do Flávio (visão do autor sobre o assunto)! Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 4

Alguns critérios gerais Aplicabilidade; Confiabilidade; Facilidade de aprendizado; Eficiência; Portabilidade; Suporte ao método de projeto; Evolutibilidade; Reusabilidade; Integração com outros softwares; Custo. Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 5

Alguns critérios específicos Escopo; Expressões e comandos; Tipos primitivos e compostos; Gerenciamento de memória; Persistência de dados; Passagem de parâmetros; Encapsulamento e proteção; Sistema de tipos; Verificação de tipos; Polimorfismo; Exceções; Concorrência. Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 6

Comparações entre LPs Dificuldade para realizar; Não existe uma LP melhor que outra: Depende do contexto de uso; Depende do critério avaliado; Comparações refletem visão do autor. Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 7

Critérios gerais C C++ Java Aplicabilidade Sim Sim Parcial Confiabilidade Não Não Sim Aprendizado Não Não Não Eficiência Sim Sim Parcial Portabilidade Não Não Sim Método de projeto Estruturado Estruturado e OO OO Evolutibilidade Não Parcial Sim Reusabilidade Parcial Sim Sim Integração Sim Sim Parcial Custo Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 8

Critérios gerais C C++ Java Aplicabilidade Sim Sim Parcial Confiabilidade Não Não Sim Aprendizado C Não e C++ são linguagens Não de propósito Não geral. Eficiência Java, contudo, não oferece recursos para Sim Sim Parcial controlar diretamente o hardware, obrigando Portabilidade Não o programador a Não usar métodos nativos. Sim Método de projeto Estruturado Estruturado e OO Evolutibilidade Não Parcial Sim Reusabilidade Parcial Sim Sim Integração Sim Sim Parcial OO Custo Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 9

Critérios gerais C C++ Java Aplicabilidade Sim Sim Parcial Confiabilidade Não Não Sim Aprendizado Não Não Não C e C++ possuem inúmeras características Eficiência estimuladoras Sim de erros Simem programação Parcial (ex.: Portabilidade desvio Não incondicional Não irrestrito, aritmética Sim de ponteiros, etc.). Java centraliza certas Método de Estruturado operações para Estruturado evitar problemas e (ex.: OO projeto OO verificação de índices de vetor, coleta de lixo, Evolutibilidade Não Parcial etc.) Sim Reusabilidade Parcial Sim Sim Integração Sim Sim Parcial Custo Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 10

Critérios gerais C C++ Java Aplicabilidade Sim Sim Parcial Confiabilidade Não Não Sim Aprendizado Não Não! Não Eficiência Sim Sim Parcial Embora C e Java sejam mais fáceis de Portabilidade aprender Não que C++, Não nenhuma das LPs Simatende Método de Estruturado ao critério. C exige Estruturado uso massivo e de ponteiros, OO projeto que não é um conceito OO trivial. Java apresenta Evolutibilidade muitos conceitos, nem sempre ortogonais. Não Em especial as Parcial versões mais recentes Sim Reusabilidade Parcial adicionaram bastante Sim complexidade Sim(ex.: Integração tipos genéricos, closures, etc.). Sim Sim Parcial Custo Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 11

Critérios gerais C C++ Java Aplicabilidade Sim Sim Parcial Confiabilidade Não Não Sim Aprendizado Não Não Não Eficiência Sim Sim Parcial Portabilidade Não Não Sim O critério toma como base programadores Método de Estruturado muito experientes. Estruturado Neste caso, e C permite OO um projeto controle mais fino e é OOportanto mais eficiente. Evolutibilidade C++ Não vai na mesma Parcial linha. Java assume Sim o controle de diversos aspectos, adicionando Reusabilidade mecanismos Parcial de verificação, Sim coleta de Simlixo, Integração Sim etc. que diminuem Sim a eficiência. Parcial Custo Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 12

Critérios gerais C C++ Java Aplicabilidade Sim Sim Parcial Confiabilidade Não Não Sim Aprendizado Não Não Não Eficiência Sim Sim Parcial Portabilidade Não Não Sim Método de Estruturado Estruturado e OO projeto Embora C e C++ sejam OO padronizadas pela Evolutibilidade ANSI, é comum compiladores diferentes Não Parcial Sim terem características diferentes. Java, por Reusabilidade outro Parciallado, tem a portabilidade Sim como Simuma Integração característica fundamental da LP. Sim Sim Parcial Custo Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 13

Critérios gerais C C++ Java Aplicabilidade Sim Sim Parcial Confiabilidade Não Não Sim Aprendizado Não Não Não Eficiência Sim Sim Parcial Portabilidade Não Não Sim Método de projeto Estruturado Estruturado e OO OO Evolutibilidade Não Parcial Sim Esse critério depende da escolha do Reusabilidade Parcial Sim Sim paradigma adotado no projeto. Contudo, cada Integração vez Sim mais o paradigma SimOO vem sendo Parcial adotado Custo em projetos de sistemas de informação. Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 14

Critérios gerais C C++ Java Aplicabilidade Sim Sim Parcial Confiabilidade Não Não Sim Aprendizado Não Não Não Eficiência Sim Sim Parcial Portabilidade Não Não Sim Método de projeto Estruturado Estruturado e OO OO Evolutibilidade Não Parcial Sim Reusabilidade C Parcial possui características Sim que permitem Simcódigo Integração ilegível Sim e difícil de manter. Sim C++ melhora Parcialesse aspecto quando a orientação a objetos é Custo usada (estímulo ao encapsulamento e abstração). Java só admite programação OO e ainda oferece estímulo para construção de código bem documentado (ex.: JavaDoc). Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 15

Critérios gerais C C++ Java Aplicabilidade Sim Sim Parcial Confiabilidade Não Não Sim Aprendizado Não Não Não Eficiência C Sim oferece apenas reuso Sim de funções, Parcial tipos e Portabilidade variáveis Não distribuídas Nãoem bibliotecas. Sim C++ e Java oferecem o conceito de classes e Método de Estruturado possuem mecanismo Estruturado de e pacotes. OOO projeto OO polimorfismo universal também auxilia na Evolutibilidade criação Não de código Parcial reutilizável e frameworks. Sim Reusabilidade Parcial Sim Sim Integração Sim Sim Parcial Custo Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 16

Critérios gerais C C++ Java Aplicabilidade Sim Sim Parcial Confiabilidade Não Não Sim Aprendizado Não Não Não Eficiência Sim Sim Parcial Portabilidade Não Não Sim Método de Estruturado Estruturado e OO C e C++ podem invocar código compilado por projeto OO qualquer LP. Java tem que recorrer ao Evolutibilidade mecanismo Não JNI (Java Parcial Native Interface), Sim que integra com C/C++ apenas. Reusabilidade Parcial Sim Sim Integração Sim Sim Parcial Custo Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 17

Critérios gerais C C++ Java Aplicabilidade Sim Sim Parcial Confiabilidade Não Não Sim Aprendizado Não Não Não Eficiência Sim Sim Parcial Portabilidade Não Não Sim Método de Estruturado Estruturado e OO projeto C e C++ são de OO domínio público. Java Evolutibilidade pertence à Oracle, porém é liberada Não Parcial Sim gratuitamente. Existem inúmeras s Reusabilidade Parcial gratuitas e pagas. Sim escolha Sim da Integração Sim equipe de desenvolvimento. Sim Parcial Custo Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 18

Critérios específicos C C++ Java Escopo Sim Sim Sim Expressões e comandos Sim Sim Sim Tipos primitivos e compostos Gerenciamento de memória Sim Sim Sim Programador Programador Sistema Persistência dos dados Biblioteca de funções Biblioteca de classes e funções JDBC, biblioteca de classes, serialização Passagem de parâmetros Lista variável e por valor Lista variável, default, por valor e por referência Lista variável, por valor e por cópia de referência Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 19

Critérios específicos C C++ Java Escopo Sim Sim Sim Expressões e comandos Tipos primitivos e compostos As Sim três LPs requerem Sim a definição explícita Sim de entidades, associando-as a um escopo de Sim visibilidade. Há Sim pequenas diferenças. Sim Gerenciamento de memória Programador Programador Sistema Persistência dos dados Biblioteca de funções Biblioteca de classes e funções JDBC, biblioteca de classes, serialização Passagem de parâmetros Lista variável e por valor Lista variável, default, por valor e por referência Lista variável, por valor e por cópia de referência Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 20

Critérios específicos C C++ Java Escopo Sim Sim Sim Expressões e comandos Tipos primitivos e compostos Sim Sim Sim Todas Sim oferecem uma Sim ampla variedade Sim de expressões e comandos. Gerenciamento de memória Programador Programador Sistema Persistência dos dados Biblioteca de funções Biblioteca de classes e funções JDBC, biblioteca de classes, serialização Passagem de parâmetros Lista variável e por valor Lista variável, default, por valor e por referência Lista variável, por valor e por cópia de referência Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 21

Critérios específicos C C++ Java Escopo Sim Sim Sim Expressões e comandos Sim Sim Sim Tipos primitivos e compostos Gerenciamento de memória Persistência dos dados Sim Sim Sim Todas oferecem ampla variedade de tipos Programador primitivos (mas Programador C não oferece booleano) Sistema e compostos (mas nenhuma oferece conjunto Biblioteca potência). de Recentemente, Biblioteca de Java 8 JDBC, incluiu biblioteca o tipo funções função na linguagem classes e (vide closures). de classes, funções serialização Passagem de parâmetros Lista variável e por valor Lista variável, default, por valor e por referência Lista variável, por valor e por cópia de referência Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 22

Critérios específicos C C++ Java Escopo Sim Sim Sim Expressões e comandos Sim Sim Sim Tipos primitivos e compostos Gerenciamento de memória Persistência dos dados Sim Sim Sim Programador Programador Sistema Biblioteca C/C++ deixam a Biblioteca cargo do de programador. JDBC, biblioteca Java funções classes e de classes, utiliza coletor de lixo. funções serialização Passagem de parâmetros Lista variável e por valor Lista variável, default, por valor e por referência Lista variável, por valor e por cópia de referência Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 23

Critérios específicos C C++ Java Escopo Sim Sim Sim Expressões e comandos Tipos primitivos e compostos Gerenciamento de memória Persistência dos dados Passagem de parâmetros Sim Sim Sim C/C++ oferecem funções de I/O, mas deixam persistência a cargo do programador. Não Sim Sim Sim existe padrão para interface com BD. Java possui serialização e padronizou interface com Programador BD no JDBC, além Programador de ter operações Sistema de I/O. Biblioteca de funções Lista variável e por valor Biblioteca de classes e funções Lista variável, default, por valor e por referência JDBC, biblioteca de classes, serialização Lista variável, por valor e por cópia de referência Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 24

Critérios específicos C C++ Java Escopo Sim Sim Sim Expressões e comandos Sim Sim Sim Tipos primitivos e compostos Gerenciamento de memória Persistência dos dados Sim Sim Sim Programador Programador Sistema C usa apenas passagem por valor, obrigando o uso de ponteiros em diversas ocasiões. C++ Biblioteca de Biblioteca de JDBC, biblioteca oferece funçõeso maior leque classes de e opções. de Java classes, incluiu varargs funções na versão 5. serialização Passagem de parâmetros Lista variável e por valor Lista variável, default, por valor e por referência Lista variável, por valor e por cópia de referência Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 25

Critérios específicos Encapsulamento e proteção C C++ Java Parcial Sim Sim Sistema de tipos Não Parcial Sim Verificação de tipos Polimorfismo Estática Estática / Dinâmica Coerção e sobrecarga Todos Estática / Dinâmica Todos Exceções Não Parcial Sim Concorrência Não (biblioteca de funções) Não (biblioteca de funções) Sim Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 26

Critérios específicos C C++ Java Encapsulamento e proteção Parcial Sim Sim Sistema de tipos C oferece Não apenas encapsulamento Parcial de Simdados. Versões recentes permitem ocultamento com Verificação de declaração Estática (.h) & Estática definição / (.c). Java Estática e C++ / tipos oferecem mecanismo Dinâmica de classes e Dinâmica pacotes. Polimorfismo Coerção e sobrecarga Todos Todos Exceções Não Parcial Sim Concorrência Não (biblioteca de funções) Não (biblioteca de funções) Sim Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 27

Critérios específicos Encapsulamento e proteção C C++ Java Parcial Sim Sim Sistema de tipos Não Parcial Sim Verificação de Estática Em C, diversos Estática mecanismos / (ex.: Estática uniões / tipos livres, coerções Dinâmica e aritmética de ponteiros) Dinâmica permitem violação do sistema de tipos. C++ Polimorfismo Coerção e Todos Todos sobrecarga herda isso, mas possui sistema de tipos mais rigoroso se usado em sua forma OO. Java Exceções possui Não um sistema Parcial de tipos bastante Sim rigoroso. Concorrência Não (biblioteca de funções) Não (biblioteca de funções) Sim Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 28

Critérios específicos Encapsulamento e proteção C C++ Java Parcial Sim Sim Sistema de tipos Não Parcial Sim Verificação de tipos Estática Estática / Dinâmica Estática / Dinâmica Polimorfismo Coerção e Todos Todos Todas as verificações de C são estáticas. C++ sobrecarga e Java fazem algumas verificações dinâmicas Exceções (ex.: Nãoamarração tardia, Parcialverificação de Simíndice de vetor). Concorrência Não (biblioteca de funções) Não (biblioteca de funções) Sim Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 29

Critérios específicos Encapsulamento e proteção C C++ Java Parcial Sim Sim Sistema de tipos Não Parcial Sim Verificação de tipos Polimorfismo Estática Estática / Dinâmica Coerção e sobrecarga Todos Estática / Dinâmica Todos Exceções Não Parcial Sim C não possui polimorfismo paramétrico ou de inclusão. C++ e Java possuem todos, porém Concorrência Não Java (biblioteca não permite Não sobrescrita (biblioteca de operadores. Sim de funções) de funções) Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 30

Critérios específicos Encapsulamento e proteção C C++ Java Parcial Sim Sim Sistema de tipos Não Parcial Sim Verificação de tipos Polimorfismo Estática Estática / Estática / C não oferece. C++ Dinâmica oferece, mas Dinâmica não obriga seu uso. Java oferece um sistema bastante Coerção e Todos Todos sobrecarga rigoroso de tratamento de exceções. Exceções Não Parcial Sim Concorrência Não (biblioteca de funções) Não (biblioteca de funções) Sim Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 31

Critérios específicos Encapsulamento e proteção C C++ Java Parcial Sim Sim Sistema de tipos Não Parcial Sim Verificação de tipos Estática Estática / Dinâmica Estática / Dinâmica Polimorfismo Coerção e Todos Todos sobrecarga Java oferece recursos nativos para exclusão Exceções mútua Não (synchronized) Parcial e oferece threads Sim em sua API básica. Concorrência Não (biblioteca de funções) Não (biblioteca de funções) Sim Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 32

Procure saber Vários autores já fizeram comparações entre LPs; Procure saber: Algumas referências no livro do Flávio; Google Scholar, ACM DL, IEEE Xplorer, SpringerLink, etc. Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 33

http://nemo.inf.ufes.br/ Outubro 2014 Linguagens de Programação - Avaliação de Linguagens 34