Documente Academic
Documente Profesional
Documente Cultură
Lenguajes de programación
Lenguajes
Naturales De Programación
De Máquina Simbólicos
Aplicaciones Científicas
Primeros computadores digitales aparecieron en 1940
Características: Alta tasa de cálculos aritméticos de punto
flotante
Primer lenguaje exitoso de alto nivel: Fortran
Aplicaciones de Negocio
Comenzó en 1950
Características: facilidades de generar reportes, maneras
precisas de describir y almacenar números decimales y
caracteres, y la capacidad de especificar operaciones
aritméticas
Primer lenguaje exitoso de alto nivel: COBOL (1960)
Clasificación por área de aplicación
Inteligencia Artificial
Características: cálculo simbólico en vez de
numérico
Primer lenguaje exitoso de alto nivel: LISP
(1965)
Programación de Sistemas
Características: ejecución continua y eficiente
UNIX es escrito casi por completo en C
Clasificación por área de aplicación
Lenguaje de Scripting
Lista de comandos, que son llamadas a
subprogramas del sistema para realizar
funciones, tales como gestión de archivos
Procesamiento de texto:
● Perl
● Python
● Ruby ..
Programación Web
● JavaScript
● PHP
● Ruby …
Fundamentos de los lenguajes de
Programación
La distinción entre estático y dinámico
El alcance de una declaración de x es la región del
programa en la que los usos de x se refieren a ésta
declaración
Alcance estático ó léxico
static en Java
Habilidad del compilador para determinar la ubicación de
memoria en la que puede encontrarse la variable.
public static int x;
Alcance dinámico. En tiempo de ejecución
Cada objeto de la clase tendría su propia ubicación en la
que se guardará x, y el compilador determinará esos
lugares en tiempo de ejecución
…Fundamentos de los lenguajes de
Programación
Entornos y estados
Un objeto de datos representa un
recipiente para valores de datos, un
lugar donde los valores se pueden
guardar y luego recuperar.
Se caracteriza por un conjunto de
atributos, el mas importante es el tipo
de dato.
Un valor de datos esta representado por un
patrón de bits.
…Fundamentos de los lenguajes de
Programación
…Entornos y estados
0000000000001001
A: 1001 A:
a) Objeto de datos c) Variable enlazada
b) Valor de datos
…Entornos y estados
…Entornos y estados
1. Entornos.- Es una asignación de
nombres a ubicación de memoria
2. Estados.- Es una asignación de las
ubicaciones en memoria a sus
valores
Los entornos cambian de acuerdo a las
reglas de alcance de sus lenguajes ,
son dinámicas en su mayoría
(Dynamic Binding Time)
…Fundamentos de los lenguajes de
Programación
Alcance Estático
Control Implícito .-secuencia física de sentencias,
reglas de precedencia, etc. Las define el lenguaje.
Public
Private
Protected
Estructura de Bloque
{ }, begin – end,
Procedimientos, funciones y métodos
Anidamiento
Alcance Estático
Variable globales: dentro de toda la clase o
módulo
Variables locales: se encuentran dentro de un
Procedimiento o subrutina
Las variables que están afuera si pueden ser vistas adentro,
pero las de adentro no pueden ser vistas afuera.
…Fundamentos de los lenguajes de
Programación
…Alcance Dinámico.-
·# define a (x+1)
int x=2;
void b(){ int x =1;printf(“%d\n”,a);}
void c(){printf(“%d\n”,a);}
void main() {b(); c();}
Lenguajes Funcionales
Sentencias del programa describen el valor de
expresiones, usando esencialmente frases sustantivas
Los primeros aparecieron en los 60's: Lisp, Apl, Forth
Se denominan también aplicativos.
Aplican funciones, ya sea, recursivamente o por
composición.
Se caracterizan por una programación sin asignaciones ,
ie, puramente funcional.
Los usuarios de los LP funcionales NO deben
preocuparse de manejar el almacenamiento de datos.
“Ejemplos: Lisp, Scheme, ML
…Breve Revisión de los Paradigmas
de Programación
Lenguajes Lógicos
Son LP diseñados principalmente para
aplicaciones de IA, máquinas de 5° generación.
Los LP lógicos revisan la presencia de una
determinada condición, la que, si es verdadera
se ejecuta una acción apropiada
Se basa en la noción de definir objetos y
relaciones de inferencia en clases de objetos.
…Breve Revisión de los Paradigmas
de Programación
Lenguajes orientados a objetos
Principios Básicos
Abstracción
Encapsulamiento
Herencia
Polimorfismo
Niveles de Lenguaje de Programación
Lenguaje de Máquina
Operaciones son cosas simples tales como
● Mover contenidos de la memoria ubicada en 08125 al registro
7
● Adicionar contenidos de la memoria ubicada en 08125 al
registro 7
● Saltarse la próxima instrucción si el registro 1 es cero
Instrucciones son codificadas como números
No variables: operandos son direcciones de memoria o registros
numerados
Programación requiere un entendimiento profundo acerca de la
arquitectura de la máquina
Programas no son portables porque las instrucciones y su codificación
son específicos a una arquitectura
Programas son extremadamente difíciles de leer, depurar y escribir
Niveles de Lenguaje de Programación
Lenguaje Ensamblador
Operaciones pueden tener nombres simbólicos
Puede usar macros para secuencias de código comunes
Un ensamblador traduce a código de máquina
También es dependiente de la máquina
Igual de difícil que escribir que código de máquina
Niveles de Lenguaje de Programación
Lenguajes de Alto Nivel
Ejemplos: C, Lisp, Java, Fortran …
if ( x == 3 )
<instrucciones>
else
<otras instrucciones>