DESENVOLVIMENTO DE UM SISTEMA DE COMPUTAÇÃO ALGÉBRICA MULTIPLATAFORMA PARA O AUXÍLIO DO ENSINO DE MATEMÁTICA

Tamanho: px
Começar a partir da página:

Download "DESENVOLVIMENTO DE UM SISTEMA DE COMPUTAÇÃO ALGÉBRICA MULTIPLATAFORMA PARA O AUXÍLIO DO ENSINO DE MATEMÁTICA"

Transcrição

1 relatos de pesquisa DESENVOLVIMENTO DE UM SISTEMA DE COMPUTAÇÃO ALGÉBRICA MULTIPLATAFORMA PARA O AUXÍLIO DO ENSINO DE MATEMÁTICA Victor Fernando Conti * Elvio Gilberto da Silva ** Patrick Pedreira *** Rosane Maria de Lima Araújo **** RESUMO Atualmente são frequentes os alunos se queixarem do ensino de matemática, além de demonstrarem grande desinteresse por esta disciplina, que constitui a base do crescimento científico de um país, auxiliando o aprimoramento do raciocínio lógico, senso crítico e hábitos investigativos do indivíduo. Tendo isto em vista, este trabalho propôs o desenvolvimento de um sistema de computação algébrica que visa auxiliar os professores no ensino de matemática, utilizando o computador como uma forma de incentivo a aprendizagem, buscando ajudar na renovação do ensino desta, que muitas vezes ocorrem de maneira semelhante a como era há muitas décadas atrás, distanciando-se da realidade dos jovens e consequentemente favorecendo o desinteresse. A linguagem foi projetada utilizando a notação BNF e modelada utilizando os diagramas UML, sendo posteriormente implementada em C, com a técnica recursiva descendente em um interpretador. Foram elaboradas também duas interfaces gráficas para a edição do código fonte visando tornar o software agradável para o aluno, uma voltada a computadores de baixo desempenho, utilizando C++ com o framework QT e outra mais elaborada utilizando Java com a biblioteca Java FX. Palavras-chave: Sistema de computação algébrica, Auxílio ao ensino de matemática, Ferramenta de auxílio ao ensino, Interpretadores. ** Universidade do Sagrado Coração. *** Universidade do Sagrado Coração. *** Universidade do Sagrado Coração. **** Universidade do Sagrado Coração. 259 C&D-Revista Eletrônica da FAINOR, Vitória da Conquista, v.10, n.3, p , set./dez. 2017

2 1. INTRODUÇÃO A educação constituiu a base de um país, sendo responsável tanto por sua sustentação quanto desenvolvimento, de forma que para promover o crescimento de uma nação se faz necessário um ensino de qualidade fomentado a partir de investimentos financeiros, científicos e tecnológicos. Boa parte da base educacional de um indivíduo é formada na infância e adolescência, através das disciplinas do ensino fundamental e médio, dentre as quais a matemática é a que apresente maior dificuldade de aprendizagem. Apesar de esta contribuir para o desenvolvimento da capacidade de resolução de problemas, investigação, enfrentamento de novas situações, criatividade e a criação de uma visão ampla e científica (LINTZ, 1999). Entretanto é frequente os professores ouvirem lamentos dos alunos sobre não gostarem de matemática e terem dificuldades de resolverem operações risórias (PAZ JÚNIOR, 2008). E o relatório De Olhos nas Metas comprova que a grande maioria dos estudantes não aprende a mesma como o esperado. O que pode vir a ser um grande problema, pois sendo uma área cumulativa, uma defasagem em determinado conteúdo prejudica os aprendizados futuros (GONZATTO, 2012). Um dos possíveis motivos para esse desinteresse é que o modelo clássico do ensino visa à aprendizagem por repetição, o que vem sendo muito criticado pelos defensores da matemática moderna, que buscam o ensino pela compreensão dos fundamentos lógicos (PAZ JÚNIOR, 2008). Uma forma de promover o interesse no ensino da mesma é a utilização de recursos tecnológicos como materiais de apoio as aulas, sendo um destes, os sistemas de computação algébrica. Que como definidos por Alves (2002), são sistemas que manipulam símbolos matemáticos de acordo com as regras abstratas da matemática simbólica. Essa manipulação simbólica é realizada por uma determinada linguagem de programação, que não sendo ambígua permite a representação computacional de funções matemáticas. Uma das vantagens destas ferramentas é a compreensão que os alunos têm dos códigos que eles mesmos criam, além das respostas 260

3 rápidas do computador que permitem a estes testar diversos aspectos de um mesmo tema. Outro aspecto que não deve ser esquecido é a diversão que ela proporciona aos alunos, já que aumenta o interesse em determinada matéria e ainda promove a interação (ALVES, 2002). Existem ferramentas complexas que permitem a implantação de metodologias como esta em cenários universitários, porém as mesmas encontram-se longe da realidade dos ensinos, fundamental e médio, devido aos conhecimentos prévios que requerem e a dificuldade de ensinar os estudantes a usá-la. Algumas linguagens de programação que se aproximam deste objetivo como o portugol e o g-portugol, porém elas visam o ensino de programação e não de matemática, possuindo empecilhos, como os tipos de dados e as bibliotecas, que não abrangem diversas funções necessárias. Tendo isto em vista, este trabalho propôs o desenvolvimento de um sistema de computação algébrica que visa auxiliar o ensino de matemática no ensino fundamental. O software proposto possuirá versões para os sistemas operacionais Windows e Linux. 2. ENSINO AUXILIADO POR COMPUTADOR A utilização de computadores como ferramentas de ensino surgiu com seu advento comercial, sendo inicialmente utilizado somente como repositório de informações a serem passadas aos alunos, abordagem muito diferente da atual, mais sofisticada e desafiadora. (SECRETÁRIA DE EDUCAÇÃO A DISTANCIA, [entre 1998 e 2014]). No Brasil, o ensino desta modalidade iniciou-se nas universidades, passando ao segundo grau (LUCENA, 2010). Como definido por Valente ([199-]), a implementação do computador na educação depende basicamente de quatro ingredientes; o computador, o software educativo, o professor capacitado e o aluno, sendo todos de importâncias equivalentes. Atualmente, já há a percepção dos educadores de que o processo de informatização da sociedade brasileira é irreversível e que se a escola também não se informatizar, correrá o risco de não ser mais compreendida pelas novas gerações (LUCENA, 2010). 261

4 A Informática na Educação enfatiza a necessidade do professor da disciplina curricular ter conhecimento sobre os potenciais educacionais do computador e ser capaz de alternar adequadamente atividades tradicionais de ensino-aprendizagem e atividades que usam o computador (SECRETÁRIA DE EDUCAÇÃO A DISTANCIA, [entre 1998 e 2014]). Tornando-se assim visível tanto a evolução do computador como ferramenta de ensino, quanto a necessidade de ser utilizado de maneira sábia de forma a favorecer o ensino no contexto educativo atual. 2.1 SOFTWARE EDUCATIVO personalizar sua participação junto ao programa, decidindo a quantidade de tempo gasto em cada tópico e determinando seus passos de aprendizado, atualmente a maioria das metodologias visa substituir o material didático ou alguma função do professor, tais quais, apresentação, aquisição e até o ensino (GONÇÁLVEZ; CANESIN 2002). Demonstrando o potencial que os sistemas educativos têm de auxiliarem o ensino, por permitirem uma maior atuação do aluno sobre o processo de aprendizagem, através de uma maior interação com o material de ensino, gerando um interesse pela disciplina. A aprendizagem pode ocorrer basicamente de duas formas distintas, com a informação sendo memorizado ou processado pelos esquemas mentais, o que gera um fortalecimento do mesmo (SECRETÁRIA DE EDUCAÇÃO A DISTANCIA, [entre 1998 e 2014]). Neste quesito uma das vantagens dos softwares educativos é que os estudantes podem aprender melhor e mais rapidamente quando são estimulados por um alto nível de interatividade, além de poderem Computador como Máquina de Ensinar Esta modalidade pode ser caracterizada como uma versão computadorizada dos métodos tradicionais de ensino. As categorias mais comuns são os tutoriais, exercício e prática ("drill-and-practice"), jogos e simulação (VALENTE, 199-). Esta categoria é caracterizada pelo uso de computadores para promover o aprendizado, operando como um agente que inserido em um 262

