=========================================
Modelo Von Neumann & Arquiteturas computacionais modernas
O modelo/arquitetura Von Neumann é um modelo computacional que descreve os componentes básicos para a computação. Criado em meados dos anos ’40, esse foi um modelo bastante influencial.
Aqui está um diagrama que descreve o modelo:
De maneira mais textual o modelo descreve 3 componentes básicos da computação:
Entrada, ou dados que são inseridos para processamento
Processamento
Saída, informações que é resultado do processamento da entrada
Sendo que o componente “Processamento” é dividido em 2 sub-compoentes
Processador, aquilo que executa instruções geralmente passo-a-passo
Memória, aquilo que armazena os dados processados durante o tempo de execução
Novamente temos agora o componente “Processador” dividido em 2 ou 3 sub-componentes
Unidade de Controle, aquele que mantém o estado sobre o que aplicação está executando no momento
Unidade de aritmética/lógica, a unidade que faz cálculos aritméticos
Registradores, alguns autores referem-se os registradores sendo um terceiro sub-componente. Registradores em minha opinião nada mais são que memória extra só que de um nível de acesso mais rápido.
Hoje em dia a maioria senão todos os hardwares de computação modernos contém como base o modelo Von Neumann.
Modelo de Turing & Assembly
Alan Turing em sua tese criou uma máquina abstrata em que seu comportamento define o que é e não é computável. O que essa máquina consegue calcular tendo memória infinita é considerado computável, caso contrário é não computável.
Essa máquina de turing opera em uma fita infinita, tal que é dividida em várias células. Cada célula contém uma símbolo de um conjunto finito de símbolos chamado “alfabeto da máquina”. A máquina de turing tem uma agulha que fica em cima dessa essa fita. Cada passo de execução essa máquina ler o símbolo da célula que essa agulha está sobreposta, Então baseado em seu estado atual e célula lida, a máquina então pode:
Escrever um símbolo na célula atual e mover essa agulha para esquerda ou direita.
Simplesmente só mover essa agulha para esquerda ou direita.
Ou parar a execução desse programa.
As linguagens da família assembly são um exemplo de máquina de turing! Onde os símbolos são os opcodes, o alfabeto é o instruction set, a agulha é o stack pointer e o estado atual é a memória.
Cálculo lambda
Cálculo lambda é um outro modelo computacional, criado também para descrever o que e não é computável – mesma finalidade do modelo de Turing – e coincidentemente criado pelo instrutor de doutorado do Turing, Alonzo Church.
Esse na minha opinião esse é o modelo mais abstrato e matemático comparado entre os 3 já mencionados e por natureza um pouco mais complicado de entender. Eu também não tenho uma qualificação ideal para explicar esses modelo corretamente, então recomendo bastante a série sobre programação funcional da UFABC, que é a melhor que já encontrei no youtube discutindo sobre o assunto: link da série.