18/06/2023
Ha tiempo ya que el célebre lenguaje de programación C llamó mi atención. Finalmente decidí atreverme a darle una oportunidad, y qué mejor forma de adentrarme en el aprendizaje de este, que aprovechar de repasar los conceptos básicos de computación que conservo guardando polvo en algún rincón de mi cabeza.
En concreto planeo hacerme en la presente página un resumen de conceptos básicos de arquitectura, subrutinas, arrays, estructuras de datos, algoritmos clásicos, grafos, optimización combinatorial… Adjuntando ejemplos de su respectiva implementación en C.
La historia de la computación digital comienza necesariamente con un
gate o compuerta. Si bien un prerrequisito obvio de
toda la electrónica es la electricidad, la tecnología que permitió el
inicio de la era digital es una compuerta que permita el control del
flujo de carga mediante una carga.
El primer sistema en la historia que cumplió este rol fue el
relay, seguido del triodo, para finalmente dar pie al
todopoderoso transistor, posibilitador de toda la computación y
por extensión del mundo moderno.
Compuerta lógica que permite modelar la suma sin reserva.
Para obtener una suma con reserva, necesitamos dar 2 outputs con un AND gate conectado al segundo. Es así como obtenemos un half adder.
El H-A nos deja con una reserva, y para poder sumar números binarios de varios dígitos, tendremos que considerar 3 inputs, los dos sumandos y la reserva, teniendo que realizar en cada columna de la suma una suma de 3 binarios y entregar un resultado y una reserva.