PDF de programación - TEMA 2: Lenguajes de programación

Imágen de pdf TEMA 2: Lenguajes de programación

TEMA 2: Lenguajes de programacióngráfica de visualizaciones

Publicado el 18 de Marzo del 2019
1.031 visualizaciones desde el 18 de Marzo del 2019
170,9 KB
11 paginas
Creado hace 19a (11/01/2005)
TEMA 2: Lenguajes de programación

TEMA 2: Lenguajes de programación

2.1.- Introducción a los lenguajes de programación

¿Qué es un lenguaje?

Conjunto de símbolos y palabras (vocabulario o léxico) y conjunto de reglas (sintaxis
y semántica) que permiten agrupar los símbolos para formar las frases del lenguaje.

¿De programación?

Que sirve para especificar algoritmos sobre un ordenador.

Un programa se escribe como una secuencia de frases del lenguaje.

Un lenguaje de programación viene definido por un léxico, una sintaxis y una semántica

2.1.1.- Léxico

Conjunto de símbolos que se pueden usar en un lenguaje.

Estos símbolos o elementos básicos del lenguaje, podrán ser de los siguientes:



Identificadores: nombres simbólicos que se darán a ciertos elementos de
programación (p.e. nombres de variables, tipos, módulos, etc.).

• Constantes: datos que no cambiarán su valor a lo largo del programa.

• Operadores: símbolos que representarán operaciones entre variables y

constantes.



Instrucciones: símbolos especiales que representarán estructuras de
procesamiento, y de definición de elementos de programación.

• Comentarios: texto que se usará para documentar los programas

Fernando Barber y Ricardo Ferrís

9

TEMA 2: Lenguajes de programación

2.1.2.- Sintaxis

Consta de unas definiciones, denominadas reglas sintácticas o producciones que
especifican la secuencia de símbolos que forman una frase del lenguaje. Estas reglas
dicen si una frase está bien escrita o no.

Las reglas sintácticas pueden contener dos tipos de elementos:

• Elementos Terminales (∈ Vocabulario)

• Elementos no Terminales, que son construcciones intermedias de la gramática.

Existen diversas formas de especificar las reglas, pero únicamente vamos a ver dos de
ellas:

• Notación BNF (Backus-Naur Form). Es de las primeras notaciones que se empezó a

utilizar para especificar lenguajes de programación.

Notación BNF:

<elemento no terminal>::= Definición1 | Definición2 | ...

Los elementos terminales, o sea, que pertenecen al vocabulario, se escriben tal cual.
Los elementos no terminales se escriben entre los símbolos <>.

Ejemplo: Descripción sintáctica de una expresión matemática en notación BNF:
---> 4*(3+1)
<expresión> ::= <numero> | (<expresión>) | <expresión><operador><expresión>
<operador> ::= + | - | * | /
<numero> ::= <digito> | <numero><digito>
<digito> ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0

• Diagramas sintácticos. Es una representación gráfica de la sintaxis. Tiene la ventaja

de ser más intuitivo.

Los elementos terminales se inscriben en una elipse. Los elementos no terminales se
inscriben en un rectángulo.

Fernando Barber y Ricardo Ferrís

10

TEMA 2: Lenguajes de programación

Ejemplo: Descripción sintáctica de una expresión matemática en diagrama
sintáctico:
---> 4*(3+1)

2.1.3.- Semántica

Define el significado de las construcciones sintácticas del lenguaje y de las expresiones
y tipos de datos utilizadas

Ejemplo:

if (a>b) max := a else max := b;
el significado corresponde a la construcción algorítmica
Si … entonces … sino …
Además la expresión después de If debe tener un resultado lógico (verdad o
falso.)

2.2.- Lenguajes de bajo nivel y lenguajes de alto nivel.

Los lenguajes de programación se pueden clasificar en lenguajes de bajo y alto nivel
dependiendo de lo cercanos o lejanos que estén de la arquitectura de la máquina en la
que van a funcionar.

2.2.1.- Lenguajes de bajo nivel:

• Están basados directamente en la máquina de Von Neumann, por lo que están a

un nivel muy cercano a la máquina.

Fernando Barber y Ricardo Ferrís

11

TEMA 2: Lenguajes de programación

• Las instrucciones del lenguaje son las instrucciones del microprocesador del

ordenador, que normalmente son demasiado simples.

• Es exclusivo de cada ordenador.

• Es difícil y costoso de programar.

En lenguajes de bajo nivel distinguimos entre lenguaje máquina y lenguaje
ensamblador.

Lenguaje máquina:



Instrucciones reconocidas por los circuitos del procesador.

Se codifican en binario.

Los datos se referencian por su posición de memoria.

Lenguaje ensamblador:

Codificación mnemotécnica del lenguaje máquina.

Necesita un traductor.

Se pueden utilizar etiquetas en vez de posiciones de memoria.

Ejemplo: Suma de 3 + 5 en un procesador 8086 (también Pentium, Pentium II, …)

Ensamblador
mov ax, 0003
add ax, 0005

Código máquina (Hexadecimal)
B8 03 00
05 05 00

2.2.2.- Lenguajes de alto nivel:

• Están basados en máquinas abstractas, que facilitan la comprensión por

personas.



Instrucciones más flexibles y potentes.

• Necesita un traductor para convertir el programa a lenguaje máquina, que es el

