Tema 2. Características de los lenguajes de programación.

J. Pablo Reymon

2023-09-05

  • facebook logo
  • linkedIn logo
  • whatsapp logo
  • X logo
« Anterior
Siguiente »

Sintaxis de un lenguaje de programación.

“Un lenguaje de programación crea instrucciones de manera simbólica y legible para el ser humano, para ser interpretadas y ejecutadas en una máquina.”

Al conjunto de instrucciones descritas en el lenguaje, se le denomina sintaxis, el cual permite diferenciar entre uno y otro lenguaje de programación al momento de ser escrita por el usuario. La sintaxis de un lenguaje de programación contiene los siguientes elementos:

  • Métodos: bloques de código definidos dentro del lenguaje de programación, contienen instrucciones específicas que permiten simplificar los argumentos de la sintaxis.
  • Elementos: son definidos por el usuario, para que las instrucciones puedan ejecutarlas para realizar los cálculos requeridos del programa, estos son: datos, identificadores, variables, vectores, constantes y matrices.
  • Estructuras de ejecución: generalmente divididas en: secuenciales, de decisión y de repetición, procedimientos y funciones. El usuario ordena las instrucciones dentro de un bloque de código propio y puede devolver un resultado esperado.

 

Nivel de abstracción y forma de la sintaxis de un lenguaje de programación.

Los lenguajes de programación se pueden clasificar según su nivel de abstracción y su tipo de sintaxis. El nivel de abstracción se refiere al grado de cercanía o lejanía que tiene un lenguaje con respecto a la máquina o al problema a resolver. Los lenguajes de bajo nivel son aquellos que se expresan en términos de las instrucciones y los datos que maneja el hardware, como el lenguaje ensamblador o el código máquina. Los lenguajes de alto nivel son aquellos que se expresan en términos más cercanos al dominio del problema, como el lenguaje C, Java o Python. Estos lenguajes facilitan la escritura, la lectura y el mantenimiento del código, pero requieren de un proceso de traducción o interpretación para que la máquina pueda ejecutarlos.

Adicionalmente, los lenguajes de programación se pueden clasificar por su sintaxis, estos son a grandes rasgos estructurados y no estructurados, dependiendo de si el lenguaje sigue una organización jerárquica y modular de los bloques de código, o si permite saltos arbitrarios entre ellos.

Los lenguajes estructurados facilitan la legibilidad, la depuración y el mantenimiento del código, mientras que los lenguajes no estructurados ofrecen mayor flexibilidad y control al programador, pero también mayor complejidad y riesgo de errores.

 

Tipos de programas.

Los lenguajes de programación son sistemas de símbolos y reglas que permiten crear programas informáticos, es decir, instrucciones que una computadora puede seguir para realizar una tarea específica. Existen diferentes formas de clasificar los lenguajes de programación según diversos criterios, como su nivel de abstracción, su paradigma, su sintaxis, etc.

Como se mencionó anteriormente, el lenguaje de programación crea las instrucciones de manera simbólica; sin embargo, para que un computador pueda entenderlas, deben ser convertidas a lenguajes de nivel máquina para que la ejecución se complete. Estos conversores de lenguaje se pueden clasificar en:

  • Traductores: se convierte el programa al lenguaje absoluto (programa objeto), este se puede ejecutar las veces que sea necesario sin necesidad de volver a traducirlo.
    • Ensamblador: lenguajes de bajo nivel, mediante el lenguaje ensamblador “assembler” el programa es traducido y se asignan las direcciones en la memoria para almacenar las instrucciones y datos.
    • Compilador: lenguajes de alto nivel, generando instrucciones al lenguaje absoluto cuando el lenguaje de programación es empleado. Los lenguajes compilados son aquellos que requieren de un programa denominado compilador, que transforma todo el código fuente en código ejecutable antes de que pueda ser ejecutado por la computadora. Esto implica que el código fuente debe ser escrito para una plataforma específica, y que no puede ser ejecutado en otra sin volver a compilarlo. Algunos ejemplos de lenguajes compilados son C, C++, PASCAL Y FORTRAN.
  • Intérpretes: a diferencia de los traductores, este no se almacena y no necesita ser ejecutado varias veces para que el programa sea interpretado. Los lenguajes interpretados son aquellos que utilizan un programa llamado intérprete, que lee y ejecuta el código fuente línea por línea, sin necesidad de generar un archivo ejecutable previamente. Esto permite que el código fuente sea portable, es decir, que pueda ser ejecutado en cualquier plataforma que tenga el intérprete adecuado. Algunos ejemplos de lenguajes interpretados son Python, Ruby, JavaScript y PHP.

 

Paradigmas de la programación.

