You are currently browsing the tag archive for the ‘lenguajes de alto nivel’ tag.

Los lenguajes de programación nos van a permitir escribir programas, es decir, escribir algoritmos en un lenguaje capaz de ser procesado por un computador.

Los lenguajes de programación son lenguajes y, por lo tanto, constan de un léxico, una sintaxis y una semántica.

El léxico es el conjunto de palabras que forman el lenguaje (en C++, por ejemplo, tenemos if, else, +, -, 2, 7.89, etc). La sintaxis es el conjunto de reglas que nos indican como construir frases (C++: if (i>0) { i--;}). La semántica es lo que dota de significado a cada una de esas frases.

Podemos clasificar los lenguajes de programación de diferentes maneras.

En función de su proximidad a la computadora, su arquitectura, o al programador, tenemos lenguajes de bajo nivel y lenguajes de alto nivel.

Los lenguajes de bajo nivel son muy cercanos a la arquitectura del computador (su juego de instrucciones) lo que los hace muy difíciles de programar a la vez que poco portables. Dos ejemplos son el lenguaje máquina (es en binario) y el ensamblador (se utilizan mnemotécnicos en lugar de secuencias de ceros y unos).

Los lenguajes de alto nivel son independientes de la arquitectura (basados en máquinas abstractas) y son mucho más próximos (en cuanto a léxico, sintaxis y semántica) a las personas. Todo esto los hace mas sencillos, flexibles y potentes. Sin embargo, como el computador no los entiende directamente, necesitamos de un traductor (interprete o compilador).

En función del paradigma, la filosofía que hay detrás, tenemos lenguajes de programación procedurales y lenguajes de programación declarativos. En los primeros se describe la secuencia de pasos para resolver el problema (COMO) mientras que en los segundos simplemente se describen los mismos (QUE). Para los primeros tenemos lenguajes imperativos (prima el procedimiento) y lenguajes orientados a objetos (prima el dato). Para los segundos tenemos los funcionales (funciones matemáticas) y los lógicos (predicados lógicos).

Finalmente, en función de si se traducen todas las sentencias de golpe para su posterior ejecución, compilados, o si se va traduciendo y ejecutando instrucción a instrucción, interpretados.

¿Qué elementos forman el léxico de un lenguaje? En primer lugar, las palabras reservadas: tienen un significado especial dentro del lenguaje, son sus instrucciones más básicas, y no se pueden utilizar para nada mas (listas para C#, C++ y Java). En segundo lugar, los símbolos, que pueden ser operadores (C++: =, +, -, …), delimitadores (C++: [, ], (, ), {,…), comentarios (C++: /* */, //) o directivas de preprocesado, que son ordenes especiales para el compilador (C++: #). En tercer lugar, los identificadores, que nos permiten dar nombres a constantes, variables y procedimientos (en C++ aparecen caracteres alfanuméricos, es decir, letras y números junto con el símbolo _. Han de empezar por una letra o por _ y se distinguen las mayúsculas de las minúsculas). Finalmente, tenemos los valores constantes: numéricos (3.56), carácter ('b') o cadena ("hola").

Las variables son “cajas” donde vamos a poder almacenar datos. El tipo de dato que almacenan va a ser fijo, pero el valor puede ser “variable”, de aquí su nombre. Estas cajas se corresponden con zonas de memoria accesibles mediante nombre. Se identifican con un nombre y tienen cuatro atributos: su tipo, su valor, su ámbito y su tiempo de vida. Con ella podemos consultar (indirección) su valor o modificarlo (asingación). En la mayoria de lenguajes se tienen que declarar (se fija el tipo y el nombre) antes de utilizarlas (C++: float a, b=1.2, c;).

Las constantes, a diferencia de las variables, almacenan un valor de un tipo que ya no se podrá modificar (C++: const double PI = 3.141592;). Ayudan a la legibilidad del programa, a su mantenimiento…

 

Anuncios

Las entradas con este título corresponden a un pequeño resumen de las ideas mas importantes explicadas en esta asignatura que imparto este cuatrimestre. La fecha de la entrada corresponde con el día de la explicación.

Este primer día, lo único que he hecho es poner cada uno de los temas en contexto, tratando de ver el porque de estudiar cada uno de ellos.

1. Introducción. Se introducen los conceptos básicos: ordenador, algoritmo, programa, lenguajes de programación, arquitectura de Von Neumann, hardware, software (de sistema, de aplicación), sistema operativo. También un poco de historia de los ordenadores y tipos de estos.

2. Programación en lenguajes de alto nivel. Se presentan los diferentes paradigmas de programación: imperativa y declarativa. Se ve como analizar, diseñar e implementar algoritmos. Introducir los tipos simples de datos.

3. Programación estructurada. El teorema de la programación estructurada, que nos dice que cualquier programa con sentencias GOTO se puede reescribir prescindiendo de estas y utilizando únicamente las estructuras secuencial, alternativa e iterativa.

4. Programación modular. Se define lo que es un modulo y se presentan los subprogramas: funciones y procedimientos. Se introduce la recursividad.

5. Tipos de datos estructurados. Que son los arreglos (conjuntos de datos homogéneos agrupados bajo un mismo nombre. En función de la dimensión o del tipo de dato tenemos vectores, matrices, cadenas…) y las tuplas o registros (conjunto de datos heterogéneo).

6. Ficheros. Hasta ahora todo esta en memoria física. Esta se pierde al apagar el ordenado. Necesitamos almacenar la información en disco. Es aquí donde entra el concepto de fichero. Se explican los distintos tipos de ficheros y como trabajar con ellos.

octubre 2019
L M X J V S D
« Oct    
 123456
78910111213
14151617181920
21222324252627
28293031  
Anuncios