Skip to Content
Paradigmas de ProgramaciónIntro (PdP)

Introducción (PdP)

En Paradigmas de Programación se estudian los fundamentos de los lenguajes de programación, identificar dichos conceptos en lenguajes concretos y evaluar situaciones en las que un lenguaje es más adecuado que otro.

Es importante tener en cuenta esta definición:

Un lenguaje de programación es una notación formal para especificar computaciones. Los programas construidos en un lenguaje son la descripción de un proceso dinámico en un texto.

  • La sintaxis es el texto del programa.

  • La semántica las cosas que el programa hace.

La implementación de un lenguaje de programación debe transformar la sintaxis de un programa en instrucciones de máquina que puedan ser ejecutadas y suceda la secuencia de acciones que el programa describe. Dicha implementación es lograda a través de un compilador.

Definiendo lo que es un paradigma de programación:

Un paradigma de programación es una configuración frecuente de características de un lenguaje de programación.

Minilenguaje Turing-completo

Un minilenguaje Turing-completo es un lenguaje de programación que tiene la capacidad de expresar cualquier computación que pueda ser realizada por una máquina de Turing.

Un minilenguaje Turing-completo debe tener al menos:

  • Asignación: la capacidad de modificar el estado de una variable.

  • Variables enteras, valores, operaciones

  • Condicionales: if, else

  • Go-to: la capacidad de alterar el flujo de control del programa, permitiendo saltar a diferentes partes del código.

Declaraciones de variables

  • Las declaraciones de variables tipadas restringen los posibles valores de una variable en la ejecución del programa. Al declarar una variable esta se asocia a una ubicación en memoria (global, en la pila o en el heap). Podemos definir tres componentes de una variable:

  • L-valor: la ubicación en memoria.

  • R-valor: el valor almacenado en la ubicación de memoria.

  • Identificador: el nombre de la variable en el texto del programa.

Observemos el siguiente ejemplo:

x := 1 // Guardamos 1 como R-valor de la ubicación señalada por el L-valor de x. x := x + 1 // Obtenemos el R-valor de x que encontramos en el L-valor ligado al identificador de x, le sumamos 1 y guardamos el resultado como nuevo R-valor en la misma ubicación de memoria.

Observemos que:

  • El R-valor de un puntero es el L-valor de otra variable.
  • Las constantes solo tienen R-valor.
  • Las funciones solo tienen L-valor.