5 ambiente de ensino fornece um novo mecanismo de transmissão de informações (GONÇÁLVEZ; CANESIN, 2002). Modelo útil por informatizar técnicas de ensino previamente estabelecidas, porém não permitindo uma interatividade semelhante ao computador como ferramenta de ensino Computador como Ferramenta de Ensino Nesta modalidade o computador passa de um instrumento que ensina o aprendiz a uma ferramenta com a qual desenvolve algo, com o aprendizado ocorrendo por uma tarefa executada por intermédio do computador (VALENTE, [199-]).... o treinamento baseado em computadores focaliza a utilização dos computadores como facilitadores do aprendizado de tarefas específicas em um determinado domínio do conhecimento, empregando quase sempre simulações computacionais em seus estágios (GONÇÁLVEZ; CANESIN, 2002, p.2). Ainda de acordo com Valente [199-?], Estas tarefas podem ser a elaboração de textos, usando os processadores de texto; pesquisa de banco de dados já existentes ou criação de um novo banco de dados; resolução de problemas de diversos domínios do conhecimento e representação desta resolução segundo uma linguagem de programação; controle de processos em tempo real, como objetos que se movem no espaço ou experimentos de um laboratório de física ou química; produção de música; comunicação e uso de rede de computadores; e controle administrativo da classe e dos alunos. Em seguida serão apresentados somente alguns exemplos destes diferentes usos. No referente a resolução de problemas pelo computador, segundo Valente [199-], esta modalidade visa o uso do computador para propiciar um ambiente de aprendizado baseado na resolução de problemas, neste caso o computador adiciona uma nova dimensão ao permitir que o aprendiz expresse a resolução por meio de uma linguagem de programação, possibilitando assim uma série de vantagens, entre elas, que as mesmas 263

6 são precisas e não ambíguas, podendo serem vista como uma linguagem matemática, modelando o problema por uma solução formal e concisa, e podendo verificar a resposta através de sua execução, testando ideias e conceitos, e corrigindo caso exista algo errado. Algumas linguagens de programação foram criadas tendo estas preocupações em vista, sendo que Logo é a mais conhecida, tendo sido amplamente utilizado tanto a linguagem como a metodologia entre os alunos do 1º, 2º e 3º graus e educação especial (MENEZES, [199-]). Este modelo é muito útil por permitir a adição de uma nova dimensão no ensino auxiliado por computadores, permitindo que o aluno construa seu conhecimento através da criação de algo novo, que entre outras opções, pode ser a resolução de um problema expressa através de uma linguagem de programação, que permite o teste da resolução do aluno, além do mesmo poder realizar a simulação em diferentes cenários, tornando a aprendizagem mais interativa e divertida. 3. ENGENHARIA DE SOFTWARE Na definição de Sommerville (2007, p.5) A engenharia de software é uma disciplina de engenharia relacionada com todos os aspectos da produção de software, desde estágios iniciais de especificação do sistema, até sua manutenção, depois que este entrar em operação. Sendo a pedra angular desta a qualidade, qualquer abordagem deve estar fundamentada em um comprometimento pela qualidade e aperfeiçoamento constante, que por sua vez leva a melhores modelos (PRESSMAN, 2011). Isso porque ela nasceu da necessidade de aprimorar o desenvolvimento de softwares, que passou por uma crise devido à inserção de hardware baseado em circuitos integrados no mercado, este com um poder de processamento muito superior, passou a permitir que uma imensa gama de novos programas muito mais poderosos e complexos que os anteriores surgissem, porém com esta nova complexidade e falta de disciplina no desenvolvimento passaram a haver grandes atrasos, estouro de orçamento e desempenho insatisfatório (SOMMERVILLE, 2007). 264

7 Assim permitindo que os programas produzidos possuam uma maior qualidade e ao mesmo tempo evitem diversos problemas que costumam englobar o processo de desenvolvimento. 3.1 UML De acordo com Guedes (2004), A UML (Unified Modeling Language) é uma linguagem de modelagem utilizada para modelar sistemas computacionais, que nos últimos anos têm se tornado a linguagem padrão adotada internacionalmente, seu objetivo é auxiliar os engenheiros de software a definir suas características, tais quais seus requisitos, comportamentos, e suas necessidades físicas antes do sistema começar a ser desenvolvido. O UML surge em 1997 na sequência de um esforço de unificação de três das principais linguagens de modelação orientadas por objectos (OMT, Booch e OOSE). Seguidamente, adquiriu o estatuto de norma no âmbito da OMG e da ISO, tendo vindo a ser adoptado progressivamente pela indústria e academia em todo o mundo (SILVA; VIEIRA, 2001, p.138). Guedes (2004), demonstra a necessidade de se modelar qualquer sistema antes de iniciar a implementação do mesmo, de forma a permitir que estes possuam qualidade, possam ser concluído em tempo hábil, e mantenha uma documentação extremamente detalhada, precisa e automatizada, permitindo-o ser mantido com facilidade e crescer, sem que novas alterações produzam novos erros. Desta forma servindo como uma espécie de planta do programa a ser produzido, facilitando o processo de implementação, e desta forma tornando-o mais rápido e barato. 3.2 Interação Humano Computador O termo interface humana computador (IHC) surgiu na segundo metade dos anos 80, para designa um novo campo de estudo, preocupado não apenas com o designer de interfaces, mas também com o foco de interesse e demanda do público (GUEDES, 2009). Não existindo uma definição precisa para a mesma devido à dificuldade de formar um conceito sólido, preferindo defini-la como a área 265

8 preocupada com design, avaliação e implementação de sistemas computacionais interativos para uso humano, e, ainda, com o estudo dos principais fenômenos subjacentes a eles (ROCHA; BARANUSCA, 2003). De modo que em geral, busca forma de melhorar a interação entre o usuário e o sistema informatizado, tornando assim a experiência mais prazerosa, aumentando o interesse do utilizador com o sistema. de instruções (de uma para muitas), a notação da linguagem está mais próxima do problema a ser resolvido do que o assemble. Funcionando assim como uma maneira de definir ao computador como realizar uma determinada tarefa através de uma linguagem mais simples do que a utilizada pela máquina, podendo também em diversos casos ser facilmente portados para outros modelos de computadores. 4. LINGUAGENS DE PROGRAMAÇÃO Uma linguagem de programação funciona como um meio de comunicação entre o indivíduo e um determinado tipo de computador, fazendo a ligação entre o pensamento humano e o modelo requerido para o processamento pela máquina (TOSCANI, 2001). Em relação à definição de Sammet (1972), uma linguagem de programação é um conjunto de caracteres e regras que quando combinadas obtém-se as seguintes características: conhecimento de código de máquina é desnecessário, existe uma boa portabilidade para outras máquinas, existe uma expansão 4.1 GERAÇÃO DE SOFTWARES Como demonstra Price e Toscani (2001) Um tradutor no contexto de linguagem de programação é um software que recebe como entrada um programa escrito em uma linguagem de programação (Linguagem Fonte) e produz como resultado um programa equivalente em outra linguagem (Linguagem Objeto). A principal razão pela qual tal tradução é desejada é a capacidade de transpor as instruções escritas em uma determinada linguagem de programação para uma linguagem que o hardware seja capaz de executar (GRUNE, 2001). 266

9 E segundo Alencar e Toscani (2001), os tradutores podem ser classificados em: Montadores (assemblers) São os responsáveis por converter o código em assembly para a linguagem de máquina. Macro-assemblers Semelhante aos montadores, porém permitem que um comando seja expandido para uma sequência de comando antes de a tradução ocorrer. Compiladores São tradutores, que transformam um código fonte escritos em uma linguagem de alto nível em um programa equivalente em linguagem de máquina. Pré-Compiladores, Pré- Processadores ou Filtros Mapeiam instruções escritas em uma linguagem de alto nível estendida para instruções da linguagem original. Interpretadores São processadores que normalmente recebem um código intermediário, gerado com base em uma linguagem de alto nível, e produzem a execução deste código, sem mapeá-lo para a linguagem de máquina. Alguns interpretadores, porém não utilizam o código intermediário, agindo diretamente sobre o código fonte. Em suma esse programa é o responsável pela tradução das instruções escritas para o computador em uma determinada linguagem de 266 programação para a linguagem que a máquina executa, esta tradução pode ser realizada no momento da execução por um interpretador ou pode ser traduzida previamente por compilador ou assembler, sendo executado posteriormente pelo carregamento do programa. 5. COMPUTAÇÃO ALGÉBRICA De acordo com Alvés (2002), denomina-se computação algébrica (CA) a manipulação de símbolos matemáticos realizadas por um computador, utilizando para isso as regras abstratas da matemática simbólica. A principal diferença entre um sistema de computação algébrica e uma calculadora simples é que os sistemas de computação algébrica tratam o problema de forma simbólica aumentando assim sua precisão e permitindo a resolução de problemas literais, manipulando letras em vez de números (SANT-ANNA, 2006). Segundo Alvés (2002, p.16), nos sistemas de CA encontram-se 267

10 implementadas, por exemplo, regras de álgebra, trigonometria e cálculo, de modo que pesquisadores e estudantes podem derivar integrar, obter a solução de equações diferenciais, simplificar expressões, representar graficamente campos escalares, vetoriais e curvas paramétricas. Além dos comandos usuais, esses sistemas permitem um fácil e rápido desenvolvimento de programas matemáticos, através de um repertório vasto de funções e operações. De forma que, sua utilização tem-se intensificado, sendo cada vez mais importante na pesquisa e educação. As tarefas matemáticas típicas de um sistema de computação algébrica incluem: cálculos aritméticos, simplificações de expressões algébricas, substituições de símbolos em expressões, resoluções de equações e sistemas de equações; cálculos matriciais, de derivadas e integrais; resoluções de equações diferenciais ordinárias e parciais; Existem diversos softwares de computação algébrica, comerciais, como os Maple e o Mathematica, ou gratuitos como o Maxima (BARTOLOSSI, 2012). Em suma esses sistemas são ferramentas excelentes para a representação computacional de funções matemáticas, permitindo a descrição simbólica das mesmas além de possuírem diversas funções implementadas de forma a facilitar a representação matemática. 6. MODELAGEM DA LINGUAGEM Inicialmente realizou-se um levantamento bibliográfico para a definição dos atributos da linguagem, a pesquisa se deu em livros voltados ao ensino de matemática, os Parâmetros Curriculares Nacionais e outros materiais pedagógicos, moldando a sintaxe, funções, operadores aritméticas, lógicos e relacionais, entre outros aspectos da linguagem, de forma a representar esses conteúdos de maneira eficiente computacionalmente. A próxima etapa consistiu em utilizar as informações obtidas para elaborar a estrutura da linguagem em notação BNF. Também foram definidas quais funções foram desenvolvidas para a biblioteca do sistema. Durante a pesquisa, foi verificado que o 1º e 2º ciclo do ensino fundamental dificilmente poderá fazer uso do software, uma vez que, durante essa etapa da aprendizagem os alunos 268

11 estão se familiarizam com o sistema numérico, seus conceitos e operações básicas. Por sua vez o 3º ciclo, pode utilizar o software de forma a aprimorar sua experiência, tendo em vista sua aplicabilidade aos seguintes conteúdos ministrados nessa etapa escolar: estudo dos números e operações (aritmética e álgebra), estudo dos espaços e forma (geometria), estudo das grandezas e medidas, estatísticas e resolução de problemas. Sendo o objetivo da linguagem o auxílio do ensino de matemática, a primeira medida tomada foi a seleção dos operadores, sendo que além dos quatro operadores clássicos, foram escolhidos também os de resto da divisão, exponenciação e raiz, e seus símbolos equivalentes, que são: + (soma), - (subtração), / (divisão), * (multiplicação), % (resto da divisão), ^ (exponenciação) e $ (raiz). A ordem de execução dos operadores são exponenciação e raiz, seguida de multiplicação, divisão e resto da divisão e, por fim, soma e subtração, em caso de operadores com a mesma precedência a execução ocorre da esquerda para a direita. Em seguida ocorreu a escolha dos operadores relacionais, que buscavam ser semelhantes a seus símbolos na matemática, sendo eles: == (igual), <> (diferente:), > (maior), >= (maior igual), < (menor) e <= (menor igual). Esta etapa consistiu na escolha dos tipos de dados das variáveis, já que os problemas abordados aqui consistem basicamente de números naturais e racionais, foram escolhidas formas de armazená-los através dos tipos de variáveis inteiro e real. Também foi criado a variável letra que nada mais é do que uma representação de um caractere para um determinado valor numérico armazenado na variável. A etapa seguinte foi a criação do modelo de declaração de variável, sendo escolhido o método estático, tanto para facilitar a implementação do interpretador, quanto a compreensão dos alunos. O modelo de declaração de variável criado foi: <tipo> <nome>. É possível ainda declarar várias variáveis do mesmo tipo ao mesmo tempo, bastando colocar uma vírgula entre os nomes das variáveis, ficando: <tipo> <nome>, <nome>, De acordo com a definição de expressões, são compostas por número, operadores matemáticos ou lógicos e parênteses, sendo que os 269

12 últimos fazem a expressão envolta serem processados antes de qualquer outro operador, no caso da expressão conter mais de um operador, ou outros parênteses, eles são processados em ordem normal. No caso da existência de mais de um parêntese, eles são executados da esquerda para a direita. A etapa seguinte consistiu na criação o modelo de blocos, que são formas de delimitar áreas que contêm instruções, podendo ser utilizadas nos testes condicionais, laços de repetição, ou ainda na declaração de funções. Dentro desta linguagem um bloco é criado utilizando a palavra inicio para delimitar seu começo e fim para delimitar seu final. Dentro da definição criada, uma determinada expressão é composta por valores numéricos, variáveis, operandos e parênteses, retornando sempre um valor real, que quando atribuído a uma variável inteira ou caractere é automaticamente convertido. se i < 12 fim Uma função é declarada pelo seu tipo de valor de retorno, seu nome, os parâmetros que recebera entre parênteses e separados por vírgula, deixados em branco caso não receba parâmetros e, no fim, o bloco que contem suas instruções. Como em: Inteiro fibbonachi(inteiro posição) inicio fim Por fim, foram definidas as estruturas de controle, teste condicional e laços de repetição, o teste condicional é o se, composto da palavra se seguida por uma operação condicional e um bloco que será executado se a expressão for verdadeira, podendo ser seguido de senão com um bloco executado se a expressão for falsa. Por exemplo: ou 407 se (i < 12) inicio senão inicio 270

13 Por fim foram criados os laços de repetição, enquanto, faça e para. O teste condicional enquanto é composto pela palavra enquanto seguida de uma condição e um bloco, que será executado enquanto a condição for verdadeira, exemplo: variável executada no fim do bloco, com o bloco em sequência, por exemplo. para(i; i < 12; i+1) inicio Fim enquanto i < 12 inicio i = i -1 fim Por sua vez o faça é composto de faça um bloco seguido de enquanto com o teste condicional. Sua diferença para o enquanto é que mesmo que a condição seja falsa o bloco será executado ao menos uma vez, pois o teste é realizado apenas no fim do bloco. Exemplo: i = 10 faça inicio i = i 1 enquanto (i > 12) O laço de repetição para é composto de para seguida de parênteses, que contêm uma variável utilizada no teste, um ponto e vírgula, o teste utilizado, e uma manipulação desta 7. MODELAGEM DO SISTEMA Em seguida foi realizada a engenharia de software, de forma aprimorar a qualidade do produto final e facilitar as ações de desenvolvimento, sendo elaborados os diagramas de atividades para o compilador, e para o editor foram feitos os diagramas de caso de uso e de atividades. A linguagem na qual foram criados os diagramas é a linguagem UML (Unified Modeling Language Linguagem de Modelagem Unificada). E para a criação dos diagramas foi utilizado o software Astah, um programa para modelagem UML multiplataforma, compatível com Windows e Linux, sua escolha se deve tanto a eficiência como a sua simplicidade. Para as modelagens referentes ao editor os diagramas escolhidos foram os diagramas de caso de uso e de atividades, permitindo assim uma visão C&D-Revista Eletrônica da FAINOR, Vitória da Conquista, v.10, n.3, p , set./dez

14 clara e concisa dos requisitos que o sistema possui, e as ações que foram realizadas para alcançá-los. E também para o interpretador, parte responsável por executar o código fonte, o diagrama escolhido para este módulo é o diagrama de atividades, permitindo, assim, uma visão mais clara das atividades realizadas por ele. 8. IMPLEMENTAÇÃO DO INTERPRETADOR A linguagem escolhida para a implementação do interpretador foi a C, sendo que sua escolha deve-se ao fato dela apresentar uma série de vantagens que a torna a ideal para o desenvolvimento do software proposto. Ela permite a criação de programas concisos, organizados e de fácil entendimento, por ser uma linguagem voltada aos programadores. A linguagem C apresenta poucas restrições permitindo uma maior liberdade para o desenvolvimento, e possíveis erros são amigável e estruturada, encorajando bons hábitos de programação, oferece portabilidade, geração de códigos executáveis compactos e rápidos, interação com o sistema operacional, confiabilidade e simplicidade (LINHARES, s.d). Outra vantagem da linguagem C é que por possuir características tanto das linguagens de baixo nível quanto das linguagens de alto nível, permitindo assim o desenvolvimento de programas robustos e eficientes (CALLE; GRADVOHL, 2009). O ambiente de desenvolvimento que foi utilizado para o desenvolvimento do interpretador foi o KDevelop, um ambiente de desenvolvimento simples e eficiente. O interpretador foi dividido em três módulos, o parser responsável por obter os tokens do arquivo-fonte e passá-los a outras partes do programa, executar as operações aritméticas, obter o valor das variáveis e chamar as funções e obter seu retorno. O lib que contém as bibliotecas internas e é responsável por executar a chamada para bibliotecas externas. E, por fim, o interpretador, responsável pelo loop de execução do código fonte, por gerenciar os outros dois módulos, declarar variáveis e tratar os comandos. Esses módulos foram compilados em separado, e unidos durante a etapa de linkagem do programa, formando um único arquivo binário. Para facilitar a manutenção das bibliotecas e sua implementação, as mesmas responsáveis por executar C&D-Revista Eletrônica da FAINOR, Vitória da Conquista, v.10, n.3, p , set./dez

