Modelos computacionais

=========================================

Postado em November 26, 2024 por Paulo

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:

Diagrama Von Neumann

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.

Até o nintendinho usa 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.