Baixe o app para aproveitar ainda mais
Prévia do material em texto
Definição Arquitetura de Von Neumann: É uma arquitetura de computador que se caracteriza pela possibilidade de que uma máquina digital, seja capaz de armazenar seus programas no mesmo de memória que os dados, podendo manipular tais programas, ela também se caracteriza por ser um projeto de computador digital, que utiliza a unidade central de processamento (CPU), e uma de armazenamento (Memória) para comportar instruções e dados. Esta arquitetura foi concebida a partir de 1946, quando John Von Neumann, e sua equipe desenvolveram o projeto de “computador de programa armazenado”, este foi projetado pela IAS, e largamente difundido, sendo influenciador de muitos outros projetos de computador subsequentes de outras máquinas. A máquina de Von Neumann, foi a base de praticamente todas as máquinas atuais. Gargalo de Von Neumann: É a limitação da taxa de transferência entre CPU e a memória em comparação com a quantidade de memória, esta transferência é menor que a taxa com que o processador consegue trabalhar, e menor do que a quantidade de memória disponível. Desta forma faz com que a CPU, seja forçada a esperar dados que precisam ser transferidos a partir da memória, gerando assim perda de tempo, pois a CPU fica no aguardo de dados. Componentes de Von Neumann na arquitetura moderna Interpretação Vs Compilação A linguagem compreendida pelo computador é chamada de Linguagem de Máquina e/ou Linguagem Binária, e é classificada como uma linguagem de baixo nível. Ela se utilizada somente de dois símbolos (binária) para escrever instruções a serem executadas pelo computador, sendo estes símbolos o 0 (zero) e o 1 (um). Devido à dificuldade natural do ser humano em se expressar por uma linguagem como esta, somente com dois símbolos, ele desenvolveu as Linguagens de Programação, que não são diretamente compreendidas pelo computador, apesar de servirem somente para a interação entre ambos (HUMANO x COMPUTADOR). Para esta interação acontecer é necessária a tradução do conteúdo elaborado em Linguagem de Programação para a Linguagem de Máquina. Esta tradução pode ocorrer de duas formas distintas denominadas interpretação e compilação (INTERPRETAÇÃO x COMPILAÇÃO). Uma linguagem de programação pode ser convertida, ou traduzida em código de máquina por compilação ou interpretada por um processo denominado interpretação. Em ambas ocorre a tradução do código fonte para código de máquina. A diferença fundamental nestes dois processos de tradução é relevante ao desenvolvimento de algoritmos e programas computacionais, pois resulta na alocação de mais recursos computacionais em sua execução pelo computador. Entre as diferenças entre estes processos de tradução, são relacionados abaixo somente as principais: COMPILADOR INTERPRETADOR ler uma instrução no algoritmo. ler uma instrução no algoritmo. depurar somente a instrução lida. depurar somente a instrução lida. traduzir a instrução lida para linguagem de máquina. traduzir a instrução lida para linguagem de máquina. seguir para próxima instrução na sequência do algoritmo. executar a instrução traduzida. manter ciclo acima em execução até fim do algoritmo. seguir para próxima instrução na sequência do algoritmo. executar algoritmo totalmente traduzido e em linguagem de máquina. manter o ciclo acima em execução até fim do algoritmo. Se o método utilizado traduz todo o texto do programa (também chamado de código), para só depois executar o programa, então diz-se que o programa foi compilado e que o mecanismo utilizado para a tradução é um compilador (que por sua vez nada mais é do que um programa). A versão compilada do programa tipicamente é armazenada, de forma que o programa pode ser executado um número indefinido de vezes sem que seja necessária nova compilação, o que compensa o tempo gasto na compilação. Isso acontece com linguagens como Pascal e C. Se o texto do programa é executado à medida que vai sendo traduzido, como em JavaScript, BASIC, Python ou Perl, num processo de tradução de trechos seguidos de sua execução imediata, então diz-se que o programa foi interpretado e que o mecanismo utilizado para a tradução é um interpretador. Programas interpretados são geralmente mais lentos do que os compilados, mas são também geralmente mais flexíveis, já que podem interagir com o ambiente mais facilmente. Embora haja essa distinção entre linguagens interpretadas e compiladas, as coisas nem sempre são tão simples. Há linguagens compiladas para um código de máquina de uma máquina virtual (sendo esta máquina virtual apenas mais um software, que emula a máquina virtual sendo executado em uma máquina real), como Java (compila para a plataforma Java) e C♯ (compila para a plataforma CLI). E também há outras formas de interpretar em que os códigos fontes, ao invés de serem interpretados linha-a-linha, têm blocos "compilados" para a memória, de acordo com as necessidades, o que aumenta a performance dos programas quando os mesmos módulos são chamados várias vezes, técnica é conhecida como JIT. Como exemplo, podemos citar a linguagem Java. Nela, um compilador traduz o código Java para o código intermediário (e portável) da JVM. As JVMs originais interpretavam esse código, de acordo com o código de máquina do computador hospedeiro, porém atualmente elas compilam, segundo a técnica JIT o código JVM para código hospedeiro. A tradução é tipicamente feita em várias fases, sendo as mais comuns a análise léxica, a análise sintática (ou parsing), a geração de código e a otimização. Em compiladores também é comum a geração de código intermediário Na Compilação o programa escrito na linguagem fonte é traduzido para linguagem máquina e depois ligado e carregado para ser executado. Na Interpretação o programa fonte é traduzido e executado instrução a instrução, de modo interativo. O Interpretador traduz cada instrução para uma representação interna e interpreta-a simulando o funcionamento do processador. O Interpretador aceita para além das instruções da linguagem, comandos para controlar o seu funcionamento. Vantagens O ciclo escrita, execução, modificação é mais rápido. Desvantagens A execução é mais lenta. Apesar das sutis diferenças entre estes dois processos de tradução, sua adoção provoca alterações significativas na utilização do algoritmo ou programa de computador elaborado. O ambiente Visual realiza esta tradução através de seu interpretador próprio sobre o algoritmo fonte elaborado em português estruturado. Um algoritmo ou programa fonte consiste no conjunto de instruções descritas em uma Linguagem de Programação ou pseudocódigo, geralmente elaboradas por meio de um editor de texto simples que respeite o padrão ASCII de escrita. Este algoritmo ou programa é desenvolvido de acordo com as regras sintáticas e semânticas definidas pela linguagem de programação utilizada, normalmente, sendo estas mais próximas à linguagem de comunicação natural do ser humano (linguagem de alto nível). Para execução de um algoritmo ou programa pelo processo de interpretação sempre é necessária a presença (instalação) do interpretador no computador que estar á executando tal algoritmo ou programa. Para realizar a compilação está presença não é sempre obrigatória, pois o programa totalmente traduzido e pronto para execução é armazenado em um outro arquivo físico de computador, classificado como executável, e somente sua presença já garante a execução dele.
Compartilhar