15 funções matemáticas e retornar seu valor foram implementas em programas separados na pasta Bibliotecas, contida na pasta com o binário do interpretador. Estes arquivos com as funções foram compilados e linkados separadamente, onde cada biblioteca é um executável próprio. Sendo que o resultado da execução de uma delas é retornado para o saído padrão por um printf, e quando chamada pelo interpretador a saída padrão do programa é redirecionado para o interpretador, onde a resposta é tratada. Este redirecionamento e a chamada do programa externo são executados por funções que pertence ao padrão Posix, de forma que apesar de executarem tarefas dependentes de aspectos do sistema operacional são multiplataformas. O interpretador lê o conteúdo da pasta Biblioteca e lista seus programas em tempo de execução, de forma que para expandir a biblioteca do interpretador, basta criar programas que sigam a lógica utilizada e adicioná-los na pasta bibliotecas. O interpretador foi criado visando ser multiplataforma assim possuindo alguns trechos de código criados com esta finalidade. Sendo compilado e testado com sucesso para os sistemas operacionais Windows e Linux, sem necessidade de alterações no código de uma versão para a outra, nem de macros condicionais. As bibliotecas da linguagem foram criadas em seguida, sendo escolhidas as seguintes funções: area_cilindro, area_circulo, area_cubo, area_esfera, area_paralelepipedo, area_piramide_3, area_piramide_4, area_triangulo, media, mediana, moda, pi, volume_paralelepipedo, volume_cilindro, volume_piramide_3, volume_piramide_4, volume_cubo, volume_esfera. 9. DESENVOLVIMENTO DO EDITOR Para o desenvolvimento da interface gráfica foram escolhidas duas linguagens de programação, uma para a criação de uma interface gráfica voltada para computadores de baixo desempenho desenvolvida em C++ com a API (Application Programming Interface) QT e outra criada em Java com a API JavaFX visando uma maior qualidade gráfica. A escolha do C++ se deve ao fato que esta ao contrário da C possui a orientação a objetos, tornando a criação de componentes visuais simplificada. C&D-Revista Eletrônica da FAINOR, Vitória da Conquista, v.10, n.3, p , set./dez

16 Para a interface gráfica em si foi selecionado o framework QT e o ambiente de desenvolvimento QTCreator, que integra o framework. Já para a interface gráfica principal foi criada utilizando a linguagem de programação Java 8 e a biblioteca gráfica JavaFX. O Java 8 é a release mais recente do Java que contém novas funcionalidades, aprimoramentos e correções de bug para aumentar a eficiência do desenvolvimento e execução de programas Java. A nova release do Java primeiro é disponibilizada para desenvolvedores, a fim de permitir um tempo adequado de teste e certificação, e só então fica disponível no site java.com para que usuários finais façam download. Funcionalidades do Java 8 Aqui há um breve resumo das melhorias incluídas na release 8 do Java: a) Métodos de Expressão Lambda e Extensão Virtua: O destaque do Java SE 8 é a implementação de expressões Lambda e funcionalidades de suporte para a linguagem de programação e plataforma Java; b) API de Data e Hora: Essa nova API permitirá que os desenvolvedores tratem data e hora de maneira mais natural, clara e fácil de entender; c) Nashhorn JavaScript Engine: Uma nova implementação leve de alto desempenho do motor JavaScript foi integrada ao Jdk e está disponível para aplicações Java por meio das APIs existentes; d) Maior Segurança: A lista manual existente de métodos sensíveis do chamador foi substituída por um mecanismo que identifica com precisão esses métodos e permite que seus chamadores sejam descobertos com confiança (INFORMAÇÕES DO JAVA 8, s.da). A escolha do Java 8 se deu pela facilidade de desenvolvimento da linguagem, que possui tipos dinâmicos nativamente, além de uma utilização simples de linguagem regular, das melhorias proporcionadas pela nova versão, que incluem uma maior escritabilidade e legibilidade, proporcionadas pelas expressões Lambda. O JavaFX 8, biblioteca visual inclusa no Java 8 por sua vez proporciona uma maneira simples e poderosa de desenvolver aplicações visuais agradáveis, com base em um grafo de cena onde são inseridos os componentes visuais. O JavaFX expande o poder do Java, permitindo que os C&D-Revista Eletrônica da FAINOR, Vitória da Conquista, v.10, n.3, p , set./dez

17 desenvolvedores usem qualquer biblioteca Java em aplicações JavaFX. Dessa forma, os desenvolvedores podem expandir seus recursos no Java e aproveitar a tecnologia de apresentação que o JavaFX fornece para criar experiências visuais envolventes. Como usuário, você será capaz de executar as aplicações JavaFX em um browser ou arrastá-las e soltá-las na área de trabalho. Destaques do JavaFX: a) Permite que os desenvolvedores integrem gráficos de vetor, recursos Web de animação, áudio e vídeo em uma aplicação rica, interativa e imersiva; b) Estende a tecnologia Java permitindo o uso de qualquer biblioteca Java em uma aplicação JavaFX; c) Permite um fluxo de trabalho eficiente de designer para desenvolvedor, no qual os designers podem trabalhar com suas ferramentas preferidas, em colaboração com desenvolvedores (INFORMAÇÕES GERAIS SOBRE O JAVAFX, s.db). Como a JavaFX 8 ainda não possui suporte nativo a Rich Text em áreas de texto, foi utilizada a biblioteca externa RichTextFx para essa finalidade. Futuras implementações do Java8 devem implementar esta funcionalidade através do componente RichTextEditor, que estava programada para o Java8u40 porém foi prorrogado para o Java 9. Também existe a classe SwingNode que permite a utilização de componentes Swing no Javafx, porém seu resultado foi inferior que o RichTextFx durante a implementação. A criação da interface utilizando QT e C++ foi realizada sem necessidade de utilizar trechos de código visando à compatibilidade entre diferentes sistemas operacionais. Entretanto o mesmo apresentou uma leve diferença na interface gráfica entre as proporções dos componentes quando executado em Windows e Linux, mas nada que altere significativamente o resultado final. A Figura 1 exibe a imagem da interface criada utilizando C++ e o framework QT executada no Linux. Finalmente, a Figura 2 mostra um exemplo de uma implementação de um algoritmo de fatoração na linguagem criada. C&D-Revista Eletrônica da FAINOR, Vitória da Conquista, v.10, n.3, p , set./dez

18 Figura 1: Exemplo de declaração de Função. Fonte: Elaborado pelo autor Figura 2: Exemplo de uma Fatoração. Fonte:Elaborado pelo autor. C&D-Revista Eletrônica da FAINOR, Vitória da Conquista, v.10, n.3, p , set./dez

19 10. CONSIDERAÇÕES FINAIS Durante a pesquisa realizada foi possível constatar as vantagens que a utilização de ferramentas tecnológicas pode oferecer aos professores como forma de auxílio ao ensino, permitindo a demonstração da matéria de forma mais atrativa aos alunos, aumentando a interação com o conteúdo, e a socialização, gerando uma aproximação com a realidade dos mesmos, e em alguns casos até promovendo a diversão. Como a matemática é uma das áreas de menor interesse por parte dos alunos, pode ser uma das maiores beneficiadas por estas ferramentas, sendo uma possível solução os sistemas de computação algébrica, porém também existem outras ferramentas que podem auxiliar o ensino da mesma, dentre elas: sistemas de simulação computacional, ferramentas de modelagens e jogos educativos. Consequentemente, existe uma vasta área de pesquisa que pode ser utilizada para assessorar o ensino de matemática, entretanto um empecilho é a resistência que muitos professores possuem quanto à adoção destas ferramentas em sala de aula, que pode ser vencida com instruções sobre como utilizar essas tecnologias e demonstrações de suas vantagens. DEVELOPMENT OF A MULTIPLATFORM COMPUTER ALGEBRA SYSTEM TO SUPPORT THE TEACHING OF MATHEMATICS ABSTRACT Nowadays is usual the teacher listen the students reclaim about math, and also manifest a strong apathy for mathematics, which is the base for the scientifically progress of one country, and also improve the logic, critic sense and investigative habits of the students. Keeping this in view, this work proposed the development of an algebraic computer system that aid the teachers in math education, using the computer as a form of incentive to the learning, helping in the innovation of the maths education, that in the most of cases is equal to the decades ago, increasing the distance of the reality of the students, enhancing the disinterest. The language was projected using the BNF notation, modeled using the UML diagrams, and implemented in the C language with the recursive descendant technique in an interpreter. Two graphical interfaces were created to the source code edition, trying to make the software nice for students, one created in C++ with the QT framework for the low performance computers, and the other, more elaborated, in Java with the Java FX library. C&D-Revista Eletrônica da FAINOR, Vitória da Conquista, v.10, n.3, p , set./dez