que entiende el ordenador.

• No depende del procesador, por lo que el mismo programa sirve para diferentes

ordenadores.

Fernando Barber y Ricardo Ferrís

12

• Al tener que traducirlo, es más lento e ineficiente que el lenguaje de bajo nivel.

TEMA 2: Lenguajes de programación

Ejemplo: Suma de 3 + 5 en C++

x = 3 + 5

2.3.- Clasificación de los lenguajes de alto nivel

2.3.1.- Paradigmas de programación.

Por paradigma de programación se entiende una “filosofía” de programar, es decir, los
lenguajes que utilizan un mismo paradigma de programación utilizarán los mismos
conceptos básicos para programar. Se pueden definir cuatro tipos fundamentales:

- Imperativos

- Orientados a objetos

- Funcionales

- Logicos













Procedurales, describen los pasos a seguir para
encontrar la solución

Declarativos, describen el problema a solucionar

Imperativos: La unidad de trabajo es la sentencia (acción). Pascal, C.

Orientados a Objetos: La unidad de trabajo es el objeto. Agrupa las estructuras de
datos con sus algoritmos. Smalltalk.

Funcionales: La unidad es la función. Consiste en combinar funciones para conseguir
funciones más complejas hasta llegar a la función que es el programa. Lisp. Basado en
el Cálculo Lambda.

Lógicos: Se especifican los hechos y las propiedades que especifican el problema. El
sistema utiliza esa información para encontrar la solución. Prolog. Basado en la Lógica
de Predicados.

2.3.2.- Clasificación de lenguajes según la administración de memoria

Estáticos: Los requisitos de memoria del programa se pueden calcular antes de ejecutar
el programa. No permiten recursividad. Fortran, Cobol.

Fernando Barber y Ricardo Ferrís

13

TEMA 2: Lenguajes de programación

Basados en pila: Se calculan los requisitos de memoria generales del
programa antes de ejecutarlo. El resto de la memoria necesaria durante
la ejecución del programa se utiliza en forma de pila. Algol 60.

Pila

Fija

Dinámicos: No se puede saber a priori la cantidad de memoria que utilizará el
programa. El programa puede crear y destruir estructuras de datos en cualquier lugar del
programa. Prolog, Lisp.

C++ es un lenguaje principalmente basado en pila, pero que también tiene
características dinámicas.

2.3.3.- Otras clasificaciones

Por la forma en que se pasa a lenguaje máquina.

• Lenguajes compilados → C, Pascal, C++,...
• Lenguajes interpretados → BASIC

Por el objetivo principal de los programas escritos en el lenguaje.

• Lenguajes de propósito general → C, Delphi...
• Lenguajes para la enseñanza → Logo, Pascal, Modula, BASIC...
• Lenguajes para cálculo científico → Fortran, Matlab, Mathematica, Maple...
• Lenguajes para gestión → Cobol...
• Lenguajes para la gestión de bases de datos → System Query Languages (SQL)

Informix...

• Lenguajes de inteligencia artificial → Prolog, Lisp...
• Programación multiplataforma e internet → Java

2.4.-Historia de los lenguajes de alto nivel

1945- En 1945, el matemático y químico Jonh (Janos) von Neumann presenta los principios

generales que debe seguir una máquina de propósito general.
El primer lenguaje en el que se programaron los ordenadores fue el propio del
procesador, es decir, instrucciones análogas a las presentes en la máquina de Von
Neumann. Sin embargo era necesario tener en cuenta los detalles propios de la máquina
para poder realizar cualquier cálculo y además era muy tedioso introducir el programa
en el ordenador.

Fernando Barber y Ricardo Ferrís

14

TEMA 2: Lenguajes de programación

la

programación,

los

fueron

ensambladores

1951 En 1951, apenas siete años después de que Von Neumann introdujera el concepto de
programa almacenado en memoria, Wilkes, Wheeler y Gill describen un cargador de
programas que realiza la conversión de valores decimales a binarios para permitir una
mayor comodidad en la codificación de instrucciones y direcciones. Con objeto de
simplificar
enriqueciéndose
paulatinamente, hasta convertirse en traductores de representaciones simbólicas
(mnemotécnicas) del lenguaje máquina (lenguajes ensambladores) al propio lenguaje
máquina.
Los lenguajes ensambladores siguen siendo próximos a los lenguajes de máquina y, si
bien simplifican considerablemente el proceso de la programación, mantienen dos de
sus principales inconvenientes: requieren un excesivo nivel de detalle en la escritura de
programas y son dependientes del sistema computador concreto, de cuyas instrucciones
elementales hace representación simbólica.
Es por ello que se intentó crear un nuevo lenguaje que no estuviese basado directamente
en las instrucciones propias de la máquina (que no dependiese de la máquina concreta),
sino en una abstracción de éstas y que fuese más cómoda para el programador. De la
misma forma, no se utilizarían directamente los dispositivos físicos (registros, celdas de
memoria, etc.) sino abstracciones de éstos (variables.) De esta forma surge un nuevo
concepto de lenguaje de programación, donde cada lenguaje lleva asociado una
máquina abstracta sobre el que se puede ejecu
  • Links de descarga
http://lwp-l.com/pdf15536

Comentarios de: TEMA 2: Lenguajes de programación (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad