fundamentos de los computadores, programación

Fundamentos de computadores

Los computadores fueron desarrollados como una herramienta para agilizar la realización repetitiva de operaciones aritméticas y lógicas básicas; con el tiempo fueron ganando complejidad, tanto por el número de operaciones como por la complejidad propia de los cálculos.

Hoy en día, se han convertido en un elementos imprescindibles en todos los campos de la ciencia, de la comunicación y del ocio.

A pesar de los grandes cambios que han ido sufriendo las máquinas, el procesamiento de los datos dentro de un computador continúa basado en la realización de operaciones aritméticas y lógicas sencillas sobre datos que se encuentran en la memoria principal.

La información es codificada de manera adecuada para poder ser tratada por un procesador digital.

Las características de la tecnología con la que se construyen los computadores obligan a trabajar con sólo dos símbolos diferentes: el 0 y el 1.

Toda la información que tenga que procesar un computador se tendrá que codificar usando únicamente estos dos símbolos.

Estos son, pues, los puntos de partida:

  • Dentro de un computador toda la información se codifica como cadenas de ceros y unos.
  • Una cadena de ceros y unos no tiene sentido por ella misma. Hay que conocer la manera cómo se codifica la información, esto es el formato en que están codificados los datos.
  • El procesamiento que lleva a cabo un computador sobre las cadenas de ceros y unos consiste en operaciones aritméticas y lógicas sencillas.
fundamentos de los computadores, programación

Estructura general de un computador digital

Una computadora es un dispositivo construido con el propósito de manipular o transformar información para conseguir una información más elaborada, por ejemplo, el resultado de un problema determinado.

Una computadora digital trabaja con datos numéricos, codificados todos ellos en un sistema de numeración en base 2, es decir, basados en señales binarias; señales sobre las que podemos identificar solamente dos valores distintos.

Un computador digital dispone de una estructura organizada en módulos diferenciados, con tareas y funcionalidades bien definidas.

La estructura general de un computador digital es:

Datos de entrada + procesamiento = resultado (datos de salida)

Estructura general de un computador

Los dispositivos de entrada y los de salida constituyen elementos de conversión de la información entre el mundo analógico y el mundo digital.

El procesador está constituido por una unidad central de proceso (CPU, Central Process Unit) y una memoria íntimamente relacionada.

Arquitectura general de un procesador

La unidad central de proceso es la encargada de procesar los datos de acuerdo con el programa establecido, y se organiza en dos grandes bloques: la unidad de control y la unidad de proceso o camino de datos.

Estructura de una CPU
  • La unidad de proceso reúne los recursos de cálculo.
  • La unidad de control es la encargada de dar las órdenes en la secuencia correcta a la unidad de proceso para realizar las operaciones que establece el programa en ejecución.
fundamentos de los computadores, programación, robótica

¿Qué es la electrónica digital?

La electrónica digital o discreta es la electrónica basada en señales sobre las que sólo se identifica un conjunto finito de valores diferentes.

En contraposición, en la electrónica analógica las señales pueden variar de forma continua, es decir, no están reducidas a un conjunto de valores.

En una señal digital sólo se diferencia entre el valor alto de tensión y el valor bajo de tensión, por ejemplo 0 V y 5 V. En cambio, en una señal analógica se pueden registrar cualquier valor de tensión dentro de los márgenes de funcionamiento.

Las tecnologías actuales con las que se construyen los sistemas digitales trabajan especialmente bien cuando las señales se identifican con dos valores de tensión diferente.

Estos valores reciben denominaciones diferentes según el ámbito de trabajo, como verdadero y falso o bien 0 y 1 lógicos.

Trabajar directamente con información analógica resulta poco práctico si queremos procesar información digital en una computadora. Por lo tanto, hay que disponer de mecanismos para digitalizar la información, es decir, para codificarla utilizando sólo ceros y unos.

Las computadoras son sistemas digitales complejos. Entender y conocer las herramientas metodológicas para su diseño y síntesis nos abre el camino al desarrollo de sistemas digitales específicos. Los conceptos básicos del funcionamiento de las computadoras son conocimientos necesarios para aquel que quiera trabajar en el diseño de sistemas electrónicos, en la programación de los mismos o en el desarrollo de aplicaciones específicas que requieran cierto grado de optimización.

programación

Expresiones: semántica y sintaxis

Cuando escribimos algoritmos, operamos entre los diferentes objetos que hayamos declarado por nuestro entorno de trabajo para obtener valores concretos.

Una expresión es cualquier combinación de operadores y operandos:

  • Un operando puede ser una variable, una constante o una expresión.
  • Los operadores pueden ser unarios o binarios. Un operador unario es aquel que sólo opera con un único operando. Es, por ejemplo, el caso de la negación lógica y el signo menos aplicado a un número. Un operador binario es aquel que opera con dos operandos, por ejemplo, la suma o la resta.

La definición anterior de expresión no es suficiente. Para que una expresión nos sea útil, es necesario que ésta siga unas reglas sintácticas y que se respete el significado de los símbolos utilizados. En otras palabras, hace falta que una expresión sea correcta en sintaxis y semántica.

Sintaxis

Una expresión correcta y, por tanto, evaluable debe seguir las siguientes normas de combinación:

  • Un valor es una expresión.
  • Una variable es una expresión.
  • Una constante es una expresión.
  • Si E es una expresión, (E) también lo es.
  • Si E es una expresión y · es un operador unario, · E también lo es.
  • Si E1 y E2 son expresiones y · es un operador binario, E1 · E2 también lo es.
  • Si E1, E2 , …, En son expresiones y f es una función, f(E1, E2 , …, En) también lo es. Las expresiones se escriben linealizadas, es decir, de izquierda a derecha y de arriba abajo.

Semántica

Aunque una expresión tenga una sintaxis correcta, ésta puede carecer de sentido, ya que hay que respetar la tipificación de variables, constantes, operadores y funciones.

Por ejemplo, si encontramos un operador suma aplicado a variables boolea-nas, la expresión puede ser correcta sintácticamente, pero será incorrecta semánticamente, ya que la suma no está definida para los booleanos.

Otro ejemplo es 4.0 + 7, la cual no es correcta semánticamente porque mezcla dos tipos de datos diferentes. Notad que la última expresión puede tener sentido fuera del contexto algorítmico, pero no lo tiene dentro de la algorítmica.

Evaluación

La evaluación de una expresión se hace de izquierda a derecha comenzando por las funciones y los elementos comprendidos entre los paréntesis internos. Dentro de los paréntesis se evaluarán primero las operaciones prioritarias y después, las de menos prioridad.

Una constante se evaluará según el valor descrito en su definición, así como según el valor que guarda en el momento en que se evalúa.

Las prioridades de los operadores son:

  • −(cambio de signo), no
  • ∗, /, div, mod
  • 3. +, − (resta)
  • 4. =,≠,<,≤,>,≥
  • y
  • o

En igualdad de prioridades, se evalúa de izquierda a derecha.

programación

Declaración de objetos

Antes de que un algoritmo utilice un objeto, es preciso que éste se haya declarado previamente.

  • Si el objeto es constaste, se debe declarar dentro de un apartado acotado por las palabras clave const … fconst.
  • Si el objeto es variable, se declarará dentro de un apartado acotado por las palabras var… fvar.

En el caso de un objeto constante, tenemos que escribir su nombre, su tipo y el valor constante:

En el caso de un objeto variable, la declaración toma la forma:

En el caso de variables del mismo tipo, se pueden declarar de la siguiente forma:

Existen una serie de palabras que delimitan las partes del algoritmo. Estas palabras se denominan palabras clave, y nos ayudan a identificar fácilmente a qué se corresponde cada elemento. Estas palabras claves son exclusivas del lenguaje algorítmico, por lo tanto, no las podemos usar como nombre de los objetos (constantes o variables). Por ejemplo, no podemos usar var como nombre de constante o variable.