20 Key-Words: Algebraic computer system, Aid maths education, Tool to aid teaching, Compilers, interpreters. Artigo recebido em 20/06/2017 e aceito para publicação em 13/08/2017 REFERÊNCIAS ALVES, D.T.; AMARAL, J.V.; MENDEIROS NETO, J. F. Aprendizagem de electromagnetismo via programação e computação simbólica. Revista Brasileira de Ensino de Física, São Paulo, v.24, n.2, p BORTOLOSSI, H.J.; PESCO, D.U.; REZENDE, W.M. Computação simbólica no ensino médio com o software gratuito geogebra. Monti Video. In: Conferencia Latino Americana de Greogebra. 1., 2012, Monti Video Anais... Monti Video Disponível em < /22.pdf>. Acesso em 15 maio SECRETÁRIA DE EDUCAÇÃO A DISTANCIA. O computador na Sociedade do conhecimento. [entre 1998 e 2014]. Disponível em < mputador-sociedadeconhecimento.pdf>. Acesso em 28 jul CALLE, J.L.D.; GRADVOHL, L.S. Introdução a linguagem C. CENAPAD, Disponível em: < s/treinamentos/apostilas/apostila_c.pdf> Acesso em 24 maio GUEDES, G.T.A. UML: Uma Abordagem Prática. 1ª ed. São Paulo: Novatec, GUEDES, G. Interface Humana Computador: prática pedagógica para ambientes virtuais. Teresina: Editora Gráfica da UFPI, Disponível em: < al_online/disciplinas/video/livro_gildasio. pdf>. Acesso em 24 maio GONÇALVES, F.A.S.; CANESIN, C.A. Java Applets para um software educacional distribuidos em eletrônica de potêncial. Sba Controle & Automação, Campinas, v. 13, n. 3, p , Sept./Dec Disponível em: < 13n3.pdf> Acesso em 24 maio GONZATTO, M. Por que 89% dos estudantes chegam ao final do Ensino Médio sem aprender o esperado em matemática? Zero Hora, Porto Alegre, 27 out Disponível em: < Acesso em 24 maio GRUNE, D.; BAL, H.E.; JACOBS, C.J.H.; LANGENDOEN, K.G. Projetos modernos de compiladores: Implementação e Aplicações. 1ª ed. Rio de Janeiro: CAMPUS, Informações do Java 8. Java.com s.d. Disponível em: < aq/javafx.xml> Acesso em 11 nov Informações gerais sobre o JavaFX. Java.com s.d. Disponível em: < aq/javafx.xml> Acesso em 11 nov C&D-Revista Eletrônica da FAINOR, Vitória da Conquista, v.10, n.3, p , set./dez

21 LINHARES, R. R. Aspectos básicos da linguagem C. dainf.ct.utfpr.edu.br s.d. Disponível em: < /prof/common/c/aspec.htm> Acesso em 24 maio LINTZ, R.G. História da Matemática. 1ª ed. Blumenau: FURB, LUCENA, M. DIRETRIZES PARA A CAPACITAÇÃO DO PROFESSOR NA AREA DE TECNOLOGIA EDUCACIONAL: CRITÉRIOS PARA A AVALIAÇÃO DE SOFTWARES EDUCACIONAIS Disponíveis em: <ftp://vpn.fpte.br/cursos/pos_tecnologia _Educacional_T1/Aula_080510_Prof_Le onidesjustiniano/crit_rios%20avalia o %20software%20educacional.pdf> Acesso em <15 maio 2014> PAZ JÚNIOR, G.T. As dificuldades no Ensino de Matemática. Webartigos.com, Disponível em: < Acesso em 24 maio PRICE, A.M.A. TOSCANI, S.S. Implementação de Linguagens de Programação: Compiladores. 1ª ed. Porto Alegre: Bookman, SILVA, A.M.R. VIEIRA, C.A.E. UML Metodologias e Ferramentas Cases: Linguagem de Modelação UML, Metodologias e Ferramentas CASE. 1ª ed. Porto - Lisboa: Centro Atlântico, SOMMERVILLE, I. Engenharia de Software. 8ª ed. São Paulo: Addison Wesley Edito, VALENTE, J.A. Diferentes usos do Computador na Educação. Ffalm.br, [199-]. Disponível em < susoscomputador.pdf> Acesso em 15 maio 2014 PRESSMAN, R.S. Engenharia de Software: Uma abordagem profissional. 7ª ed. Porto Alegre: AMGH Editora, ROCHA, H.V.; BARANAUSKAS, M.C.C. Design e avaliação de interfaces humano-computador. 1ª ed. São Paulo: IME USP, SAMMET, J.E. Programming Languages: History and Future. Communication of the ACM, v.15, n.7, p , SANT-ANNA, E.C.G. et al. Aplicação de um sistema de computação algébrica como ferramenta educacional para o apoio ao ensino do cálculo diferencial e integral. In: Encontro latino americano de iniciação cientifica, 10., São José dos Campos. Anais São José dos Campos: Universidade do Vale do Paraíba Disponível em < 006/inic/inic/04/INIC ok.pdf> Acesso em 15 maio C&D-Revista Eletrônica da FAINOR, Vitória da Conquista, v.10, n.3, p , set./dez

Desenvolvimento de um sistema de computação algébrica multiplataforma para o auxilio do ensino de matemática

Desenvolvimento de um sistema de computação algébrica multiplataforma para o auxilio do ensino de matemática Desenvolvimento de um sistema de computação algébrica multiplataforma para o auxilio do ensino de matemática 1 Victor Fernando Conti; 1 Elvio Gilberto da Silva; 1 Patrick Pedreira Silva; 1 Rosane Maria

Leia mais

Processos de software

Processos de software Processos de software 1 Processos de software Conjunto coerente de atividades para especificação, projeto, implementação e teste de sistemas de software. 2 Objetivos Introduzir modelos de processos de

Leia mais

Algoritmos e Programação

Algoritmos e Programação ESTADO DE MATO GROSSO SECRETARIA DE ESTADO DE CIÊNCIA E TECNOLOGIA UNIVERSIDADE DO ESTADO DE MATO GROSSO CAMPUS UNIVERSITÁRIO DE SINOP FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS CURSO DE ENGENHARIA ELÉTRICA

Leia mais

Sistema Computacional

Sistema Computacional Algoritmos e Lógica de Programação Conceitos Básicos Abstração Reinaldo Gomes reinaldo@cefet-al.br O que é um? Integração de componentes atuando como uma entidade, com o propósito de processar dados, i.e.

Leia mais

Análise e projeto de sistemas

Análise e projeto de sistemas Análise e projeto de sistemas Conteúdo: UML O processo de desenvolvimento de software Prof. Patrícia Lucas A linguagem de modelagem unificada (UML) A UML teve origem em uma tentativa de se unificar os

Leia mais

Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Introdução. Geovane Griesang

Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Introdução. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Introdução geovanegriesang@unisc.br Processadores de linguagem Linguagens de programação são notações para se descrever

Leia mais

Conversões de Linguagens: Tradução, Montagem, Compilação, Ligação e Interpretação

Conversões de Linguagens: Tradução, Montagem, Compilação, Ligação e Interpretação Conversões de Linguagens: Tradução, Montagem, Compilação, Ligação e Interpretação Para executar uma tarefa qualquer, um computador precisa receber instruções precisas sobre o que fazer. Uma seqüência adequada

Leia mais

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan Introdução aos computadores, à Internet e à World Wide Web Prof. Marcelo Roberto Zorzan História do Java Origem Linguagem desenvolvida pela Sun Microsystems Sintaxe similar ao C++ Inicialmente chamada

Leia mais

Conceitos Básicos de Programação

Conceitos Básicos de Programação BCC 201 - Introdução à Programação Conceitos Básicos de Programação Guillermo Cámara-Chávez UFOP 1/53 Conceitos básicos I Variável 2/53 Conceitos básicos II Posição de memoria, identificada através de

Leia mais

Programação Python. Nesta aula... 1 Programação. 2 Python. Operadores e Operandos Variáveis, Expressões, Instruções Funções Ciclos Comentários

