Preview only show first 10 pages with watermark. For full document please download

Slides Linguagem De Programação

SLIDES DE PROGRAMAÇÃO

   EMBED


Share

Transcript

Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Linguagens de Programação Sintaxe e Linguagem C Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Universidade Federal de Viçosa SIN-110 (Programação I) Outubro de 2008 Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Sumário 1 2 3 4 5 6 Linguagem de Programação Níveis Linguagem de Alto Nível Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Introdução Introdução O que é Método padronizado para expressar instruções para um computador. Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Introdução Introdução O que é Método padronizado para expressar instruções para um computador. Do que é composta Conjunto de regras sintáticas e semânticas usadas para denir um programa de computador. Os conjuntos de caracteres (tokens ), compostos de acordo com essas regras, constituem o Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação código fonte. Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Introdução Exemplos Linguagens não-proprietárias usadas atualmente Assembly, C, C++, Java, Pascal, Perl, Python, Ruby, PHP Linguagens proprietárias usadas atualmente C#, J#, Delphi, VB.NET, Cobol Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Introdução Programação de Computadores Sistema Computacional Hardware Software Software de Sistema (Sistema Operacional) Software Utilitário Software Aplicativo Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Níveis de Linguagens de Programação Linguagem de Máquina Sistema Binário Linguagem Hexadecimal Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Linguagem Assembly Linguagem de Máquina É difícil escrever Solução: uso de mnemônicos (em substituição aos números) Linguagem Assembly (Montagem) Versão legível da linguagem de máquina Facilitou por usar nomes descritivos para as posições da memória Mnemônicos (comandos) representam códigos de operação A programação necessita de conhecimento do hardware Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Linguagem Assembly Exemplo MOV R1, R2  move o conteúdo de R2 para R1 ADD R1, R2  adiciona R2 ao R1 e armazena o valor em R1 Transformação da Linguagem Passagem de Linguagem Assembly Máquina: montagem para Linguagem de O programa que realiza esta operação é chamado Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação . montador Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Linguagem Assembly Características Acesso direto à maquina (otimização da programação). Pode ser até 300% mais rápido que um programa em linguagem de mais alto-nível. Necessidade de detalhamento e conhecimento da máquina Diculdade de leitura (deve ser bem documentado) Aplicações Sistemas com respostas em tempo real Otimização de subtarefas da programação de alto nível Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Linguagem de Alto Nível Linguagem de Alto Nível Características Sintaxe mais próxima à linguagem natural (read, write, etc.) Permite manipulação de dados em diversas formas (números, listas, matrizes, etc.) Exemplos Fortran, Cobol, Pascal Java, C/C++ Python, Ruby Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Linguagem de Alto Nível Linguagem de Alto Nível Características Programação independente das máquinas  uso de compiladores em cada sistema Portabilidade é comum nas linguagens de alto nível, mas podem haver variações Padronização Padrões para as linguagens: institutos ANSI e ISO Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Sintaxe e Características Sintaxe de uma Linguagem de Programação Conjunto de regras que uma sequência de caracteres em um código fonte deverá seguir para ser considerada correta Cada conjunto de caracteres (token) deve estar em ordem adequada Exemplo: quando um operador binário é encontrado, deverão existir dois operandos para que possa estar na forma correta: ex.: b + 5, caso contrário, será considerado incorreto: ex: 5 + ou b + Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Sintaxe e Características Características da Linguagem Palavras reservadas Conjunto de caracteres usados pela linguagem e que não podem ser usados como identicadores Exemplos (C/C++ e Java): Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação while, if, for Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Sintaxe e Características Características da Linguagem Palavras reservadas Conjunto de caracteres usados pela linguagem e que não podem ser usados como identicadores Exemplos (C/C++ e Java): while, if, for Case Sensitive Termo usado para denir que uma linguagem faz diferença entre letras maiúsculas e minúsculas (sensível à caixa) Exemplos (C/C++ e Java): o identicador de nome e NOME Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Nome é diferente Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Sintaxe e Características Hello, world! Exemplo mínimo de uma linguagem de programação Código que imprime na tela Hello, world! Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Sintaxe e Características Hello, world! Exemplo mínimo de uma linguagem de programação Código que imprime na tela Hello, world! C #include int main(void) { printf("Hello, world!\n"); return 0; } Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Sintaxe e Características Hello, world! Java public class Hello { public static void main(String[] args) { System.out.println("Hello, world!"); } } Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Programação de Computadores x Algoritmos Programa de Computador Every computer program is a model, hatched in the mind, of a real or mental process. (ABELSON et al., 1985) Implementação A implementação das lógicas, elaboradas e representadas em um algoritmo, é realizada sobre o computador, por meio da transcrição do algoritmo para uma linguagem de programação, que possibilitará a compreensão e execução das instruções pelo computador. Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Programação de Computadores x Algoritmos Método Sistemático Análise: estuda-se o problema, buscando a sua completa compreensão, Projeto: aplica métodos e técnicas que possibilitem a descrição necessária do problema com suas possíveis soluções, Codicação: implementação do projeto do programa, escrito em uma linguagem de programação, Teste: simulações, testes e vericações dos programa são analisados, podendo resultar em alterações no código elaborado. Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Programação de Computadores x Algoritmos Linguagem de Programação Computer language is not just a way of getting a computer to perform operations but rather that it is a novel formal medium for expressing ideas about methodology. Thus, programs must be written for people to read, and only incidentally for machines to execute. (ABELSON et al., 1985) Código Qualquer tolo consegue escrever código que um computador entenda. Bons programadores escrevem código que humanos possam entender. (FOWLER, 2004) Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Histórico, Aplicações e Sintaxe Linguagem C Criação AT& T Bell Labs  1969 a 1973 Ken Thompson e Dennis Ritchie Nome  C  derivado de uma linguagem anterior  B Desenvolvimento ligado ao sistema operacional escrito em C) Unix (kernel Primeiro livro publicado em 1978 por Dennis Ritchie e Brian Kernighan (C - The Programming Language) gerou a versão conhecida como K&R C Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Histórico, Aplicações e Sintaxe Histórico Figura: Ken Thompson e Dennis Ritchie Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Histórico, Aplicações e Sintaxe Histórico Figura: Ken Thompson e Dennis Ritchie em um computador PDP-11 (por volta de 1972) Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Histórico, Aplicações e Sintaxe Características Nivel Médio É possível realizar operações mais próximas ao hardware Diversos drivers e sistemas operacionais são escritos em C Bibliotecas padronizadas com funcionalidades Entrada e saída Funções matemáticas Acesso a direto à memória por meio de ponteiros Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Histórico, Aplicações e Sintaxe Aplicações Abre aspas  Comparing C to Pascal is rather like comparing a Learjet to a getting something done for learning  (Kerninghan) Pipercub - one is meant for other is meant while the Figura: Pipercube e Learjet Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Histórico, Aplicações e Sintaxe Sintaxe Linguagem Imperativa Uso livre de comentários e linhas em branco obrigatório de ponto-e-vírgula no nal de cada linha Uso de comandos para especicar ações Uso Elementos de linguagem estruturada e procedural Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Histórico, Aplicações e Sintaxe Sintaxe Gerenciamento de memória Alocação estática: espaço reservado em tempo de compilação Alocação automática: objetos temporários podem ser alocados e liberados quando não mais necessários Alocação dinâmica: blocos de memória de tamanho arbitrário tempo de execução e controlados de forma requeridos em manual Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Histórico, Aplicações e Sintaxe Versões K&R C stdio) Biblioteca de entrada e saída padrão ( Novos tipos de dados Resolução de problemas de ambiguidade ANSI/ISO C (C89) Inclusão de recursos antes não ociais Compatibilidade com C++ A maioria dos compiladores atuais é baseado nesta versão Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Histórico, Aplicações e Sintaxe Versões C99 C++ continuou evoluindo após 1989 Corrigidos alguns detalhes Extendido suporte a conjuntos de caracteres internacionais Incluiu recursos da linguagem C++ (tipos de dados, macros, comentários, etc.) Em 2007 foi iniciada nova revisão da linguagem C Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Histórico, Aplicações e Sintaxe Sintaxe Básica Main é o programa principal, executado no início do programa Ponto-e-vírgula indicam m de uma linha Chaves indicam início e m de blocos (seja para programas, funções, estruturas de decisão ou de repetição) Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Histórico, Aplicações e Sintaxe Sintaxe Básica Main é o programa principal, executado no início do programa Ponto-e-vírgula indicam m de uma linha Chaves indicam início e m de blocos (seja para programas, funções, estruturas de decisão ou de repetição) Hello, world! #include int main(void) { printf("Hello, world!\n"); return 0; } Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação // // // // biblioteca definição do programa principal escreve e vai para próxima linha finaliza o programa principal Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Histórico, Aplicações e Sintaxe Elementos sintaxe do programa em C A função main() é a função principal e deve constar em qualquer programa C int) void indica ausência de tipo e informação. Toda função retorna um valor (neste caso A palavra Neste caso quer dizer que a função principal não requer nenhuma informação para executar. Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Histórico, Aplicações e Sintaxe Palavras Reservadas São utilizadas pela linguagem e não podem jamais serem usadas como identicadores Lista de Palavras Reservadas (32) if break case char const else while for oat goto int return long short signed void switch union enum volatile Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação continue double sizeof unsigned default extern register typedef do auto static struct Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Histórico, Aplicações e Sintaxe Geração de Código Fonte  Codicação Codicação: escrita usando uma linguagem de programação Uso de um editor como ferramenta para codicar É gerado o Código-fonte Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Histórico, Aplicações e Sintaxe Tradução do Código Fonte  Compilação Código fonte não é executável diretamente pelo processador Tradução do código fonte para linguagem de máquina: Montadores (geração de linguagem de montagem) Compiladores (geração do ) código-objeto Fases da compilação: Análise léxica Análise sintática Geração de código Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Histórico, Aplicações e Sintaxe Tradução do Código Fonte  Compilação Análise Léxica Identicação de cada cadeia de caracteres Verica se cada item é válido classicando em: numérica, palavra, ou operador aritmético Análise Sintática Constrói árvores sintáticas para o programa fonte Identica a estrutura gramatical reconhecendo o papel de cada componente do código Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Histórico, Aplicações e Sintaxe Tradução do Código Fonte  Compilação Figura: Árvore sintática para a cadeia x+y*z Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Histórico, Aplicações e Sintaxe Gerando um programa C Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Histórico, Aplicações e Sintaxe Tipos de Dados Cinco tipos principais char: dados alfanuméricos int: números inteiros oat: números reais  aproximadamente 7 dígitos de precisão (4 bytes) double: números reais  aproximadamente 15 dígitos de precisão (8 bytes) void: ausência de tipo, indica que não há dados a serem informados ou retornados Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Histórico, Aplicações e Sintaxe Comentários int main(void) { /* comentario de varias linhas */ // comentario de uma linha } Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Histórico, Aplicações e Sintaxe Linguagens Relacionadas Direta ou Indiretamente Inuenciou: C++ Unix C Shell Java PHP Perl Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I) Linguagem de Programação Níveis Sintaxe Programação x Algoritmos Linguagem C Sites interessantes Sites Interessantes Wikipedia http: //pt.wikipedia.org/wiki/Linguagem_de_programaç~ao http://pt.wikipedia.org/wiki/Programa_Olá_Mundo http://pt.wikipedia.org/wiki/Linguagem_de_ programaç~ao_esotérica Prof. Moacir P. Ponti Jr Prof. Marcelo R. Zorzan Linguagens de Programação Universidade Federal de Viçosa SIN-110 (Programação I)