Posts

Layout de memória.

Já se perguntou como funciona a infraestrutura da memória RAM? Um programa em execução em um computador irá reservar uma área na memória RAM para que seus dados sejam interpretados durante seu funcionamento. Uma memória RAM é um componente no computador responsável por cuidar dos endereços virtuais, sua infraestrutura consiste em frames, páginas e segmentos. As seções separadas vistas na imagem são chamadas de segmentos, divisões lógicas que montam a estrutura do programa. Páginas virtuais é a divisão dos segmentos, o tamanho mínimo dessa página (bloco) no GNU/Linux na arquitetura x86-64 é 4KB. um segmento de 12 KB será divido em 3 páginas virtuais: Página virtual 0: endereços 0x400000 a 0x400fff  Página virtual 1: endereços 0x401000 a 0x401fff  Página virtual 2: endereços 0x402000 a 0x402fff Sendo assim, o segmento está na página cujo endereço inicial é 0x400000 Frames são os espaços reais onde o programa roda. Diferente do endereço virtual que roda dentro de um espaço ilusór...

Conceitos de Linguagem de Programação.

Paradigmas da programação Na ciência e filosofia, um paradigma é um conjunto distinto de conceitos ou padrões de pensamentos, incluindo teorias, métodos de pesquisa, postulados - princípios, premissas ou preposições não demonstradas que são admitidos como verdadeiros sem discussão, servindo como ponto de partida para o início de um raciocínio, dedução ou construção de uma teoria, atuando como hipóteses iniciais aceitas para validar um sistema lógico ou empírico -, e padrões para que constituam legitimamente contribuições para um campo.  Mas, e no contexto de desenvolvimento de software? Paradigma significa um modelo para estruturar e representar problemas, cuja solução deseja-se obter por meio de um programa, construído a partir de uma linguagem de programação.  Dividindo-se essencialmente em dois grandes grupos. Imperativo: Estruturada; Procedural; Orientada a Objetos (OOP). Declarativo: Funcional; Lógica. Claro, há outras e, pode-se usar mais de um paradigma para um software...

Compilador.

 Implementação de linguagens de programação. Macroinstruções: Conjunto de instruções da arquitetura (ISA - Instruction Set Architecture). Ou seja, são instruções de baixo nível que correspondem diretamente à linguagem do processador. Exemplificando, a Assembly possui um conjunto de comandos de macroinstruções.  Possuem formato: opcode (operational code) + operandos -> instrução = ação + alvo(s). MACROINSTRUÇÃO (formato típico x86): ┌─────────────────────────────────┐ │ Opcode (sempre à esquerda)│Operando (sempre à direita)  │        ADD                              │       R1, R2     └─────────────────────────────────┘ Aqui, as macroinstruções serão interpretadas pelo microprograma gerando as microinstruções. Microprograma: Armazenada na memória de controle do processador, é uma camada intermediária de baixo nível. Atua como interface entre ...