Programação Python. Nesta aula... 1 Programação. 2 Python. Operadores e Operandos Variáveis, Expressões, Instruções Funções Ciclos Comentários Nesta aula... 1 2 Introdução à - minor Ciência de computadores: incluí tópicos de matemática (linguagens formais para especificar ideias) engenharia (projetar, juntar componentes para formar um sistema,

Leia mais

UML (Unified Modelling Language)

UML (Unified Modelling Language) UML (Unified Modelling Language) Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Referências: Booch, G. et al. The Unified Modeling Language User Guide

Leia mais

Algoritmos e Programação

Algoritmos e Programação ESTADO DE MATO GROSSO SECRETARIA DE ESTADO DE CIÊNCIA E TECNOLOGIA UNIVERSIDADE DO ESTADO DE MATO GROSSO CAMPUS UNIVERSITÁRIO DE SINOP FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS Algoritmos e Programação

Leia mais

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

Programação I A Linguagem C. Prof. Carlos Alberto Programação I A Linguagem C Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br 2 Origem A linguagem C foi desenvolvida em 1972, nos Laboratórios Bell, por Dennis Ritchie. Implementada

Leia mais

PROGRAMAÇÃO I. Introdução

PROGRAMAÇÃO I. Introdução PROGRAMAÇÃO I Introdução Introdução 2 Princípios da Solução de Problemas Problema 1 Fase de Resolução do Problema Solução na forma de Algoritmo Solução como um programa de computador 2 Fase de Implementação

Leia mais

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

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli Programa de computador sequência de comandos ou instruções executados por um computador com a finalidade de produzir um resultado e resolver um problema; Linguagem de programação método para a criação

Leia mais

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan Introdução aos computadores, à Internet e à World Wide Web Prof. Marcelo Roberto Zorzan História do Java Origem Linguagem desenvolvida pela Sun Microsystems Sintaxe similar ao C++ Inicialmente chamada

Leia mais

Introdução ao Python. Programa Computacional

Introdução ao Python. Programa Computacional Programa Computacional É um algoritmo escrito em uma linguagem computacional (C, Fortran, Pascal, MATLAB, Python, etc.). É a tradução do algoritmo para uma linguagem que será interpretada pelo computador.

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3. Linguagem de programação C 3.1. Conceitos

Leia mais

INF1013 MODELAGEM DE SOFTWARE

INF1013 MODELAGEM DE SOFTWARE INF1013 MODELAGEM DE SOFTWARE Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 1 O Paradigma Orientado a Objetos A Linguagem UML Descrição da Arquitetura 1 Programa

Leia mais

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

Introdução à Computação: Máquinas Multiníveis Introdução à Computação: Máquinas Multiníveis Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,

Leia mais

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior Meio pelo qual se pode indicar os passos que devem ser realizados pelo computador para resolver problemas; Através da linguagem,

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Marcelle Mussalli Cordeiro {mmussalli@gmail.com} Cordeiro Reflexão O que é software?? Cordeiro 2 O que é Software? Programa Dados de configuração Dados de documentação Tudo que esteja

Leia mais

Linguagens de Programação Classificação

Linguagens de Programação Classificação Classificação Classificação A proximidade que a linguagem de programação tem com a humana determina sua classe (o nível): Linguagem de máquina (primeira geração) Linguagem assembly - de montagem (segunda

Leia mais

Linguagem de Programação I Prof. Tiago Eugenio de Melo.

Linguagem de Programação I Prof. Tiago Eugenio de Melo. Linguagem de Programação I Prof. Tiago Eugenio de Melo tmelo@uea.edu.br www.tiagodemelo.info 1 Sumário Introdução Conceitos preliminares Introdução Variáveis Comandos Condicionais 2 Por que aprender a

Leia mais

4. Constantes. Constantes pré-definidas

4. Constantes. Constantes pré-definidas 4. Constantes Constantes pré-definidas O PHP possui algumas constantes pré-definidas, indicando a versão do PHP, o Sistema Operacional do servidor, o arquivo em execução, e diversas outras informações.

Leia mais

A utilização da realidade virtual e aumentada na criação de objetos educacionais

A utilização da realidade virtual e aumentada na criação de objetos educacionais Patrocínio, MG, junho de 2016 A utilização da realidade virtual e aumentada na criação de objetos educacionais Igor Acássio Melo (IFTM Campus Patrocínio) 1 ; Juliana Gonçalves (IFTM Campus Patrocínio)²;

Leia mais

MC-102 Aula 01. Instituto de Computação Unicamp

MC-102 Aula 01. Instituto de Computação Unicamp MC-102 Aula 01 Introdução à Programação de Computadores Instituto de Computação Unicamp 2016 Roteiro 1 Por que aprender a programar? 2 Hardware e Software 3 Organização de um ambiente computacional 4 Algoritmos

Leia mais

Compiladores. Motivação. Tradutores. Motivação. Tipos de Tradutores. Tipos de Tradutores

Compiladores. Motivação. Tradutores. Motivação. Tipos de Tradutores. Tipos de Tradutores Motivação Prof. Sérgio Faustino Compiladores Conhecimento das estruturas e algoritmos usados na implementação de linguagens: noções importantes sobre uso de memória, eficiência, etc. Aplicabilidade freqüente

Leia mais

V.2 Especificação Sintática de Linguagens de Programação

V.2 Especificação Sintática de Linguagens de Programação V.2 Especificação Sintática de Linguagens de Programação Deve ser baseada: No planejamento da Linguagem / Compilador Objetivos, Filosofia, Potencialidades,... Nos critérios de projeto/avaliação Legibilidade,

Leia mais

Introdução a Lógica de Programação

Introdução a Lógica de Programação Introdução a Lógica de Programação O processo de programação é uma conversa controlada entre um ser humano (tecnicamente preparado) e um computador Linguagem Linguagem de baixo nível Grande dificuldade,

Leia mais

Conceitos Básicos de Algoritmos

Conceitos Básicos de Algoritmos Conceitos Básicos de Algoritmos 35 TIPOS PRIMITIVOS Palavra-reservada: inteiro - define variáveis numéricas do tipo inteiro, ou seja, sem casas decimais Palavra-reservada: real - define variáveis numéricas

Leia mais

Linguagens de Programação

Linguagens de Programação Universidade Federal do Rio Grande do Norte Centro de Tecnologia Departamento de Computação e Automação Linguagens de Programação Professor Responsável: Luiz Affonso Henderson Guedes de Oliveira Prof.

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Linguagens de Programação: sintaxe e semântica de linguagens de programação e conceitos de linguagens interpretadas e compiladas Engenharia da Computação Professor: Críston Pereira

Leia mais

Projeto de Compiladores

Projeto de Compiladores Projeto de Compiladores FIR Faculdade Integrada do Recife João Ferreira 12 e 13 de fevereiro de 2007 Questionário 1. Em quais linguagens de programação você já programou? 2. O que você sabe sobre compiladores?

Leia mais

Linguagens de Programação

Linguagens de Programação Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Linguagens de Programação DCA0800 - Algoritmos e Lógica de Programação Heitor Medeiros 1 Tópicos da aula

Leia mais

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG Matriz Curricular FGGCOMP - Bacharelado em Ciência da Computação 0. Disciplinas Obrigatórias FGGCOMP.00 Cálculo I FGGELET.00 - Cálculo I / FGGMATE.00 - Cálculo Diferencial e Integral I FGGCOMP.00 Geometria

Leia mais

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

1 Introdução à Programação O que é? Para que serve?... 1 Nesta aula... Conteúdo 1 Introdução à Programação 1 1.1 O que é?................................. 1 1.2 Para que serve?............................. 1 2 Linguagens de programação 2 2.1 Programação estruturada........................

Leia mais

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG Matriz Curricular FGGCOMP - Bacharelado em Ciência da Computação 0. Disciplinas Obrigatórias FGGCOMP.00 Cálculo I FGGELET.00 - Cálculo I / FGGMATE.00 - Cálculo Diferencial e Integral I FGGCOMP.00 Geometria

Leia mais

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG Matriz Curricular FGGCOMP - Bacharelado em Ciência da Computação 0. Disciplinas Obrigatórias FGGCOMP.00 Cálculo I FGGELET.00 - Cálculo I / FGGMATE.00 - Cálculo Diferencial e Integral I FGGCOMP.00 Geometria

Leia mais

Introdução a programação Visão geral

Introdução a programação Visão geral Instituto Federal de Minas Gerais Campus Ponte Nova Introdução a programação Visão geral Professor: Saulo Henrique Cabral Silva Conceitos lógica/algoritmo A lógica é usada no dia a dia das pessoas para

Leia mais

LABORATÓRIO VIRTUAL EM SISTEMAS DE CONTROLE

LABORATÓRIO VIRTUAL EM SISTEMAS DE CONTROLE LABORATÓRIO VIRTUAL EM SISTEMAS DE CONTROLE Ana Cláudia Gomes 1, Agostinho Linhares Souza Folho 1, Luiz Affonso Guedes 1 Universidade Federal do Pará 1 Campus Universitário do Guamá {acgomes, affonso}@ufpa.br

Leia mais

SIGERIS SISTEMA DE GESTÃO DE REDES DE INFRAESTRUTURAS PREDIAIS 1 SIGERIS - SYSTEM OF MANAGEMENT OF PREDIAL INFRASTRUCTURE NETWORKS

SIGERIS SISTEMA DE GESTÃO DE REDES DE INFRAESTRUTURAS PREDIAIS 1 SIGERIS - SYSTEM OF MANAGEMENT OF PREDIAL INFRASTRUCTURE NETWORKS SIGERIS SISTEMA DE GESTÃO DE REDES DE INFRAESTRUTURAS PREDIAIS 1 SIGERIS - SYSTEM OF MANAGEMENT OF PREDIAL INFRASTRUCTURE NETWORKS Rafael Marisco Bertei 2, Héber Martins Oliveira 3, Josué Toebe 4 1 Projeto

Leia mais

Desenvolvimento de Aplicações Desktop

Desenvolvimento de Aplicações Desktop Desenvolvimento de Aplicações Desktop Conceitos Básicos de Programação Professor: Charles Leite O Desenvolvimento de Programas A programação consiste em indicar como o computador (hardware) deve trabalhar

Leia mais

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Processos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Objetivos Apresentar modelos de processos de software Descrever três modelos genéricos de processo e quando

Leia mais

Fundamentos de Programação 1

Fundamentos de Programação 1 Fundamentos de Programação 1 Slides N. 2 E / Prof. SIMÃO Slides elaborados pelo Prof. Robson Linhares elaborados pelo Prof. Robson Linhares http://www.dainf.ct.utfpr.edu.br/~robson/ Jean Marcelo SIMÃO

Leia mais

Linguagens de Programação

Linguagens de Programação O estudante estuda muito. Regras: 7 9 12 14. . Regras: 2 4 . Regras: 1 Representar através de uma árvore de derivação. 77 O estudante estuda muito.

Leia mais

Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores

Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores 2013-2 Compilador para a Linguagem Cafezinho Especificação dos trabalhos: T2 (Geração da Representação Intermediária e Análise

Leia mais

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

Conceitos de Linguagens de Programação - Características. Paavo Soeiro Conceitos de Linguagens de Programação - Características Paavo Soeiro Motivação Para que possa escolher uma linguagem apropriada ao problema. Melhorar o entendimento da linguagem utilizada. Facilitar o

Leia mais

Paradigmas de Programação

Paradigmas de Programação Paradigmas de Programação Prof.: Edilberto M. Silva http://www.edilms.eti.br Aula 2 Linguagens de Programação Desenvolvimento e execução de programas Características de linguagens Execução de programas

Leia mais

Programação de Sistemas (Sistemas de Programação) Semana 10, Aula 17

Programação de Sistemas (Sistemas de Programação) Semana 10, Aula 17 PCS3616 Programação de Sistemas (Sistemas de Programação) Semana 10, Aula 17 Linguagens e Compiladores Programação em linguagem de alto nível Escola Politécnica da Universidade de São Paulo Roteiro 1.

Leia mais

Linguagens e Compiladores

Linguagens e Compiladores Linguagens e Compiladores Aula 1: a) Critérios b) Noções de Compiladores e Interpretadores c) Usos da tecnologia de compilação d) Compiladores, filtros e pré-processadores e) Estruturação lógica de compiladores

