Fichas
2 VA - 2 quesito
Fichas del conjunto (39)
- 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.
- 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.
- 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.
- 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.
- 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. - 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.
- 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.
- 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.
- 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. - 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. - 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 - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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 - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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 - 38O que mais lhe surpreendeu no Índice Tiobe? Comente sobre as 20 principais linguagens atuais.aaaaaaaaaaaaaaa
- 39Como você acha que pode e deve usar o Computer Benchmark Game?aaaaaaaaaaaaaaaaaa
Información
- Descripción
- Compiladores Fichas sobre 2 VA - 2 quesito, creado por Felipe Bernard el 30/08/2023.
- Creado por
- Felipe Bernard
- Visitas
- 9
- Valoración