Cuando diseñamos un programa debemos tomar en cuenta qué característica y secuencia en la estructura se debe llevar. Los paradigmas de la programación brindan un principio empírico para el correcto diseño de programas. Cada uno de estos paradigmas tiene su ventaja y desventajas, así como sus aplicaciones más adecuadas. Existen muchos paradigmas, inclusive algunos programas pueden abarcar más de un paradigma, para fines prácticos se consideran dos de los más importantes:

  1. Paradigma procedimental: enfocados en el procedimiento, es decir, detalla mecanismos para llegar a la solución, generalmente son:
    • Imperativos (orden definida y estructurada): este tipo de paradigma se basa en la ejecución secuencial de instrucciones que modifican el estado del programa. Los lenguajes imperativos son los más extendidos y utilizados, como C, Java o Python. Este paradigma es fácil de entender y permite un control detallado del flujo del programa, pero también puede generar código complejo, difícil de depurar y mantener.
    • Orientado a objetos (a través de clases y objetos): definición de entidades que encapsulan datos y comportamientos. Los lenguajes orientados a objetos son más modernos y populares, como Java, C# o Ruby. Este paradigma promueve la modularidad, la herencia y el polimorfismo, pero también puede generar código redundante, acoplado y difícil de entender.
  2. Paradigma declarativo: enfocados en la solución, sin importar la estructura o el mecanismo de ejecución. Este se basa en la descripción de los resultados que se requieren obtener, sin especificar los pasos para lograrlos. Los lenguajes declarativos son más abstractos y expresivos, como SQL, HTML o PROLOG. Este paradigma facilita la escritura de código conciso, claro y reusable, pero también puede ser menos eficiente, menos flexible y más difícil de optimizar.
    • Funcionales (función central del programa): Aplicación de funciones matemáticas que no producen efectos secundarios ni modifican el estado del programa. Los lenguajes funcionales son más puros y elegantes, como Haskell, Lisp o Scala. Este paradigma favorece la composición, la recursión y el paralelismo, pero también puede ser menos intuitivo, menos familiar y más difícil de depurar.
    • Lógicos (inferencia de datos para la solución del problema): inferencia de hechos y reglas mediante un sistema deductivo. Los lenguajes lógicos son más especializados y potentes, como PROLOG, DATALOG o ASP. Este paradigma resuelve problemas complejos de forma declarativa, pero también puede ser menos general, menos práctico y más difícil de aprender.

 

Objetos y clases en los lenguajes de programación.

Los objetos y las clases son conceptos fundamentales en la programación orientada a objetos. Un objeto es una entidad que tiene un estado (atributos) y un comportamiento (métodos). Una clase es una plantilla que define las características y el comportamiento común de todos los objetos de un mismo tipo. Los objetos se crean a partir de las clases mediante el proceso de instanciación. Cada objeto tiene una identidad única, un estado propio y puede interactuar con otros objetos mediante mensajes.

En un lenguaje de programación, las clases se definen mediante una sintaxis específica que indica el nombre de la clase, los atributos, los métodos y otras propiedades. Los objetos se crean mediante la palabra clave new o una función constructora que asigna valores iniciales a los atributos y devuelve una referencia al objeto. Los atributos y los métodos se acceden mediante el operador punto o la notación de corchetes, dependiendo del lenguaje. Algunos lenguajes permiten definir modificadores de acceso (publico, privado o restringido) para controlar la visibilidad de los atributos y los métodos desde otras clases.

“Un objeto es una instancia de una clase, es decir, una representación concreta de un concepto abstracto. Una clase es una estructura que define las propiedades y los métodos de los objetos que pertenecen a ella. Los objetos se crean a partir de las clases mediante un proceso llamado instanciación.”

 

Herencia y polimorfismo en lenguajes de programación.

Le herencia y el polimorfismo son dos conceptos fundamentales de la programación orientada a objetos. La herencia permite definir clases que heredan los atributos y métodos de otras clases, lo que facilita la reutilización y la organización del código. El polimorfismo permite que un objeto pueda comportarse en diferentes formas según el contexto, lo que aumenta la flexibilidad y la abstracción del código.

Un ejemplo de herencia sería el siguiente:

Se tiene la clase Vehículo que contiene los siguientes atributos: color, marca, modelo. También contiene métodos como: arrancar, frenar, acelerar. 

A partir de esta clase, podemos definir clases child que heredan estos atributos, como: Coche, Moto, Bicicleta, etc.

Cada clase child adicionalmente puede tener sus propios atributos y métodos específicos, retomando el ejemplo anterior, adicionalmente podríamos agregar algunos atributos como número de puertas, cilindrada, tipos de freno, etc.

Un ejemplo de polimorfismo:

Se tiene la clase Animal, puede contener un método llamado hacer_sonido, que imprime el sonido que hace el animal.

A partir de esta clase, podemos definir clases child que heredan estos atributos, como: Perro, Gato, Pato, etc.

En este caso cada clase child puede redefinir el método hacer_sonido para imprimir el sonido específico de cada animal, como el ladrido al perro, el maullido al gato y el graznido al pato. Así, si se tiene una lista de animales y se llama al método para cada uno de ellos, se obtendrá el sonido correspondiente a cada tipo de animal.

Sobre el artículo

Texto creado bajo la licencia de Raiko EngineLink. Queda estrictamente prohibida la replicación de este y todos los contenidos creados fuera de esta plataforma. ©, Todos los derechos reservados. Descubre cómo hacemos esto.

manage_search