Leia mais

Introdução à Computação

Introdução à Computação Introdução à Computação Jordana Sarmenghi Salamon jssalamon@inf.ufes.br jordanasalamon@gmail.com http://inf.ufes.br/~jssalamon Departamento de Informática Universidade Federal do Espírito Santo Agenda

Leia mais

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 03: FUNCIONAMENTO DE UM COMPUTADOR Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação O QUE É UM COMPUTADOR?

Leia mais

FERRAMENTA DE AUXÍLIO AO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE INTEGRANDO TECNOLOGIAS OTIMIZADORAS

FERRAMENTA DE AUXÍLIO AO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE INTEGRANDO TECNOLOGIAS OTIMIZADORAS FERRAMENTA DE AUXÍLIO AO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE INTEGRANDO TECNOLOGIAS OTIMIZADORAS Acadêmico: Roger Anderson Schmidt Orientador : Marcel Hugo Supervisor : Ricardo de Freitas Becker Empresa

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação CP41F Aula 2 Prof. Daniel Cavalcanti Jeronymo Conceito de algoritmo. Raciocínio lógico na construção de algoritmos. Estrutura de algoritmos. Universidade Tecnológica Federal

Leia mais

EPUSP PCS 2011 Laboratório Digital I. Uma ULA Simples

EPUSP PCS 2011 Laboratório Digital I. Uma ULA Simples Uma ULA Simples Versão 2015 RESUMO Esta experiência tem como objetivo o desenvolvimento do projeto de uma unidade lógica e aritmética simples que realiza quatro operações sobre dados de quatro bits. OBJETIVOS

Leia mais

Existem três categorias principais de linguagem de programação: linguagem de máquina, linguagens assembly e linguagens de alto nível.

Existem três categorias principais de linguagem de programação: linguagem de máquina, linguagens assembly e linguagens de alto nível. Aula 3 SOFTWARE (programas) Um programa (software) consiste em uma sequência de instruções escritas numa linguagem precisa chamada linguagem de programação. Estas instruções são traduzidas em um compilador,

Leia mais

Prof. Esp. Fabiano Taguchi

Prof. Esp. Fabiano Taguchi UML Prof. Esp. Fabiano Taguchi http://fabianotaguchi.wordpress.com fabianotaguchi@hotmail.com UML COMPETÊNCIA: Conhecer e desenvolver estudos de caso usando modelagem orientada a objeto. HABILIDADE: Conhecer

Leia mais

EPUSP PCS 2011 Laboratório Digital I. Uma ULA Simples

EPUSP PCS 2011 Laboratório Digital I. Uma ULA Simples Uma ULA Simples Versão 2013 RESUMO Esta experiência tem como objetivo o desenvolvimento do projeto de uma unidade lógica e aritmética simples que realiza quatro operações sobre dados de quatro bits. OBJETIVOS

Leia mais

COMPILAÇÃO. Ricardo José Cabeça de Souza

COMPILAÇÃO. Ricardo José Cabeça de Souza COMPILAÇÃO Ricardo José Cabeça de Souza www.ricardojcsouza.com.br Programas Código-fonte escrito em linguagem de programação de alto nível, ou seja, com um nível de abstração muito grande, mais próximo

Leia mais

Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação

Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação Especificação da Projeto de Laboratório de Programação Parte 1 Salvador, 2009 Universidade Federal da Bahia Instituto

Leia mais

16. Compilação no Linux

16. Compilação no Linux 16. Compilação no Linux 16.1 Compilador X Interpretador Um código fonte pode ser compilado ou interpretado. Compiladores e interpretadores tratam o código de maneira diferente. Interpretador: Lê o código

Leia mais

Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP. Aula 1 Introdução à Computação

Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP. Aula 1 Introdução à Computação Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP Aula 1 Introdução à Computação Eventos históricos: 1) Primeiro computador a válvulas, o Eletronic Numeric Integrator And

Leia mais

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95 PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95 Exercícios de revisão Lista 01: a) Monte um mapa conceitual indicando as relações entre os seguintes conceitos, no contexto do assunto visto em aula:

Leia mais

Linguagem de Programação

Linguagem de Programação Linguagem de Programação aula 4 Engenharia Elétrica e Engenharia de Automação Introdução à Computação 1.o sem/2013 Profa Suely (e-mail: smaoki@yahoo.com) Programas Programas são seqüências de instruções

Leia mais

Algoritmos e Programação

Algoritmos e Programação Universidade Federal do Vale do São Francisco Curso de Engenharia da Produção / Elétrica Parte 04 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav

Leia mais

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG Matriz Curricular FGGCOMP - Bacharelado em Ciência da Computação 0. Disciplinas Obrigatórias FGGCOMP.00 Cálculo I FGGELET.00 - Cálculo I / FGGMATE.00 - Cálculo Diferencial e Integral I FGGCOMP.00 Geometria

Leia mais

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG LEI Nº.9, DE 9//00, PUBLICADA NO DOU DE 0//00, SEÇÃO I, PAGS. I - Rua São Luiz Gonzaga, s/n - São Luiz - Formiga - MG - CEP: 70-000 Tel: (7)-09 - Site: www.formiga.ifmg.edu.br Matriz Curricular FGGCOMP

Leia mais

Curso de Tecnologia em Sistemas Eletrônicos MATRIZ CURRICULAR. Módulo I /Semestre 1 Carga horária total: 400h

Curso de Tecnologia em Sistemas Eletrônicos MATRIZ CURRICULAR. Módulo I /Semestre 1 Carga horária total: 400h Curso de Tecnologia em Sistemas Eletrônicos CÂMPUS FLORIANÓPOLIS MATRIZ CURRICULAR Módulo I /Semestre 1 Carga horária total: 400h Circuitos Elétricos 1 80 Lógica Combinacional 80 Física Geral 80 Comunicação

Leia mais

CP Compiladores I Prof. Msc.. Carlos de Salles

CP Compiladores I Prof. Msc.. Carlos de Salles CP 5017.9 Prof. Msc.. Carlos de Salles 1 - EMENTA O Processo de Compilação. Deteção e Recuperação de Erros. Introdução à geração de Código Intermediário. Geração de Código de Máquina. Otimização. Uma visão

Leia mais

Computação Eletrônica. Tipos de dados, constantes, variáveis, operadores e expressões. Prof: Luciano Barbosa

Computação Eletrônica. Tipos de dados, constantes, variáveis, operadores e expressões. Prof: Luciano Barbosa Computação Eletrônica Tipos de dados, constantes, variáveis, operadores e expressões Prof: Luciano Barbosa Site da disciplina: www.cin.ufpe.br/~if165/ Recapitulando num cubo = n * n * n cubo Algoritmo

