Linguagens Flashcards
O que é uma linguagem de programação ?
É um método padronizado, formado por um conjunto de regras semânticas e sintáticas de implementação de um código fonte, que dará instruções de processamento ao computador.
Quais as diferenças entre linguagens compiladas e linguagens interpretadas ? ( ver pag24, lc vs li)
Linguagem compilada:
- Linguagem de programação onde o código fonte é executado diretamente pelo sistema operacional ou pelo processador, após ser traduzido por um programa de computador chamado compilador.
Linguagem interpretada:
- Linguagem de programação em que o código fonte nessa linguagem é executado por um programa de computador chamado interpretador,
que em seguida executado pelo sistema operacional ou processador.
Quais as mais eficientes?
São as compiladas visto que tem de se referir o input a cada uso, no entanto as interpretadas são as mais adequadas para um desenvolvimento de protótipos mais rápido, já que apenas se refere um input uma vez.
O que é o código fonte?
É um conjunto de palavras/símbolos escritos de forma ordenada, contendo instruções em uma das linguagens de programação existentes, de maneira lógica.
O que é o código nativo?
É o código executado diretamente pelo computador.
A implementação das funcionalidades e bibliotecas desta linguagem são dependentes da plataforma.
O que é um compilador?
É um programa de computador que , a partir de um código fonte escrito em uma linguagem compilada, cria um programa semanticamente equivalente, escrito noutra linguagem, código objeto.
O que é o assembly de uma arquitetura?
O código assembly é uma representação textual do código binário de um programa escrito num ISA. No fundo uma linguagem de programação.
O que é um ficheiro objecto?
Código resultante da compilação do código fonte.
O que é um ficheiro binário executável?
É um programa de computador que executa as tarefas indicadas de acordo com as instruções, devendo ser interpretado por um sistema operacional como um programa.
O que é uma biblioteca?
Coleção de subprogramas utilizados no desenvolvimento de software.
As bibliotecas contêm código e dados auxiliares, o que possibilita o compartilhamento e a alteração do código e dados de forma modular.
O que entendes por “Portabilidade” ?
Capacidade de um programa ser compilado ou executado em diferentes arquiteturas.
Qual a portabilidade de código fonte e código binário?porquê?
O código nativo é menos portável que o código fonte por estar escrito em binário.(resposta do stor pág25)
Quais são as linguagens mais portáteis, as compiladas ou as interpretadas? Why?
Uma linguagem compilada é mais portátil que uma linguagem interpretada, pois basta compilar uma vez o programa para que esse possa ser executado em qualquer plataforma que possua a respetiva máquina virtual.
Quais são as 3 fases básicas na compilação?
- Análise sintática ;
- Análise semântica ;
- Geração de código.
O que faz a Análise sintática ?
Analisa uma sequência que foi dada entrada para verificar a sua estrutura gramatical segundo uma determinada gramática formal.
O que faz a Análise semântica ?
Verificação dos erros semânticos no código fonte e coletadas as informações necessárias para a próxima fase.
O que é e o que faz a Geração de código ?
Ferramenta que possui a capacidade de gerar código a partir de um determinado modelo de software.
Após estas fases o que faz o linker?
Como ele descobre o código em falta num ficheiro objeto?
O linker verifica o ficheiro objeto para identificar o código binário necessário que está ausente.
Para isso, pesquisa outros arquivos de objetos e bibliotecas do sistema operacional para aqueles pedaços de código. Determina em qual posição eles devem ser inseridos ne ficheiro objeto e ajusta referências, e produz arquivo executável (ou falha).
O que faz o loader ?
- Cria um espaço de endereço grande na memória principal o suficiente para conter o programa, um heap e uma pilha ;
- Copia o código e os dados do programa para o espaço de endereço e os argumentos da linha de comando para a pilha ;
- Inicializa valores de registro, incluindo o ponteiro da pilha e o contador do programa ;
- O programa original agora está pronto para ser executado e é agora denominado de processo.
O que é um processo ?
Um processo e uma instância de um programa de computador que está a ser executada.
Ele contém o código do programa e a sua atividade atual.
O que é o espaço de endereçamento de um processo?
Como está organizado?
Um espaço de endereçamento define uma faixa de endereços discretos, cada um dos quais pode corresponder a um registador físico ou virtual.