Literatura executável: interpretando algoritmos em notações arbitrárias
|
|
- Mariana Igrejas Santana
- 8 Há anos
- Visualizações:
Transcrição
1 Literatura executável: interpretando algoritmos em notações arbitrárias Thiago Bezerra Lima e Silva 1, André Luís Brasil Cavalcante 1 1 UPIS União Pioneira de Integração Social CEP Brasília DF Tel.: (61) tsilva@sourcecraft.info, cavalcantealb@yahoo.com.br Abstract. Currently, there is no single, standard and wide accepted notation to write algorithms in Portuguese. Each text book available about programming logic introduces a specific notation and many programming professors adopt the notation that best fits his or her classes. Moreover, each portugol interpreter available defines its own language. Given the conflicts originated from the disagreement of notations adopted by the literature, in programming courses and by interpreters, this paper presents a tool for executing algorithms written in an arbitrary notation, allowing lexical and syntactical definitions to be easily modified as a means to wholly satisfy the class style and associated literature of programming introduction courses. Keywords: algorithm, programming language, interpreter Resumo. Atualmente, não há uma linguagem de programação em português amplamente aceita para descrever algoritmos. Em geral, cada livro disponível sobre lógica de programação utiliza uma notação específica e cada professor que leciona introdução à programação adota a notação que melhor se ajusta às suas aulas. Ainda, cada interpretador de portugol disponível define sua própria linguagem. Em meio aos conflitos oriundos da discordância entre notações utilizadas na literatura, em sala de aula e por interpretadores, este artigo apresenta uma ferramenta para a execução de algoritmos cuja linguagem pode ser modificada facilmente de forma a satisfazer o estilo de aula e a literatura utilizada em um curso de lógica de programação. Palavras-chave: algoritmo, linguagem de programação, interpretador 1. Introdução Diversos livros sobre o ensino de algoritmos encontram-se disponíveis atualmente e muitos destes livros foram escritos usando uma abordagem particular, muitas vezes, em função da experiência do autor em ministrar aulas de introdução à programação. Ao seguir uma abordagem em particular, estes livros apresentam, também, notações específicas para os algoritmos, sendo que estas diferem pouco ou muito das notações utilizadas em obras semelhantes. Há que se considerar, também, a adoção de interpretadores de algoritmos como ferramenta auxiliar de aprendizagem. E estas, por sua vez, também utilizam uma linguagem própria. Não raro, os professores que adotam
2 tais ferramentas acabam tendo que considerar se devem adotar a linguagem da ferramenta ou a linguagem de uma das obras que constam na bibliografia do curso. Por outro lado, não só com base nos interpretadores ou na literatura uma notação pode ser favorecida para uso em sala de aula. Disciplinas subseqüentes que adotam uma linguagem de programação específica podem ser beneficiadas se os alunos praticarem, anteriormente, a lógica de programação em uma linguagem algorítmica cuja sintaxe e semântica se assemelham à sintaxe e semântica da linguagem em questão. Com todos esses aspectos a considerar, este trabalho apresenta o X-Portugol, um interpretador que possibilita ao usuário definir e modificar facilmente as regras léxicas e sintáticas de sua linguagem algorítmica, permitindo adaptar a linguagem a um estilo específico, ou à notação de uma literatura em particular. O interpretador se baseia fortemente na linguagem OMeta (Warth, A. and Piumarta, I. 2007), uma linguagem orientada à objetos para casamento de padrões e, por sua vez, em Parsing Expression Grammar (Ford, 2004) ou PEG, uma fundamentação para descrição sintática baseada em reconhecimento. Neste artigo, apresenta-se na Seção 2 uma introdução às PEGs e à extensão OMeta. A Seção 3 utiliza as noções previamente discutidas para definir a linguagem base do interpretador X-Portugol. Na Seção 4, as técnicas de adaptação léxica e sintática são apresentadas. A Seção 5 apresenta futuras direções e, finalmente, a Seção 6 conclui o trabalho. 2. PEGs e orientação à objeto Ao construir uma linguagem de programação, é comum considerar a prática de definir as regras léxicas e sintáticas utilizando linguagens regulares e gramáticas livres de contexto (GLCs). É certamente razoável supor que a maior parte das implementações de linguagens de programação utiliza estes dois formalismos. Das definições regulares, em geral, são construídos os autômatos finitos correspondentes cuja tarefa é reconhecer padrões léxicos. Das regras gramaticais são construídos os parsers que devem reconhecer a sintaxe da linguagem. Muitas das técnicas empregadas para a construção de compiladores são apresentadas em obras como a de Aho et al. (1995). Uma alternativa a esta abordagem é definir as regras léxicas e sintáticas utilizando PEGs, ou Parsing Expression Grammars. Estas gramáticas, assim como as GLCs, possuem regras na forma A e, onde A é um não-terminal e e é uma expressão de parsing (PE). Tais expressões podem ser compostas por outras expressões em seqüência, similar às GLCs, e alguns operadores podem ser aplicados sobre elas, como * (zero ou mais ocorrências) e + (uma ou mais ocorrências). Nas PEGs, uma regra pode possuir múltiplas definições, por exemplo, utilizando um operador como, mas, diferente das GLCs, as escolhas são prioritárias, ou seja, as tentativas de derivação acontecem sempre na ordem em que as regras são definidas. Portanto, ambigüidades não ocorrem em gramáticas PEGs. Reconhecedores de PEGs podem ser implementados como Packrat Parsers (Ford, 2002). Sobre o conceito das PEGs, a linguagem OMeta se situa como uma extensão que permite o uso de construções encontradas em linguagens orientadas a objetos e admite a aplicação das regras gramaticais sobre dados arbitrários (não só cadeias de caracteres).
3 Cada gramática da linguagem OMeta possui um nome, define um namespace, e pode se relacionar com outra gramática por herança, o que significa que a gramática filha (subgramática) efetivamente herda as regras definidas na gramática mãe (super-gramática). No que diz respeito às regras gramaticais, cada regra pode ter um conjunto de definições e uma ação semântica associada para cada definição, ativada quando os dados de entrada são reconhecidos pela respectiva definição. Tal ação pode ser expressa em uma linguagem de programação específica e, em geral, corresponde à linguagem hospedeira na qual a OMeta foi implementada. Ainda, as regras podem retornar valores (referentes à última expressão reconhecida na definição ou ao valor de sua ação semântica) e estes valores podem ser manipulados associando uma variável à PE correspondente. Cada instância de uma gramática também possui um estado tal qual um objeto em linguagens orientadas à objetos, e as regras e ações semânticas podem consultar os dados do estado e das variáveis associadas às PEs durante o processo de reconhecimento. Para os propósitos deste artigo, uma implementação da linguagem OMeta, chamada de S-OMeta, foi desenvolvida utilizando a linguagem de programação Scheme. Esta implementação utiliza algumas convenções sintáticas, descritas na Tabela 1. Considerando a natureza dinâmica da linguagem Scheme, a facilidade de se definirem ou modificarem regras gramaticais, inclusive em tempo de execução, fica evidente. Ademais, nestes quesitos, esta facilidade dificilmente encontra correspondência quando se adotam técnicas tradicionais de análise léxica e sintática. Regra Tabela 1. Convenções sintáticas da linguagem S-OMeta Descrição da regra A ::= e 1 e2 ; Uma seqüência de PEs. A ::= e 1 e2 ; Escolha prioritária. A ::= ~ e ; Negação da expressão e. A ::= e * ; Zero ou mais ocorrências de e. A ::= e + ; Uma ou mais ocorrências de e. A ::= e? ; Zero ou uma ocorrência de e. A ::= ^; A ::= {e} ; Agrupamento. A ::= Referência à regra A da super-gramática. e : x ; Associa a variável x ao valor da expressão e. A ::= abc ; A ::= `abc`; A ::= abc ; A ::= e => s-expr; Seqüência de caracteres. Seqüência de caracteres seguida, ao final, de zero ou mais espaços em branco. Seqüência de caracteres seguida, ao final, de um ou mais espaços em branco. s-expr é uma ação semântica escrita em Scheme.
4 3. Uma linguagem de algoritmos básica Nesta Seção, é descrita uma linguagem básica para algoritmos em português. A partir desta linguagem básica, aqui chamada de P-Portugol, extensões, modificações ou mesmo novas linguagens derivadas podem ser definidas com base no material descrito na Seção anterior. O algoritmo da Figura 1 apresenta um exemplo de código escrito na linguagem P-Portugol. algoritmo maior_numero; var cont : inteiro; num : inteiro; maior : inteiro; inicio cont <- 0; maior <- 0; enquanto cont <= 10 faca escreva("digite um número"); leia(num); se num > maior entao maior <- num; fim-se cont <- cont + 1; fim-enquanto escreva("o maior número lido:", maior); fim Figura 1. Algoritmo maior_numero escrito em P-Portugol A definição da linguagem P-Portugol escrita em S-OMeta se encontra no anexo A. Regras gramaticais pré-definidas como spaces e digit são descritas na Tabela 2. Cada ação semântica das regras gramaticais é codificada em Scheme e tem como objetivo gerar uma árvore sintática abstrata (AST). Como o propósito deste trabalho é descrever os mecanismos que permitem modificar os termos léxicos e a sintaxe da linguagem, relevam-se os detalhes de análise semântica e execução de códigos que sucedem após a geração da AST e supõe-se a existência destes módulos para a execução dos algoritmos. Expressão space spaces Tabela 2. Regras pré-definidas na linguagem S-Ometa Descrição Qualquer caractere que corresponde a um espaço em branco. Zero ou mais caracteres que correspondem a um espaço em branco. digit Qualquer caractere que representa um digito (0 à 9). alpha-chars Um conjunto de caracteres que formam um identificador (equivalente à expressão regular [a-z][a-z0-9_\-]*). $ Fim da entrada de dados.
5 A linguagem P-Portugol define, então, algumas construções básicas de condição e repetição e permite declarações de variáveis de tipo inteiro, real, caractere e lógico. Os termos da linguagem não utilizam acentos e são oferecidas duas funções, leia e escreva, de entrada e saída, respectivamente. Com a descrição da linguagem P-Portugol, pode-se considerar duas formas de adaptar ou estender a linguagem: Modificando a própria gramática; Criando uma nova gramática que herda as regras de uma super gramática. Modificar a própria gramática oferece a facilidade de se trabalhar com as próprias definições diretamente, permitindo adequá-las ao intento. Por outro lado, as definições que existiam em um momento anterior às modificações são, em princípio, perdidas. Ao se criar, então, uma nova gramática que herda as regras de uma supergramática, as definições da super-gramática são preservadas, e redefinições de regras podem ser feitas na sub-gramática. Com isso, uma linguagem base pode ser útil para diversas derivações, simultaneamente. Tratando-se de algoritmos executáveis, a única restrição que se faz às adaptações nas gramáticas é que a AST gerada ao final do reconhecimento continue sendo aceita nas etapas de backend seguintes (análise semântica, e interpretação, por exemplo). Ainda, com algumas adaptações no backend é possível enriquecer o vocabulário da linguagem algorítmica oferecendo comandos de acesso a arquivos, sockets, controle de elementos de GUI. 4. Adaptando a linguagem Quando se adota um livro como Manzano (2008) para os estudos de lógica de programação e, ao mesmo tempo, se deseja utilizar um interpretador de pseudo-código, é interessante que a notação utilizada no livro seja compatível com a notação que o interpretador é capaz de executar. No entanto, comparando a linguagem P-Portugol com a notação algorítmica do livro em questão, observa-se que existem algumas diferenças léxicas e sintáticas. Para evidenciar estas diferenças, a Figura 2 apresenta uma adaptação do algoritmo da Figura 1 utilizando a notação deste livro. Observa-se, então, que este autor utiliza a palavra-chave programa ao invés de algoritmo e comentários podem ser escritos utilizando-se chaves. As palavras-chave deste livro são acentuadas de acordo com o português, onde em P-Portugol os acentos são ignorados. Algumas sentenças divergem no uso de pontuação final (como o uso do ; ) e, em especial, os comandos escreva e leia divergem na utilização de parênteses para agrupar os parâmetros. Finalmente, as palavras-chave compostas são separadas por - em P-Portugol, onde o autor utiliza _. Para que o algoritmo da Figura 2 seja executado pelo interpretador X-Portugol, é necessário fazer algumas modificações na definição da linguagem P-Portugol.
6 programa maior_numero {algoritmo ilustrativo} var num : inteiro cont : inteiro maior : inteiro início cont <- 0 maior <- 0 enquanto cont <= 10 faça escreva "Digite um número:" leia num se num > maior então maior <- num fim_se cont <- cont + 1 fim_enquanto escreva "O maior número lido:", maior fim Figura 2. O algoritmo maior_numero na notação do livro (Manzano 2008) Utilizando herança, a gramática descrita na Figura 3 apresenta uma definição da linguagem Manzano-Portugol em S-OMeta. Esta gramática herda as regras da supergramática P-Portugol. Considerando apenas a herança, pode-se afirmar que ambas as gramáticas definem a mesma linguagem. Porém, as regras adicionadas em Manzano- Portugol modificam o reconhecimento da linguagem P-Portugol em pontos específicos. ometa Manzano-Portugol <: P-Portugol { space ::= '{' {~'}' _}* '}'? ^ ; fim-sentenca ::= spaces; cmd-escreva ::= escreva expressao:x {`,` expressao}*:xs fim-sentenca => `(escreva,(cons x xs)); cmd-leia ::= leia identificador:x {`,` identificador}*:xs fim-sentenca => `(leia,(cons x xs)); } algoritmo ::= "programa"; inicio ::= "início"; entao ::= "então"; senao ::= "senão"; faca ::= "faça"; fim-se ::= "fim_se"; fim-enquanto ::= "fim_enquanto"; Figura 3. Extensão da linguagem P-Portugol em S-OMeta A primeira regra da gramática, space, sobre-escreve uma regra existente adicionando informações para reconhecer comentários entre chaves. Já a segunda regra, fimsentenca, que originalmente reconhecia um caractere de ponto e vírgula ( ; ) foi sobre-
7 escrita para reconhecer apenas espaços em branco. As regras cmd-escreva e cmd-leia foram alteradas para não obrigar os parênteses em volta dos parâmetros dos respectivos comandos. As demais regras modificam a lexicografia de algumas palavras-chave da linguagem. Dessa forma, com estas extensões, é possível utilizar a gramática Manzano- Portugol para processar o algoritmo da Figura 2. Este mesmo procedimento pode ser aplicado para fazer com que o interpretador seja capaz de reconhecer a linguagem completa utilizada por Manzano (2008), assim como as linguagens utilizadas por Silva (2007) e Vilarim (2004). 5. Futuras direções Atualmente, o interpretador X-Portugol não possui mecanismos sofisticados de identificação e reportagem de erros característica bastante desejável para o público alvo da ferramenta, limitando-se apenas a informar que houve um erro, caso o reconhecimento da entrada não tenha sido bem sucedido. Acredita-se que tais mecanismos possam ser incorporados incrementando a linguagem de casamento de padrões do S-OMeta e permitindo que seja feito reconhecimento de sentenças incorretas associando à elas mensagens de erro específicas tendo, com isso, um alto grau de precisão de reportagem de erros. Um ambiente integrado também pode ser desenvolvido onde as funcionalidades de execução, depuração e checagem de erros sejam facilmente manipuladas pelos usuários. Ainda, o ambiente pode permitir ao usuário escolher qual das linguagens présuportadas, especificamente, ele gostaria de utilizar para escrever algoritmos (ou mesmo, se deseja criar ou derivar uma nova notação!). 6. Conclusões Frente aos problemas encontrados no contexto de ensino-aprendizagem de algoritmos e lógica de programação, softwares que ajudam a ensinar os conceitos relativos ao raciocínio lógico, especialmente quando interagem bem com a literatura utilizada (ou estilo de aula adotado), podem ajudar os estudantes a compreender melhor os conceitos apresentados e debatidos. É, portanto, um sentimento comum que as ferramentas de apoio ao ensinoaprendizagem devem ser desenvolvidas e exploradas no contexto de sala de aula e este artigo apresenta uma ferramenta que pode ajudar a diminuir as barreiras que existem entre as diferentes notações adotadas, dando oportunidade aos professores para definir a notação algorítmica que melhor se encaixa ao estilo de suas aulas ou a literatura em uso, ao mesmo tempo em que permite, com relativa facilidade, a incorporação de novas notações para algoritmos que antes ficavam a cargo da imaginação para serem executados.
8 Referências Aho, Alfred V. and Sethi, Ravi and Ullman, Jeffrey D. (1995), Compiladores Princípios, Técnicas e Ferramentas. Rio de Janeiro, Guanabara Koogan. Ford, B. (2002). Packrat parsing: simple, powerful, lazy, linear time, functional pearl. In Proceedings of the Seventh ACM SIGPLAN international Conference on Functional Programming (Pittsburgh, PA, USA, October 04-06, 2002). ICFP '02. ACM, New York, NY, Ford, B. (2004). Parsing expression grammars: a recognition-based syntactic foundation. In: Proceedings of the 31st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Venice, Italy, January 14-16, 2004). POPL '04. ACM, New York, NY, Manzano, José Augusto N. G. (2008), Algoritmos: lógica para desenvolvimento de programação. São Paulo: Érica, 21. ed. Silva, Camila Ceccatto da and de Paula, Everaldo A.. (2007), Lógica de Programação: aprendendo a programar. Santa Cruz do Rio Pardo, Editora Viena. Vilarim, Gilvan de Oliveira. (2004), Algoritmos: Programação para Iniciantes. Rio de Janeiro, Editora Ciência Moderna. Warth, A. and Piumarta, I. (2007). OMeta: an object-oriented language for pattern matching. In: Proceedings of the 2007 Symposium on Dynamic Languages (Montreal, Quebec, Canada, October 22-22, 2007). DLS '07. ACM, New York, NY, Anexo A: A definição da linguagem P-Portugol em S-OMeta ometa P-Portugol { algoritmo ::= "algoritmo"; var ::= "var"; inteiro ::= "inteiro"; real ::= "real"; caractere ::= "caractere"; literal ::= "literal"; logico ::= "logico"; inicio ::= "inicio"; escreva ::= "escreva"; leia ::= "leia"; se ::= "se"; entao ::= "entao"; senao ::= "senao"; fim-se ::= "fim-se"; enquanto ::= "enquanto"; faca ::= "faca"; fim-enquanto ::= "fim-enquanto"; vetor ::= "vetor"; de ::= "de"; verdadeiro ::= "verdadeiro"; falso ::= "falso"; fim ::= "fim"; e ::= "e"; ou ::= "ou"; nao ::= "nao";
9 igual ::= `=`; diferente ::= `<>`; maior ::= `>`; menor ::= `<`; maior-igual ::= `>=`; menor-igual ::= `<=`; potencia ::= `^`; simb-atrib ::= `<-`; aspas-literal-abre ::= '"'; aspas-literal-fecha ::= '"'; separador-decimal ::= '.'; fim-sentenca ::= `;`; fim-linha ::= ; portugol ::= spaces declaracao-algoritmo:nome declaracoes-e-comandos:x $ => `(algoritmo,nome,x); declaracoes-e-comandos ::= secao-declaracoes:vars bloco-principal:cmds => `(inicio,vars,cmds); declaracao-algoritmo ::= algoritmo identificador:nome fim-sentenca => nome; secao-declaracoes ::= var declaracoes-de-variaveis; declaracoes-de-variaveis ::= {declaracao-de-variavel:d fim-sentenca=> d}*:d => `(declaracoes,d); declaracao-de-variavel ::= lista-de-variaveis:v `:` tipo-de-dado:t => `(,t,v); lista-de-variaveis ::= identificador:x {`,` identificador}*:xs => (cons x xs); identificador ::= alpha-chars:i spaces => (string->symbol i); tipo-de-dado ::= {inteiro real caractere logico}:x => (string->symbol x); bloco-principal ::= inicio comandos:c fim => `(comandos,c); comandos ::= comando*; comando ::= cmd-atribuicao cmd-escreva cmd-leia cmd-se cmd-enquanto; cmd-atribuicao ::= lhs:l simb-atrib expressao:r fim-sentenca => `(<-,l,r); lhs ::= identificador; cmd-escreva ::= escreva `(` expressao:x {`,` expressao}*:xs `)` fim-sentenca => `(escreva,(cons x xs)); cmd-leia ::= leia `(` identificador:x {`,` identificador}*:xs `)` fim-sentenca => `(leia,(cons x xs)); cmd-se ::= se expressao:e entao comandos:x senao comandos:y fim-se => `(se,e,x,y) se expressao:e então comandos:x fim-se => `(se,e,x);
10 cmd-enquanto ::= enquanto expressao:e faca comandos:x fim-enquanto => `(enquanto,e,x); expressao ::= expr-ou; expr-ou ::= expr-e:x ou expr-e:xs => `(ou,x,xs) expr-e; expr-e ::= expr-rel:x e expr-rel:xs => `(e,x,xs) expr-rel; expr-rel ::= expr-soma:x { igual => '= diferente => '<> menor-igual => '<= maior-igual => '>= menor => '< maior => '> }:o expr-soma:xs => `(,o,x,xs) expr-soma; expr-soma ::= expr-mul:x {`+` => '+ `-` => '-}:o expr-mul:xs => `(,o,x,xs) expr-mul; expr-mul ::= expr-pot:x {`*` => '* `/` => '/ `%` => '%}:o expr-pot:xs => `(,o,x,xs) expr-pot; expr-pot ::= expr-unaria:x potencia expr-unaria:xs => `(^,x,xs) expr-unaria; expr-unaria ::= {`+` => '+ `-` => '- nao => 'nao}:o termo:x => `(,o,x) termo `(` expressao:e `)` => e; termo ::= carac-literal logico-literal real-literal inteiro-literal lhs; logico-literal ::= verdadeiro => #t falso => #f; carac-literal ::= aspas-literal-abre {~aspas-literal-fecha char:c => c}*:cs aspas-literal-fecha => (list->string cs); inteiro-literal ::= digit+:x spaces => (string->number (list->string x)); } real-literal ::= digit+:x separador-decimal digit+:xs spaces => (string->number (list->string (append x '(#\.) xs)));
Algoritmos com VisuAlg
Algoritmos com VisuAlg Prof Gerson Volney Lagemann Depto Eng de Produção e Sistemas UDESC - CCT Algoritmos com VisuAlg Introdução A linguagem VisuAlg é simples, seu objetivo é disponibilizar um ambiente
Leia mais3 Parsing Expression Grammars
3 Parsing Expression Grammars Parsing Expression Grammars (PEG) são um formalismo que descreve reconhecedores de linguagens (For04). PEGs são uma alternativa para gramáticas livres de contexto (CFGs) e
Leia maisAlgoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br
(Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução
Leia maisAlgoritmo. Linguagem natural: o Ambígua o Imprecisa o Incompleta. Pseudocódigo: o Portugol (livro texto) o Visualg (linguagem) Fluxograma
Roteiro: Conceitos básicos de algoritmo, linguagem, processador de linguagem e ambiente de programação; Aspectos fundamentais da organização e do funcionamento de um computador; Construções básicas de
Leia maisProgramação de Computadores I Pseudocódigo PROFESSORA CINTIA CAETANO
Programação de Computadores I Pseudocódigo PROFESSORA CINTIA CAETANO Pseudocódigo Pseudocódigo é uma forma genérica de escrever um algoritmo, utilizando uma linguagem simples (nativa a quem o escreve,
Leia maisResolução de problemas e desenvolvimento de algoritmos
SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Resolução de problemas e desenvolvimento de algoritmos Prof. Vanderlei Bonato Prof. Cláudio Fabiano Motta Toledo Sumário Análise e solução de
Leia maisAMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS
UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS Orientando: Oliver Mário
Leia maisCurso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura
UFPI CCN DIE Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura O projeto Desenvolver um compilador de um subconjunto básico da linguagem PORTUGOL.
Leia maisTabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008
Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,
Leia maisLinguagem algorítmica: Portugol
Programação de Computadores I Aula 03 Linguagem algorítmica: Portugol José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/34 Introdução I Lógica A lógica é usada
Leia maisAlgoritmo e Programação
Algoritmo e Programação Professor: José Valentim dos Santos Filho Colegiado: Engenharia da Computação Prof.: José Valentim dos Santos Filho 1 Ementa Noções básicas de algoritmo; Construções básicas: operadores,
Leia maisALGORITMOS PARTE 01. Fabricio de Sousa Pinto
ALGORITMOS PARTE 01 Fabricio de Sousa Pinto Algoritmos: Definição 2 É uma sequência de instruções finita e ordenada de forma lógica para a resolução de uma determinada tarefa ou problema. Algoritmos 3
Leia maisUniversidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia de Computação CECOMP
Algoritmos e Programação Ricardo Argenton Ramos Baseado nos slides do professor Jadsonlee da Silva Sá Ementa Conceito de algoritmo. Lógica de programação e programação estruturada. Linguagem de definição
Leia maisApostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi
Apostila de Fundamentos de Programação I Prof: André Luiz Montevecchi Introdução O mundo atual é dependente da tecnologia O uso intenso de diversos aparatos tecnológicos é parte integrante do nosso dia-a-dia
Leia maisModelagem de Processos. Prof.: Fernando Ascani
Modelagem de Processos Prof.: Fernando Ascani Modelagem da arquitetura de negócios Arquitetura Definições Aurélio: Informática: Estrutura e organização lógica de funcionamento de um sistema computacional.
Leia maisCAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES
CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:
Leia maisImplementação de um analisador léxico: a primeira etapa na construção do compilador Marvel
Implementação de um analisador léxico: a primeira etapa na construção do compilador Marvel Cláudio Lopes (peso 0.3), Gildo Leonel (peso 0.3), Sérgio Rossini (peso 0.3) 1. Visão Geral Departamento de Ciência
Leia maisINTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO
Capítulo 1 INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO 1.1 Histórico de Linguagens de Programação Para um computador executar uma dada tarefa é necessário que se informe a ele, de uma maneira clara, como ele
Leia maisLP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br
LP II Estrutura de Dados Introdução e Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Considerações Gerais Introdução a Linguagem C Variáveis e C Tipos de
Leia maisConstrução de Compiladores. Construção de Compiladores. Motivação. Motivação. Contexto Histórico. Classificações: Gerações 09/03/2010
Construção de Compiladores Prof. Raimundo Santos Moura (http://www.ufpi.br/rsm) Construção de Compiladores Livro-Texto: AHO, Alfred V.; ULLMAN, Jeffrey D.; SETHI, R. Compiladores: princípios, técnicas
Leia maisAula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis
1. TIPOS DE DADOS Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem ser classificadas em dois tipos: As instruções, que
Leia maisAlgoritmos Computacionais ( Programas )
Algoritmos Computacionais ( Programas ) A partir deste tópico, consideramos a utilização do universo Computacional na solução de problemas. Para tanto devemos lembrar que a transposição de problemas do
Leia maisLógica. Everson Santos Araujo everson@por.com.br
Lógica Everson Santos Araujo everson@por.com.br Conceitos Coerência de raciocínio, de idéias, ou ainda a sequência coerente, regular e necessária de acontecimentos, de coisas Dicionário Aurélio 2 Conceitos
Leia maisAnálise semântica. Análise Semântica. Estrutura de um compilador. Anotação da árvore sintática. Tipos de comunicação de atributos?
Estrutura de um compilador Análise semântica Tradução orientada pela sintaxe 1 2 Análise Semântica Anotação da árvore sintática Análise semântica: Tipos (& Declarações) Escopo Checagens estáticas: Idéia:
Leia maisOrientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
Leia maisIntrodução à Programação
Introdução à Programação Introdução a Linguagem C Construções Básicas Programa em C #include int main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius = 30; farenheit = 9.0/5
Leia maisCompiladores. Análise léxica. Plano da aula. Vocabulário básico. Motivação para análise léxica. Estrutura de um compilador
Estrutura de um compilador Compiladores Análise lexical (1) Expressões Regulares 1 2 Plano da aula 1. Motivação do uso de E.R. e definições Linguagens, tokens, lexemas... 2. Regras de formação e exemplos
Leia maisA lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.
INTRODUÇÃO A lógica de programação é extremamente necessária para as pessoas que queiram trabalhar na área de programação, seja em qualquer linguagem de programação, como por exemplo: Pascal, Visual Basic,
Leia maisSintaxe e Semântica. Fases da Compilação. programa fonte
Sintaxe e Semântica mleal@inf.puc-rio.br Fases da Compilação programa fonte tokens parse tree árvore anotada ou outra forma intermediária código intermediário código objeto código objeto otimizado scanner
Leia maisO Processo de Programação
Programação de Computadores I Aula 04 O Processo de Programação José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/23 Algoritmo Um algoritmo é uma seqüência de
Leia maisAula 01. - Bibliografia - Definições - Operadores - Criação de um algoritmo - Exercícios. Algoritmo e Programação. Prof. Fábio Nelson.
- Bibliografia - Definições - Operadores - Criação de um algoritmo - Exercícios Aula 01 Slide 1 BIBLIOGRAFIA SCHILDT H. C Completo e Total, Makron Books. SP, 1997. Curso de linguagem C da UFMG. ZIVIANI,
Leia maisIntrodução à Lógica de Programação
Introdução à Lógica de Programação Sistemas Numéricos As informações inseridas em um computador são traduzidos em dados, ou seja, em sinais que podem ser manipulados pelo computador. O computador trabalha
Leia maisEspecificação do 3º Trabalho
Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,
Leia maisHardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)
Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,
Leia maisUNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação
SOFT DISCIPLINA: Engenharia de software AULA NÚMERO: 08 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a modelos e especificações. Nesta aula
Leia maisProcessamento da Informação Teoria. Algoritmos e Tipos de dados
Processamento da Informação Teoria Algoritmos e Tipos de dados Semana 01 Prof. Jesús P. Mena-Chalco 24/04/2013 (*) Slides adaptados das aulas do Prof. Harlen Costa Batagelo Algumas definições de algoritmo
Leia maisA Linguagem Pascal e o Ambiente de Programação Dev-Pascal. Introdução à Ciência da Computação I
A Linguagem Pascal e o Ambiente de Programação Dev-Pascal Introdução à Ciência da Computação I Março/2004 Introdução (1 de 3) Homenagem a Blaise Pascal, filósofo e matemático do século XVII. Desenvolvida
Leia maisVisuALG Estruturas de Repetição. Professores: Vilson Heck Junior vilson.junior@ifsc.edu.br Felipe Schneider Costa felipe.costa@ifsc.edu.
VisuALG Estruturas de Repetição Professores: Vilson Heck Junior vilson.junior@ifsc.edu.br Felipe Schneider Costa felipe.costa@ifsc.edu.br O Problema. Estruturas de Repetição: Introdução; Repita ate; Exemplo;
Leia maisProgramação para Computação
Universidade Federal do Vale do São Francisco Programação para Computação Professor: Marcelo Santos Linder E-mail: marcelo.linder@univasf.edu.br Ementa Conceito de algoritmo. Lógica de programação e programação
Leia maisAlgoritmos e Programação Conceitos e Estruturas básicas (Variáveis, constantes, tipos de dados)
Algoritmos e Programação Conceitos e Estruturas básicas (Variáveis, constantes, tipos de dados) Os algoritmos são descritos em uma linguagem chamada pseudocódigo. Este nome é uma alusão à posterior implementação
Leia maisALGORITMOS. Supervisão: Prof. Dr.º Denivaldo Lopes
Laboratory of Software Engineering and Computer Network Engineering for a better life Universidade Federal do Maranhão Curso de Engenharia Elétrica ALGORITMOS Supervisão: Prof. Dr.º Denivaldo Lopes Adelman
Leia maisBanco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados
Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um conjunto de programas para acesso a esses
Leia maisAlgoritmos não se aprendem: Copiando algoritmos Estudando algoritmos Algoritmos só se aprendem: Construindo algoritmos Testando algoritmos
1. INTRODUÇÃO A ALGORITMOS O uso de algoritmos é quase tão antigo quanto a matemática. Com o passar do tempo, entretanto, ele foi bastante esquecido pela matemática. Com o advento das máquinas de calcular
Leia maisOrganização de programas em Python. Vanessa Braganholo vanessa@ic.uff.br
Organização de programas em Python Vanessa Braganholo vanessa@ic.uff.br Vamos programar em Python! Mas... } Como um programa é organizado? } Quais são os tipos de dados disponíveis? } Como variáveis podem
Leia maisCOMPILADORES E INTERPRETADORES
Aula 16 Arquitetura de Computadores 12/11/2007 Universidade do Contestado UnC/Mafra Curso Sistemas de Informação Prof. Carlos Guerber COMPILADORES E INTERPRETADORES Um compilador transforma o código fonte
Leia maisIntrodução à Linguagem
Introdução à Linguagem Curso de Nivelamento do PPGMNE Janeiro / 2011 Juliano J. Scremin jjscremin@jjscremin.t5.com.br Um pouco de história Um pouco de história: Nascimento do Python Um pouco de história:
Leia mais1. Apresentação. 1.1. Objetivos
1.1. Objetivos 1. Apresentação Neste capítulo estão descritos os objetivos gerais do livro, os requisitos desejáveis do estudante para que possa utilizá-lo eficientemente, e os recursos necessários em
Leia maisProgramação de Computadores
Programação de Computadores INTRODUÇÃO AOS ALGORITMOS E À PROGRAMAÇÃO DE COMPUTADORES PARTE 2 Renato Dourado Maia Instituto de Ciências Agrárias Universidade Federal de Minas Gerais Exemplo Inicial Uma
Leia maisDiagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.
1 Diagrama de Classes Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes. Um dos objetivos do diagrama de classes é definir a base para
Leia maisAlgoritmos e Estrutura de Dados III. Árvores
Algoritmos e Estrutura de Dados III Árvores Uma das mais importantes classes de estruturas de dados em computação são as árvores. Aproveitando-se de sua organização hierárquica, muitas aplicações são realizadas
Leia maisFAP - Faculdade de Apucarana Curso de Sistemas de Informação RESUMO EXPANDIDO DE TRABALHO DE CONCLUSÃO DE CURSO -
FAP - Faculdade de Apucarana Curso de Sistemas de Informação RESUMO EXPANDIDO DE TRABALHO DE CONCLUSÃO DE CURSO RESUMO EXPANDIDO DE TRABALHO DE CONCLUSÃO DE CURSO - PLATAFORMA ARES: UMA PLATAFORMA VIRTUAL
Leia maisAnálise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)
Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem
Leia maisProfº. Enrique Pimentel Leite de Oliveira
Profº. Enrique Pimentel Leite de Oliveira O termo orientação a objetos significa organizar o mundo real como uma coleção de objetos que incorporam estrutura de dados e um conjunto de operações que manipulam
Leia maisAlgoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual
Algoritmos: Lógica para desenvolvimento de programação de computadores Autor: José Augusto Manzano Capítulo 1 Abordagem Contextual 1.1. Definições Básicas Raciocínio lógico depende de vários fatores para
Leia maisPROGRAMAÇÃO DE COMPUTADORES (Teoria)
PC PROGRAMAÇÃO DE COMPUTADORES (Teoria) Aula 01 Prof. Ricardo Veras (prof.rveras@gmail.com) ALGORITMOS "Seqüência ordenada de passos, que deve ser seguida para a realização de um tarefa" "Algoritmo é um
Leia maisLinguagem e Técnicas de Programação I Programação estruturada e fundamentos da linguagem C
Linguagem e Técnicas de Programação I Programação estruturada e fundamentos da linguagem C Prof. MSc. Hugo Souza Material desenvolvido por: Profa. Ameliara Freire Continuando as aulas sobre os fundamentos
Leia maisCONVENÇÃO DE CÓDIGO JAVA
CONVENÇÃO DE CÓDIGO JAVA Eligiane Ceron - Abril de 2012 Versão 1.0 Conteúdo Considerações iniciais... 2 Introdução... 2 Extensão de arquivos... 2 Arquivos de código Java... 2 Comentários iniciais... 2
Leia maisProgramação Orientada a Objetos Classes Abstratas Técnico em Informática. Prof. Marcos André Pisching, M.Sc.
Classes Abstratas Técnico em Informática, M.Sc. Classes Abstratas 2 Classes Abstratas Abstração Devemos considerar as qualidades e comportamentos independentes dos objetos a que pertencem, isolamos seus
Leia maisICC Introdução para JavaScript
ICC Introdução para JavaScript Arquitetura Genérica de um Computador Máquina de Von Neumann Diagrama conhecido como Máquina de Von Neumann (grande nome da informática) A finalidade de um computador é receber,
Leia maisInformática I. Aula 6. http://www.ic.uff.br/~bianca/informatica1/ Aula 6-12/09/2007 1
Informática I Aula 6 http://www.ic.uff.br/~bianca/informatica1/ Aula 6-12/09/2007 1 Ementa Noções Básicas de Computação (Hardware, Software e Internet) HTML e Páginas Web Internet e a Web Javascript e
Leia maisOPERADORES E ESTRUTURAS DE CONTROLE
OPERADORES E ESTRUTURAS DE CONTROLE 3.1 Operadores Os operadores indicam o tipo de operação matemática que será executada gerando novos valores a partir de um ou mais operadores. São muito utilizados em
Leia maisFAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO
FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO O Driver IGS possui um módulo de configuração que possibilita a comunicação com protocolos proprietários. Trata-se do Driver
Leia maisEstruturas de entrada e saída
capa Estruturas de entrada e saída - A linguagem C utiliza de algumas funções para tratamento de entrada e saída de dados. - A maioria dessas funções estão presentes na biblioteca . - As funções
Leia maise à Linguagem de Programação Python
Introdução a Algoritmos, Computação Algébrica e à Linguagem de Programação Python Curso de Números Inteiros e Criptografia Prof. Luis Menasché Schechter Departamento de Ciência da Computação UFRJ Agosto
Leia maisCURSO B SICO DE PERL
CURSO BÁSICO DE PERL CURSO BÁSICO DE PERL ESTRUTURA: 12 aulas de 2 horas e meia totalizando 30 horas. 2 créditos. É necessário 75% de presença (com exceções). Precisamos pensar em um método de avaliação.
Leia maisAlgoritmos Estruturas Seqüenciais. José Gustavo de Souza Paiva
Algoritmos Estruturas Seqüenciais José Gustavo de Souza Paiva 1 Introdução Objetivo básico da computação auxiliar os seres humanos em trabalhos repetitivos e braçais, diminuindo i i d esforços e economizando
Leia maisNOVIDADES DO JAVA PARA PROGRAMADORES C
PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB NOVIDADES DO JAVA PARA PROGRAMADORES C Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o Conceito de Classes e Objetos Capacitar para a criação de objetos simples
Leia maisCAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM
CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM 71 Introdução Difere dos níveis inferiores por ser implementado por tradução A tradução é usada quando um processador está disponível para uma mensagem fonte mas
Leia maisUMA BREVE INTRODUÇÃO AO ESTUDO E IMPLEMENTAÇÃO DE COMPILADORES
UMA BREVE INTRODUÇÃO AO ESTUDO E IMPLEMENTAÇÃO DE COMPILADORES 1 BRANCO; Guido Aparecido Junior, 2 TAMAE, Rodrigo Yoshio 1-Discente do Curso Sistemas de Informação FAEG/Garça 2-Docente do Curso Sistemas
Leia maisAlgoritmos e Programação Parte Teórica
Universidade Federal do Vale do São Francisco Curso de Engenharia da Produção / Elétrica Algoritmos e Programação Parte Teórica Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti
Leia mais1.1. Aplicações de TVD dinâmicas
1 Introdução Uma aplicação de TV Digital (TVD) comumente é composta por um vídeo principal associado a outros objetos (aplicações, imagens, vídeos, textos etc.), que são transmitidos em conjunto possibilitando
Leia mais1.1. Organização de um Sistema Computacional
1. INTRODUÇÃO 1.1. Organização de um Sistema Computacional Desde a antiguidade, o homem vem desenvolvendo dispositivos elétricoeletrônicos (hardware) que funciona com base em instruções e que são capazes
Leia maisEsta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi
5 Conclusão Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi permitir que scripts Lua instanciem e usem
Leia maisAlgoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira
Algoritmos e Estrutura de Dados Aula 1 Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira Linguagem a ser Utilizada? Nossa disciplina é de Algoritmos e Estrutura de Dados, e não de linguagem
Leia maisIntrodução à Programação de Computadores
1. Objetivos Introdução à Programação de Computadores Nesta seção, vamos discutir os componentes básicos de um computador, tanto em relação a hardware como a software. Também veremos uma pequena introdução
Leia maisUNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação
SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar
Leia maisIFTO LÓGICA DE PROGRAMAÇÃO AULA 01
IFTO LÓGICA DE PROGRAMAÇÃO AULA 01 Prof. Manoel Campos da Silva Filho Tecnólogo em Processamento de Dados / Unitins Mestre em Engenharia Elétrica / UnB http://manoelcampos.com mcampos at ifto.edu.br Versão
Leia maisFluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção
Este procedimento corresponde ao fluxo de trabalho de Indexação de OCR com separação de código de correção no programa de treinamento do Capture Pro Software. As etapas do procedimento encontram-se na
Leia maisAlgoritmos e Linguagem de Programação I
Algoritmos e Linguagem de Programação I Roberto Ferreira roberto.ferreira@lapa.ifbaiano.edu.br 2014.1 Módulo I Aula 4 Introdução ao C Linguagem de Programação É um conjunto de regras sintáticas e semânticas
Leia maisModelagem de Casos de Uso (Parte 1)
Modelagem de Casos de Uso (Parte 1) Roteiro Introdução Descrição: Sistema de Ponto de Vendas Casos de Usos Atores Fluxo de Eventos Cenários Formato de Documentação de Casos de Uso Diagramas de Casos de
Leia maisEngenharia de Software III
Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,
Leia maisIntrodução à Lógica de Programação (cont.)
Operadores Introdução à Programação (cont.) Luis Otavio Alvares Adaptado de slides das profas. Vania Bogorny, Patrícia Jaques e Mônica Py Usados para incrementar, decrementar, comparar e avaliar dados,
Leia mais1.6. Tratamento de Exceções
Paradigmas de Linguagens I 1 1.6. Tratamento de Exceções Uma exceção denota um comportamento anormal, indesejado, que ocorre raramente e requer alguma ação imediata em uma parte do programa [GHE 97, DER
Leia maisas citações devem ser apresentadas conforme a norma NBR 10520/2002; citação: é a menção de uma informação extraída de alguma fonte.
COMO FAZER CITAÇÕES? as citações devem ser apresentadas conforme a norma NBR 10520/2002; citação: é a menção de uma informação extraída de alguma fonte. REGRAS GERAIS DE APRESENTAÇÃO citação pelo sobrenome
Leia maisUNIDADE 6 - PROGRAMAÇÃO MODULAR
UNIDADE 6 - PROGRAMAÇÃO MODULAR Até o momento as estruturas de controle (seqüência, seleção e repetição) de um algoritmo definia-o como um bloco lógico (início e fim). À medida que os problemas a serem
Leia maisARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.
Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 8 ARRAYS Introdução Até agora, utilizamos variáveis individuais. Significa que uma variável objeto
Leia maisIntrodução a Informática. Prof.: Roberto Franciscatto
Introdução a Informática Prof.: Roberto Franciscatto APRESENTAÇÃO Os computadores chegaram aos diversos níveis das organizações Nestes contexto: Que linguagem entendem? Que produtos podem usar? Dúvidas
Leia maisCURSO BÁSICO DE PROGRAMAÇÃO AULA 7
CURSO BÁSICO DE PROGRAMAÇÃO AULA 7 Revisão para prova: Comandos de Entrada e Saída Estruturas de Decisão (Se, caso (escolha)) Laços de Repetição (Enquanto, Repita, Para) Relembrando Trabalho 1 Prazo de
Leia maisNOME SEXO CPF NASCIMENTO SALARIO
Tutorial SQL Fonte: http://www.devmedia.com.br/articles/viewcomp.asp?comp=2973 Para começar Os Sistemas Gerenciadores de Bancos de Dados Relacionais (SGBDr) são o principal mecanismo de suporte ao armazenamento
Leia maisUniversidade de São Paulo São Carlos, SP Instituto de Ciências Matemáticas e de Computação. SSC0206 1/2010 Introdução à Compilação
Universidade de São Paulo São Carlos, SP Instituto de Ciências Matemáticas e de Computação SSC0206 1/2010 Introdução à Compilação Trabalho 3: Analisador Semântico e Gerador de Código Prof. Dr. Thiago A.
Leia maisTÉCNICAS DE PROGRAMAÇÃO
TÉCNICAS DE PROGRAMAÇÃO (Adaptado do texto do prof. Adair Santa Catarina) ALGORITMOS COM QUALIDADE MÁXIMAS DE PROGRAMAÇÃO 1) Algoritmos devem ser feitos para serem lidos por seres humanos: Tenha em mente
Leia maisEverson Scherrer Borges João Paulo de Brito Gonçalves
Everson Scherrer Borges João Paulo de Brito Gonçalves 1 Tipos de Sistemas Operacionais Os tipos de sistemas operacionais e sua evolução estão relacionados diretamente com a evolução do hardware e das
Leia maisFeature-Driven Development
FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por
Leia maisIntrodução a Algoritmos Parte 04
Universidade Federal do Vale do São Francisco Curso de Engenharia de Computação Introdução a Algoritmos Parte 04 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti
Leia maisAlgoritmos em Javascript
Algoritmos em Javascript Sumário Algoritmos 1 O que é um programa? 1 Entrada e Saída de Dados 3 Programando 4 O que é necessário para programar 4 em JavaScript? Variáveis 5 Tipos de Variáveis 6 Arrays
Leia mais15 Computador, projeto e manufatura
A U A UL LA Computador, projeto e manufatura Um problema Depois de pronto o desenho de uma peça ou objeto, de que maneira ele é utilizado na fabricação? Parte da resposta está na Aula 2, que aborda as
Leia maisProgramação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos
Programação Estruturada e Orientada a Objetos Fundamentos Orientação a Objetos 2013 O que veremos hoje? Introdução aos fundamentos de Orientação a Objetos Transparências baseadas no material do Prof. Jailton
Leia mais