Leia mais

Linguagem C Princípios Básicos (parte 1)

Linguagem C Princípios Básicos (parte 1) Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos

Leia mais

Tutorial da ferramenta de modelagem ASTAH (Versão resumida) Prof. Moacyr Franco Neto

Tutorial da ferramenta de modelagem ASTAH (Versão resumida) Prof. Moacyr Franco Neto Tutorial da ferramenta de modelagem ASTAH (Versão resumida) Prof. Moacyr Franco Neto Versão 1.0.0 1 ÍNDICE Sumário INTRODUÇÃO... 3 PRINCIPAIS CARACTERÍSTICA DA ASTAH... 3 COMO BAIXAR... 4 PRINCIPAIS FUNCIONALIDADES...

Leia mais

Ambiente de desenvolvimento

Ambiente de desenvolvimento Linguagem C Ambiente de desenvolvimento Um programa em C passa por seis fases até a execução: 1) Edição 2) Pré-processamento 3) Compilação 4) Linking 5) Carregamento 6) Execução Etapa 1: Criação do programa

Leia mais

Compiladores. Introdução à Compiladores

Compiladores. Introdução à Compiladores Compiladores Introdução à Compiladores Cristiano Lehrer, M.Sc. Introdução (1/2) O meio mais eficaz de comunicação entre pessoas é a linguagem (língua ou idioma). Na programação de computadores, uma linguagem

Leia mais

Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP:

Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP: Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP: 8429016 Definição de MDA OMG (Object Management Group) propôs uma aplicação abrangente das práticas

Leia mais

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Programação em C Variáveis e Expressões DCA0800 Algoritmos e Lógica de Programação Heitor Medeiros Florencio

Leia mais

Padrão para Especificação de Requisitos de Produto de Multimídia

Padrão para Especificação de Requisitos de Produto de Multimídia Padrão para Especificação de Requisitos de Produto de Multimídia 1 Introdução 1.1 Escopo do documento Sugere-se aqui uma estrutura para a Especificação de Requisitos de Produto de Multimídia (ERPM). Esta

Leia mais

Especificação de Sistemas de Software e a UML

Especificação de Sistemas de Software e a UML Modelagem de sistema Especificação de Sistemas de Software e a UML A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema Modelo => visão simplificada e abstrata de um sistema

Leia mais

DESENVOLVIMENTO DE UM APLICATIVO MÓVEL (JOGO) PARA AUXÍLIO NO ENSINO DE MATEMÁTICA. Beatriz Polita Franchin 1, Elvio Gilberto da Silva 2

DESENVOLVIMENTO DE UM APLICATIVO MÓVEL (JOGO) PARA AUXÍLIO NO ENSINO DE MATEMÁTICA. Beatriz Polita Franchin 1, Elvio Gilberto da Silva 2 DESENVOLVIMENTO DE UM APLICATIVO MÓVEL (JOGO) PARA AUXÍLIO NO ENSINO DE MATEMÁTICA Beatriz Polita Franchin 1, Elvio Gilberto da Silva 2 1 Graduanda do curso de Ciência da Computação Bauru/SP biapolita@gmail.com;

Leia mais

Introdução à Programação de Computadores Fabricação Mecânica

Introdução à Programação de Computadores Fabricação Mecânica Introdução à Programação de Computadores Fabricação Mecânica Edilson Hipolito da Silva edilson.hipolito@ifsc.edu.br - http://www.hipolito.info Aula 04 - Linguagens de Programação, Interpretador, compilador

Leia mais

Algoritmos Fundamento e Prática

Algoritmos Fundamento e Prática Everton Coimbra de Araújo Algoritmos Fundamento e Prática 3 a Edição Ampliada e Atualizada Visual Books Sumário Prefácio... 15 Introdução... 17 Capítulo 1 - Os Cursos de Informática e Computação... 23

Leia mais

Programação de Computadores:

Programação de Computadores: Instituto de C Programação de Computadores: Introdução a Linguagens de Programação Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Seis Camadas Problema

Leia mais

Conceitos básicos de algoritmos

Conceitos básicos de algoritmos Conceitos básicos de algoritmos Operadores Aritméticos Unários: +, - Exemplos: +1-5.9... var a: inteiro... a

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Conjunto de Instruções Slide 1 Sumário Características de Instruções de Máquina Tipos de Operandos Tipos de Operações Linguagem de Montagem Slide 2 Características

Leia mais

Processamento de Dados aplicado à Geociências. AULA 3: Algoritmos computacionais Representação de Algoritmos Sintaxe Tipos de dados Expressões

Processamento de Dados aplicado à Geociências. AULA 3: Algoritmos computacionais Representação de Algoritmos Sintaxe Tipos de dados Expressões Processamento de Dados aplicado à Geociências 1 AULA 3: Algoritmos computacionais Representação de Algoritmos Sintaxe Tipos de dados Expressões UNIVERSIDADE FEDERAL DE PELOTAS CENTRO DE DESENVOLVIMENTO

Leia mais

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG LEI Nº.9, DE 9//00, PUBLICADA NO DOU DE 0//00, SEÇÃO I, PAGS. I - Rua São Luiz Gonzaga, s/n - São Luiz - Formiga - MG - CEP: 0-000 Tel: ()-09 - Site: www.formiga.ifmg.edu.br Matriz Curricular FGGCOMP -

Leia mais

IFSC/Florianópolis - CTI - Projeto de Sistemas - prof. Herval Daminelli

IFSC/Florianópolis - CTI - Projeto de Sistemas - prof. Herval Daminelli MODELAGEM DE SOFTWARE Sistemas de média e grande complexidade necessitam de uma metodologia destinada a facilitar o seu desenvolvimento; Esta metodologia corresponde a uma visão, uma abstração do sistema

Leia mais

Introdução a Programação. Curso: Sistemas de Informação Programação I José R. Merlin

Introdução a Programação. Curso: Sistemas de Informação Programação I José R. Merlin Introdução a Programação Curso: Sistemas de Informação Programação I José R. Merlin Programas Programas são instruções para o computador executar uma tarefa Estas instruções seguem uma lógica Lógica: modo

Leia mais

2

2 ANÁLISE DE SISTEMAS (processo de desenvolvimento de sistemas) por Antônio Maurício Pitangueira 1 2 Levantamento de requisitos Análise de requisitos Projeto Implementação Testes Implantação Foco da disciplina

Leia mais

Paradigmas de Linguagens

Paradigmas de Linguagens Paradigmas de Linguagens Aula 1: Introdução e Conceitos Básicos Professora Sheila Cáceres O que é um paradigma??? Paradigmas de Linguagens - Sheila Cáceres 2 O que é um paradigma??? Paradigmas de Linguagens

Leia mais

COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES. Adão de Melo Neto

COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES. Adão de Melo Neto COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES Adão de Melo Neto 1 INTRODUÇÃO Desde 1950, houveram poucas inovações significativas nas áreas de arquitetura e organização de computadores. As principais

Leia mais

Introdução à Computação

Introdução à Computação Universidade Federal do Maranhão Curso de Química Departamento de Informática Introdução à Computação Linguagem Fortran Profa. Msc. Maria Auxiliadora Freire maria@deinf.ufma.br 1 Lógica de Programação

Leia mais

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

Estrutura dos Sistemas Operacionais. Adão de Melo Neto Estrutura dos Sistemas Operacionais Adão de Melo Neto 1 Sistema Operacional -São partes do SO -São ferramentas de apoio ao usuário -São formas de acessar as rotinas do kernel O Sistema Operacional é formado

Leia mais

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

Métodos de implementação de linguagens. Kellen Pinagé Métodos de implementação de linguagens Kellen Pinagé Sumário Métodos de implementação de linguagens Compilação Interpretação pura Híbrido Métodos de implementação de linguagens Principais componentes de

Leia mais

Programação musical para a web com o Mosaicode

Programação musical para a web com o Mosaicode Programação musical para a web com o Mosaicode MODALIDADE: COMUNICAÇÃO SUBÁREA: SONOLOGIA Flávio Luiz Schiavoni Universidade Federal de São João Del Rei - Departamento de Computação - fls@ufsj.edu.br Luan

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação 128 13 129 Linguagens de Programação Uma linguagem de programação é um vocabulário e um conjunto de regras gramaticais usadas para escrever programas de computador. Esses programas

Leia mais

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

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU Aula 5 Oficina de Programação Introdução ao C Profa. Elaine Faria UFU - 2017 Linguagem de Programação Para que o computador consiga ler um programa e entender o que fazer, este programa deve ser escrito

Leia mais

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

AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos. AULA 02 OBJETIVO: Características da Linguagem Orientada a Objetos. HABILIDADES TRABALHADAS: Comparação das características das linguagens orientadas a objetos frente às linguagens estruturadas. Conhecimentos

Leia mais