O GoConqr está de visual novo! Conte para nós o que você achou.

Flashcards

2 VA - 2 quesito

Felipe Bernard Compiladores Português 39 flashcards

Flashcards do conjunto (39)

  1. 1Por que estudar compiladores se dificilmente você vai implementar um na sua vida profissional?A linguagem de programação e o hardware sempre andaram de mãos dadas. Entender a relação entre eles e o processo de compilação faz com que o programador programe com consciência da estrutura e funcionamento das linguagens de programação, sabendo escolher com sabedoria e base teórica qual linguagem utilizar em cada projeto e como utilizá-la de forma eficiente e correta em cada situação.
  2. 2Você concorda com a visão que linguagens de programação são ferramentas? Justifique a sua resposta.Sim, pois o uso de uma linguagem varia de acordo com a aplicação a ser desenvolvida, onde uma determinada linguagem se adequa melhor para uma dada situacao do que outro, como por exemplo, se temos uma aplicação que necessita o uso de ponteiros, idealmente deveríamos escolher C ou Pascal, por exemplo. Analogamente, podemos comparar com o uso de uma furadeira, pois existem tipos para cada superfície que se deseja furar, onde deveremos usar uma furadeira para concreto para furar o concreto, por exemplo.
  3. 3Como você deve escolher uma linguagem para o desenvolvimento de um projeto?De acordo com a aplicação que iremos desenvolver. Se iremos desenvolver algo que necessite o uso de ponteiros, devemos usar C ou Pascal, por exemplo. Já se iremos desenvolver algo que envolva cálculos matemáticos, deveremos analisar o uso de Fortran. Uma aplicação de IA, Python seria uma forte candidata para ser usada. Um sistema distribuído, Java deverá ser cogitada. Esse é um dos pontos a ser analisado, mas podemos analisar, entre uma linguagem ou outra, questões humanas, como por exemplo a curva de aprendizado ou o conhecimento do time sobre a linguagem e eficiência.
  4. 4Qual a melhor linguagem de programação? Justifique a sua resposta.aEssa é uma pergunta que não tem sentido, pois não existe a melhor linguagem de programação, existe a linguagem que se adequa mais do que outra para determinada situação. Por exemplo, para aplicações que envolvam muitos cálculos matemáticos, como previsão meteorológica, Fortran deverá ser analisada para ser usada.
  5. 5Wittigenstein associa a capacidade de raciocínio à linguagem. Explique tal assertiva no contexto da computação e computabilidade.Com uma linguagem adequada, há a expansão do conhecimento, que gera a
    evolução da linguagem e por consequência possibilita alcançar novos horizontes do
    conhecimento. É um evento cíclico, a linguagem influencia o conhecimento, que
    influencia a linguagem. No contexto da computação isso pode ser enxergado que
    com uma linguagem bem construída, eficiente ao que se propõe, confiável, serve de
    base para atacar o problema à que foi construída, mas isso é apenas o começo do
    caminho do conhecimento, relativo à essa linguagem. A partir daí, começam a ser
    explorados novos problemas, tenta-se levar ao limite essa linguagem, criar
    sistemas, aplicações, modelos estatísticos, físicos, cada vez mais ambiciosos e
    complexos, e isso chega inevitavelmente no limite da linguagem, e daí só resta
    avançar a linguagem, repensar suas bases, aperfeiçoar a arquitetura, a teoria por
    trás do que motivou a linguagem, até que se tenha um produto mais polido ou
    dependendo, até mesmo uma nova linguagem que atenda ao problema necessário.
    E esse ciclo vai se repetindo indefinidamente.
  6. 6Fale sobre Charles Babagge e sua importância na computação.Ele criou a primeira máquina programável, que foi também o primeiro computador, pois era de propósito geral (as máquinas da época eram de propósito específico). Utilizava cartão perfurado e teve Ada como a primeira programadora, apesar disso, a máquina nunca foi completamente construída. Ele também criou, anteriormente, uma máquina de uso específico quando se deparou com o problema de calcular tabelas.
  7. 7Ada Augusta: quem foi e sua importância na computação.Ada Augusta foi a primeira programadora e deu suporte para Babbage na criação de sua máquina. Criou um algoritmo para calcular a sequência de Bernoulli e alguns conceitos importantes na computação, como loop, salto condicional e sub-rotina.
  8. 8O pioneirismo de Hollerith e seu legado.Hollerith criou a primeira máquina para o processamento do censo, que usava cartão perfurado e possibilitou a primeira análise automática dos dados, sendo assim, um divisor de águas na área da computação. Fundou a empresa que mais tarde iria se tornar a IBM.
  9. 9Fale sobre o trabalho de Zuze.Zuse fez uma série de máquinas denominadas Z1, Z2, Z3, Z4. A Z1 já usava código
    binário e foi o primeiro computador eletromecânico controlado por programas do
    mundo, mas nunca chegou a funcionar na prática, o Z2 foi concluído, O Z3 foi a
    máquina de maior destaque, usava palavras de 64 bits, o Z4 era praticamente
    idêntico ao Z3, mas usava palavras de 32 bits e também nunca foi terminado pois
    Zuse não recebia suporte do estado. Zuse também teve o pioneirismo do
    desenvolvimento de uma linguagem algorítmica.
  10. 10Fale sobre o Colossus e sua importância.Colossus foi o primeiro computador eletrônico digital do mundo e todo seu
    desenvolvimento ficou em segredo militar, tendo Alan Turing como um dos usuários.
    Colossus foi importante para a vitória aliada na segunda guerra mundial, pois foi
    usada para decodificar a ENIGMA.
  11. 11De onde vem o termo “bug”?O termo vem de quando um inseto estava ocasionando um problema quando Grace
    Hopper estava programando no mark ii
  12. 12Maunchey-Eckett e sua importância na computação.Mauchly-Eckert estava à frente do projeto do ENIAC, que era um computador
    programado manualmente e o primeiro computador que era eletrônico de grande
    escala. O ENIAC usava uma enorme quantidade de energia, mas realizava
    operações de balística mais rapidamente em relação às outras máquinas. Além
    disso, começaram a tentar um propósito comercial para o ENIAC, além do seu
    motivo de ser criado, que foi para ser usado na segunda guerra pelo exército
    (apesar de que só ficou pronto após o fim da guerra). Desse modo, eles começaram
    a procurar um primeiro cliente para comprar o ENIAC e acharam no censo. Eles
    também criaram uma empresa que desenvolveu o BINAC: O primeiro computador
    comercial com programas armazenados, mas foi o Univac i que foi amplamente
    comercializado nos EUA e teve sucesso.
  13. 13Qual a contribuição de John Von Neumann à computação?Além de participar da criação do ENIAC, ele também desenvolveu o EDVAC,
    primeiro computador com programa armazenado na memória. A principal unidade
    da máquina de Von Neumann era a unidade central de processamento
    (processador), que permitiu que todas as funções do computador fossem
    coordenadas por uma única fonte. Neumann ainda é citado como inventor do
    mergesort. Grande números de máquinas hoje em dia ainda seguem o seu modelo.
  14. 14O que foi revolucionário e como foi criada a linguagem COBOL?COBOL foi desenvolvido para aplicações comerciais e foi criada numa época em
    que existia muitas linguagens de alto-nível e softwares incompatíveis, desse modo
    Grace Hopper organizou o codasys para desenvolver uma linguagem de
    processamento de dados independente do HW, criando assim, o conceito de
    portabilidade de software.
  15. 15Fale sobre a importância da linguagem FORTRAN.Foi criada por Jonh Backus para o IBM, pois ele queria uma linguagem que
    facilitasse sua vida (pois ele se dizia preguiçoso), sendo assim, o FORTRAN
    considerada a linguagem mais eficiente em tempo de execução por 20 anos. Foi a
    primeira linguagem imperativa com o compilador otimizado, sendo a escrita fácil
    pois era próxima a matemática.
  16. 16A linguagem Pascal e sua importância.Era uma linguagem de propósito didático para aprender ponteiros e foi feita
    utilizando compilador de um passo. O projeto da linguagem e o compilador foram
    feitos independes e foi revolucionário pois niklaus advoga sobre o uso de máquina
    virtual.
  17. 17RISC: quais os princípios e importância?RISC possui um conjunto menor de instruções implementadas de maneira mais
    eficiente, as memórias são mais rápidas, aumentou o número de registradores
    implementados (já que tinha sobrado espaço no silício) e fez surgir as memórias
    cache.
  18. 18Explique a importância e pioneirismo da linguagem C.O propósito era ser uma linguagem para o desenvolvimento de sistemas, que
    possuía muitas ferramentas disponíveis (debugger e o profiler, por exemplo) e
    influenciou muitas das linguagens mais usadas hoje em dia. Foi inicialmente usada
    para reimplementar o UNIX e isso foi revolucionário pois um SO tratava de
    operações mais básicas e primitivas.
  19. 19Fale o que sabe sobre a linguagem ALGOL.Foi idealizada pra ser tão próxima quanto possível da notação matemática, ou seja,
    legível sem explicação adicional. Deveria ser capaz de explicar o processo
    computacional e se tornou padrão por pelo menos 30 anos, tendo como um dos
    seus principais uso a escrita via pseudo-código. A ideia é que ela fosse traduzível
    para linguagem de máquina. Um dos problemas foi que vários dialetos foram
    implementados, comprometendo a portabilidade. Possuía sub-rotinas recursivas,
    alocacao dinamica de memoria, programação estruturada, variáveis locais, arrays
    dinâmicos, mas faltava i/o.
  20. 20Qual a importância e contribuições de John Backus para a computação?John Backus criou o FORTRAN, participou do relatório do ALGOL, criou a notação
    BNF, lançou a linguagem interpretada Speedcoding e trouxe as linguagens
    funcionais para evidência.
  21. 21Linguagem orientadas à objetos: paradigma ou não?Sim, pois é uma evolução das linguagens imperativas e teve um efeito enorme que
    tornou-se revolucionário para a engenharia de software.
  22. 22Explique a “revolução JAVA”.Com java, os programas são cidadãos de primeira classe, como era advogado no
    lambda calculus. Os programas podem ser passados do cliente para o servidor e do
    servidor para o cliente, possibilitando que possa ser recebido um programa pela
    rede e executado no cliente.
  23. 23Listas e seu impacto nas linguagens de programação.Surgem na 5a versão da linguagem IPL. Inicialmente foram utilizadas para provar
    teoremas matemáticos e primeiro programa de xadrez para computador. Depois, na
    linguagem LISP foram utilizadas para quebrar a disciplina de pilha, pois uma rotina
    chamada pode gerar uma estrutura de dados que viva após o término de sua
    chamada. Dessa forma, a linguagem LISP foi a primeira a implementar um garbage
    collector através de heaps que armazenamas listas.
  24. 24Que são linguagens de “implementação de sistemas”?Linguagens que são usadas para construção de um sistema operacional, como C
    por exemplo, que foi criada para re-implementar o Unix.
  25. 25O que significa o termo boot?Deriva de bootstrapping, que é um processo que se realiza sem ajuda externa,
    como por exemplo a inicialização de uma máquina.
  26. 26Como a escolha de uma linguagem pode trazer portabilidade de software?Linguagens diferentes podem ser compiladas e executadas em diferentes tipos de
    arquiteturas, quanto mais arquiteturas diferentes suportarem a compilação e
    execução de determinada linguagem, mais portabilidade terá o software feito com
    essa linguagem
  27. 27Como funciona um profiler?Um profiler age analisando quantitativamente dados da execução de um programa,
    como por exemplo número de chamadas de determinada função, tempo de
    execução, a memória utilizada. É usado para entender o comportamento de um
    programa e poder optimiza-lo.
  28. 28Como funciona um debugger?É um método usado para examinar o programa e encontrar erros. O código é
    examinado na medida que é executado onde se pode ter acesso às instruções,
    variáveis. Quando se usa uma instrução inválida o programa é abortado apontando
    onde o erro ocorreu.
  29. 29A linguagem C é dita RISC. Você concorda com isso? Justifique a sua resposta.**RISC tem como um de seus princípios que as instruções implementadas devem ser reduzidas e eficientes. C tem apenas 1/4 de suas instruções implementadas para serem de fato traduzidas pelo assembler. Os 3/4 restantes foram implementados com base nos 1/4, tornando C e seu compilador PCC (Portable C Compiler) extremamente portáveis.**
    - A linguagem C é frequentemente usada para programar em ambientes RISC, devido à sua portabilidade e ao fato de que muitos compiladores C foram originalmente desenvolvidos para arquiteturas RISC.
    - A eficiência da linguagem C em termos de controle de baixo nível e manipulação direta de memória é compatível com as abordagens de programação frequentemente associadas às arquiteturas RISC.
    - Muitos compiladores C implementam otimizações de código que se alinham bem com os princípios de design RISC, como a execução eficiente de instruções simples e o uso eficaz de registros.
  30. 30Quem foi Grace Hopper e qual a sua importância na computação?Subrotinas se diz respeito ao reuso do código, causando, assim, economia de
    tempo para o programador e flexibilidade e legibilidade para o programa. Foi criado
    na máquina EDSCA, que possuía uma biblioteca de subrotinas. Foi criada quando
    percebeu que era necessário escrever o mesmo código várias vezes, desse modo,
    o código foi escrito uma única vez e armazenado para usos futuros.
  31. 31Subrotinas: como surgiram e sua importância.Subrotinas se diz respeito ao reuso do código, causando, assim, economia de
    tempo para o programador e flexibilidade e legibilidade para o programa. Foi criado
    na máquina EDSCA, que possuía uma biblioteca de subrotinas. Foi criada quando
    percebeu que era necessário escrever o mesmo código várias vezes, desse modo,
    o código foi escrito uma única vez e armazenado para usos futuros.
  32. 32Como você deve escolher uma linguagem para o desenvolvimento de um projeto? Dê exemplos.De acordo com a aplicação que iremos desenvolver. Se iremos desenvolver algo
    que necessite o uso de ponteiros, devemos usar C ou Pascal, por exemplo. Já se
    iremos desenvolver algo que envolva cálculos matemáticos, deveremos analisar o
    uso de Fortran. Uma aplicação de IA, Python seria uma forte candidata para ser
    usada. Um sistema distribuído, Java deverá ser cogitada. Esse é um dos pontos a
    ser analisado, mas podemos analisar, entre uma linguagem ou outra, questões
    humanas, como por exemplo a curva de aprendizado ou o conhecimento do time
    sobre a linguagem e eficiência.
  33. 33Linguagens funcionais: marcos, importância e contribuições.Programar em linguagens funcionais é programar em lambda calculus. Possui como
    propriedades: Funções de alta ordem, transparência referencial em linguagens
    puras e propriedades formais. Programas funcionais é o conjunto de funções com
    as expressão a ser avaliada, podendo ser lazy (faz a avaliação quando necessário e
    no máximo uma vez) e estrita (faz a avaliação antecipadamente). Como linguagens
    funcionais, podemos citar ML, Miranda e Haskell, por exemplo.
  34. 34Linguagens lógicas e sua relevância.Paradigma que faz uso de lógica matemática muito utilizada em inteligência artificial
    e banco de dados relacionais, provas de teoremas. Seu programa consistia em
    declaração, definição e pergunta. Uma das linguagens lógicas mais notáveis é
    Prolog que é amplamente usada desde seu lançamento.
  35. 35O que foi e como foi resolvido o “bug do milénio”?Preocupação de que os programas COBOL parassem de funcionar na virada do ano
    de 1999 para 2000, já que o campo ano só tinha dois dígitos, gerando um enorme
    desespero pois COBOL estava em muitas entidades financeiras. Desse modo,
    muitos programadores foram chamados para estudar e propor uma solução para
    esse bug, mas o bug do milênio mostrou-se inofensivo.
  36. 36Por que até os anos 1980 os compiladores eram comprados e hoje são grátis?Antigamente cada linguagem precisava de implementar um novo compilador. Hoje
    as linguagens são implementadas baseadas em outras linguagens, como C,
    portanto tendo seus compiladores já implementados.
  37. 37Fale sobre a linguagem PascalEra uma linguagem de propósito didático para aprender ponteiros e foi feita
    utilizando compilador de um passo. O projeto da linguagem e o compilador foram
    feitos independes e foi revolucionário pois Niklaus advoga sobre o uso de máquina
    virtual
  38. 38O que mais lhe surpreendeu no Índice Tiobe? Comente sobre as 20 principais linguagens atuais.aaaaaaaaaaaaaaa
  39. 39Como você acha que pode e deve usar o Computer Benchmark Game?aaaaaaaaaaaaaaaaaa

Informações

Descrição
Compiladores FlashCards sobre 2 VA - 2 quesito, criado por Felipe Bernard em 30-08-2023.
Criado por
Felipe Bernard
Visualizações
9
Avaliação

Fale Conosco

Sobre o que é sua mensagem?

O que você acha do novo visual?

Você gostou?