Conceito de Linguagens de Programação - 1

Documentos relacionados
Conceitos de Linguagem de Programação - 2

Conceitos de Linguagens de Programação

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

Linguagem de Programação e Compiladores

Nomes, vinculações e escopos

Paradigmas de Programação

Compiladores Análise de Tipos

Introdução a Computação

Como construir um compilador utilizando ferramentas Java

Compiladores Análise de Tipos

Tópicos Especiais em Informática Linguagem de Programação Haskell. Tiago Alves de Oliveira

Linguagens de Programação Aula 3

Programação: Vetores

CURSO BÁSICO DE PROGRAMAÇÃO AULA 16. Ordenação Revisão para a prova

Capítulo 5. Nomes, Vinculações e Escopos

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

Vetores. e o programa deverá ler os valores separadamente:

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

Linguagens de Programação. Marco A L Barbosa

Compiladores Análise de Tipos

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

Disciplina de Algoritmos e Programação

Programação I A Linguagem C. Prof. Carlos Alberto

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação

Universidade Estadual da Paraíba - UEPB Curso de Licenciatura em Computação

Introdução à linguagem C

Olá pessoal, Hoje vamos entender os conceitos sobre linguagem de programação. Definição, tipos de linguagens e as linguagens mais utilizadas

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

02. [Sebesta, 2000] Qual é o perigo potencial dos nomes que fazem distinção entre maiúsculas e minúsculas?

SEMÂNTICA. Rogério Rocha. rode = program simples = var x : int := 3 in x := x + 5 end.

Python - Variáveis e expressões

Algoritmos e Programação

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

Computação 1 - Python Aula 4 - Teórica: Variáveis e Atribuição, Strings 1/ 26

Lição 4 Fundamentos da programação

Compilação dos trabalhos: questões de concurso

Compiladores. Introdução

Conceitos de Linguagens de Programação

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

Paradigmas de Linguagem de Programação. Aspectos Básicos

Aula Prática 2. Paradigmas da Programação I / Programação Funcional

Vetores. IFSC/Florianópolis - Programação Orientada a Objetos + POO - prof. Herval Daminelli

Paradigmas de Linguagem de. Programação Profª. Roberta B Tôrres de programação referem-se a:

16:19:48. Introdução à Informática com Software Livre

15/03/2018. Professor Ariel da Silva Dias Aspectos sintáticos e semânticos básicos de linguagens de programação

Segundo trabalho de Organização e Recuperação da Informação FACOM- UFU Professor: Wendel Melo

FACULDADE LEÃO SAMPAIO

Aula 3 Conceitos de memória, variáveis e constantes Cleverton Hentz

Programação I Matrizes e Strings. Prof. Carlos Alberto

Aspectos preliminares

Linguagem Haskell. Universidade Estadual Santa Cruz Conceitos de Linguagens de Programação. Tiago Carneiro 19 Agosto 2013

PHP Histórico. Linguagens Server-side Professor Fábio Luís da Silva Santos

Fundamentos da Programação

Revisão: linguagens de programação

Programação de Computadores

Compiladores - Análise Léxica

Programação de Computadores

Computação 1 - Python Aula 3 - Teórica: Tipos de dados, Strings, Estrutura Condicional 1/ 28

DESENVOLVIMENTO DO COMPILADOR PARA A LINGUAGEM SIMPLE

Identificadores Nome de variáveis, constantes, métodos, etc...

Java e sua Sintaxe. Estrutura mínima de um programa em Java: public class Exemplo { }

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

Compiladores - Análise Léxica

Computação I: Linguagem de Programação Python

Prof. A. G. Silva. 28 de agosto de Prof. A. G. Silva INE5603 Introdução à POO 28 de agosto de / 1

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

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

Linguagens de Domínio Específico

Introdução à Programação em C

PLANO DE UNIDADE DIDÁTICA- PUD

Linguagens de Programação Funcional

Fundamentos de Programação

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

Vetores. IFSC/Florianópolis - Programação Orientada a Objetos + POO - prof. Herval Daminelli

Linguagens de Programação. Tipos. Carlos Bazilio

LINGUAGEM C: ARRAY: VETORES E MATRIZES

Pedro Vasconcelos DCC/FCUP. Programação Funcional 4 a Aula Listas

CCO 016 Fundamentos de Programação

Compiladores. Análise Léxica

Algoritmos e Técnicas de Programação Introdução Givanaldo Rocha de Souza

Linguagens de Programação Aula 14

Compiladores - Especificando Sintaxe

Listas em Haskell. Listas. Linguagem Haskell. Maria Adriana Vidigal de Lima. Faculdade de Computação - UFU. Setembro

Tipos, Literais, Operadores

Tipos, Literais, Operadores

Linguagem de Programação III

Laboratório de Programação 1 Algoritmos e a Lógica de Programação

Compiladores Análise Semântica

#include <stdio.h> main() { int i; // Cabeçalho for (i = 1; i <=20; i++) putchar( * ); putchar( \n ); puts( Numeros entre 1 e 5 );

Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.

Programação de Computadores IV

Linguagem Python. Inteligência Artificial. Características de Python. Importando módulos. Módulos. Usando Python no modo interativo

Introdução à Programação. Uma Abordagem Funcional

TIPOS DE DADOS E VARIÁVEIS

Gabriel Giorisatto De Angelo Luiz Otávio Gerhardt Fernandes

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

Transcrição:

Conceito de Linguagens de Programação - 1 Arthur Jovita, Thalles Silva November 1, 2011

1 Natureza das linguagens de Programação Linguagens Estáticas e Dinâmicas 2 Tipificação 3 4

Linguagens Estáticas e Dinâmicas Uma linguagem de programação é uma linguagem que possui sintaxe (formato) e semântica (significado), e é usada para expressar uma sequência de ações computacionais que formam um programa.

Linguagens Estáticas e Dinâmicas Linguagens Estáticas e Dinâmicas As linguagens de programação podem ser classificadas de acordo com o tipo de sistema que elas usam, ele define como são os métodos e as variáveis da linguagem. Em uma linguagem de tipo estático, o compilador deve conhecer o tipo de uma variável ou método antes da execução do programa (por isso, o tipo de uma variável normalmente é explicitamente declarado). Em uma linguagem de tipo dinâmico, tipo de uma variável ou método é desconhecido até a execução do programa.

Linguagens Estáticas e Dinâmicas Exemplos de linguagens de tipo estático: Java, Pascal, C, C# e C++. Exemplos de linguagens de tipo dinâmico: Python, Javascript, Perl e Ruby.

Linguagens Estáticas e Dinâmicas

Tipificação Natureza das linguagens de Programação Tipificação A definição de fortemente ou fracamente tipada tem relação com quão profundamente um sistema verifica as operações que podem ser feitas sobre uma estrutura de dados.

Tipificação Em linguagens fortemente tipadas: as operações são aplicadas para estruturas de dados bem definidas e cada operação define os tipos de dados que deve receber. tendem a ter mais código para suas aplicações e sua curva de aprendizado pode ser maior. o compilador tem garantias sobre o comportamento do programa.

Tipificação Em linguagens fracamente tipadas: As operações são aplicadas para qualquer estrutura de dados, porém essas operações podem falhar em tempo de execução caso a estrutura não suporte a operação. São mais simples em sua implementação, porém é mais difícil encontrar o erro. o compilador não tem garantia sobre o comportamento do programa porque uma estrutura de dados pode receber novas funcionalidades em tempo de execução.

Tipificação Em Java: float soma(float a, int b) { return a + b; } Os tipos de dados que a operação soma suporta estão bem definidos: a é float e b é int e o tipo de dado que a operação devolve também é definido float.

Tipificação Em Ruby: def soma (a, b) return a + b end A função soma pode receber quaisquer tipos de dados para a e b, e a operação será aplicada sobre esses tipos, devolvendo um resultado de tipo desconhecido: Se a e b forem String, o resultado será uma String concatenada de a e b; Se a e b forem inteiros, o resultado será um inteiro que representa a soma a+b; Se a for um float e b um inteiro, o resultado será um float que representa a soma a+b.

Tipificação Vale a pena observar que em linguagens fracamente tipadas, a possibilidade de erros em tempo de execução é muito maior. Por isso, é muito recomendável o uso de testes para verificar erros antes de colocar um sistema em produção. Exemplos de linguagens fortemente tipadas: Java, Pascal, C e C++. Exemplos de linguagens fracamente tipadas: Perl e Ruby.

Listas Natureza das linguagens de Programação Em Haskell, listas são estruturas de dados homogêneas. Ou seja, podemos ter uma lista com inteiros ou uma lista de caracteres, porém não podemos ter uma lista com inteiros e alguns caracteres. Por exemplo:

Como você pode ver, listas são caracterizadas por utilizar colchetes e os valores nas listas são separados por vírgulas. Se nós tentarmos uma lista como [1,2, a,3, b, c,4], o Haskell irá reclamar que os caracteres (que são, alias, demarcados entre aspas simples) não são números.

Falando em caracteres, strings são simplesmente listas de caracteres. hello é só um açúcar sintático para [ h, e, l, l, o ]. Como strings são listas, nós podemos utilizar funções de listas nelas, o que é realmente útil. Uma prática comum é colocar duas listas juntas. Fazemos isso utilizando o operador ++, que concatena valores no final da lista.

Observe que o : recebe um número e uma lista de números ou um caractere e uma lista de caracteres, enquanto o ++ recebe duas listas. Mesmo que você esteja adicionando um elemento ao final de uma lista com ++, você terá que demarcá-la com colchetes para que se torne lista. Utilizando o operador : (também chamado de contra operador) Nota: [], [ [] ] e [ [], [], [] ] são coisas diferentes. O primeiro é uma lista vazia, o segundo é uma lista que contém uma lista vazia, o terceiro é uma lista que contém três listas vazias.

Se você deseja obter um elemento de uma lista pelo seu índice, utilize!!. O índice inicia a partir de 0.

Listas também podem conter listas. Elas também podem conter listas que contêm listas que contêm listas...

O que mais você pode fazer com listas? Abaixo seguem outras funções para manipulação de listas: head recebe uma lista e retorna o cabeça de lista tail recebe uma lista e retorna a sua cauda. last recebe uma lista e retorna o seu último elemento. init recebe uma lista e retorna tudo com exceção do último elemento.

r Natureza das linguagens de Programação

Agora usaremos o GHCI para descobrir os tipos de algumas expressões. Faremos isso usando o comando :t que, seguido de qualquer expressão válida, retorna o seu tipo. Vamos dar uma olhada.

Sebesta, Robert W Conceitos de Linguagem de Programação. Editora Bookman, Porto Alegre: 2000