Académique Documents
Professionnel Documents
Culture Documents
Lenguaje ensamblador:
Codificación mnemotécnica del lenguaje máquina.
Necesita un traductor.
Se pueden utilizar etiquetas en vez de posiciones de memoria
Lenguajes de alto 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.
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.
Al tener que traducirlo, es más lento e ineficiente que el lenguaje de bajo nivel.
a)PARADIGMAS DE PROGRAMACIÓN.
b)CLASIFICACIÓN DE LENGUAJES SEGÚN LA ADMINISTRACIÓN DE
MEMORIA
c)OTRAS CLASIFICACIONES
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: 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.
Estáticos: Los requisitos de memoria del programa se pueden calcular antes
de ejecutar el programa. No permiten recursividad. Fortran, Cobol.
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.
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.
Por la forma en que se pasa a lenguaje máquina.
Lenguajes compilados → C, Pascal, C++,...
Lenguajes interpretados → BASIC
Se denomina dato a cualquier objeto manipulable por el ordenador. Un dato puede ser un
caracter leido de un teclado, informacion almacenada en un disco, un numero que se
encuentra en la memoria central, etc. Los distintos tipos de datos se representan en diferentes
formas en el ordenador: por ejemplo, no se almacena internamente de la misma manera un
numero entero que un caracter. Aunque los lenguajes de alto nivel permiten en alguna
medida ignorar la representaci ́on interna de los datos, es preciso conocer algunos
conceptos minimos.
A nivel de maquina todos los datos se representan utilizando una secuencia finita de bits. De
este hecho ya se deduce que no todos los datos son representables en un ordenador. La
definicion de un tipo de dato incluye la definicion del conjunto de valores permitidos y las
operaciones que se pueden llevar a cabo sobre estos valores. Cuando se utiliza un dato en
un programa es preciso que este determinado su tipo para que el traductor sepa como debe
tratarlo y almacenarlo. Dependiendo del lenguaje puede o no ser preciso declarar
expresamente en el programa el tipo de cada dato. No todos los tipos de datos existen en
todos los lenguajes de programacion. Hay lenguajes mas ricos que otros en este sentido. Los
tipos de datos basicos mas usuales son:
TIPOS DE DATOS
Números enteros
El tipo int (del inglés integer, que significa «entero») permite representar números enteros.
Los números enteros literales se escriben con un signo opcional seguido por una secuencia de dígitos:
Números reales
El tipo float permite representar números reales.
El nombre float viene del término punto flotante, que es la manera en que el computador representa
internamente los números reales.
TIPOS DE DATOS
Números complejos
El tipo complex permite representar números complejos.
Los números complejos tienen una parte real y una imaginaria. La parte imaginaria es denotada
agregando una j inmediatamente después de su valor:
Valores lógicos
Los valores lógicos True y False (verdadero y falso) son de tipo bool, que representa valores lógicos
Texto
A los valores que representan texto se les llama strings, y tienen el tipo str.
TIPOS DE DATOS
Nulo
Existe un valor llamado None (en inglés, «ninguno») que es utilizado para representar casos en
que ningún valor es válido, o para indicar que una variable todavía no tiene un valor que tenga
sentido. El valor None tiene su propio tipo, llamado NoneType, que es diferente al de todos los
demás valores.
SINTAXIS ABSTRACTA
Se puede representar cada expresión del cálculo lambda usando el tipo de dato lc-exp definido
anteriormente mediante define-datatype.
.
ESTRATEGIAS PARA REPRESENTAR DATOS
TEXTO: Una pieza de texto en cualquier idioma es una secuencia de simbolos usados para
representar una idea en ese idioma. Por ejemplo, el idioma inglés utiliza 26 símbolos (A, B, C, ..., Z)
para representar las letras mayúsculas, 26 símbolos (a, b, c,..., z) para representar las letras
minúsculas, 9 símbolos (0, 1, 2,..., 9) para los caracteres numéricos (no números; la diferencia se verá
más adelante) y simbolos (., ?, :, :..., !) para representar la puntuación. Otros símbolos como el
espacio en blanco, la línea nueva y el tabulador se usan para alineación de texto y legibilidad.
Se puede representar cada simbolo con un patrón de bits. Dicho de otra forma, texto como la
palabra "BYTE", formada por cuatro símbolos, puede representarse como 4 patrones de bits, en los
que cada pa- trón define un solo símbolo
ESTRATEGIAS PARA REPRESENTAR DATOS
AUDIO
El audio es una representación de sonido o
música. Aunque no hay un estándar para
almacenar el sonido o la música, la idea es
convertir el audio a datos digitales y usar patrones
de bits. El audio por naturaleza es información
análoga. Es continuo (análogo), no discreto
(digital). La figura muestra los pasos a seguir para
cambiar los datos de audio a patrones de bits.
ESTRATEGIAS PARA REPRESENTAR DATOS
El parámetro formal es x y el cuerpo es (f (f x)). El cuerpo debe ser reconocido como una
app-exp, y así sucesivamente.
El problema de convertir un árbol de sintaxis abstracta a una representación lista-y
símbolo (con lo cual Scheme mostraría las expresiones en su sintaxis concreta), se
resuelve con el procedimiento:
La tarea de derivar el árbol de sintaxis abstracta a partir de una cadena de caracteres es
denominado parsing, y es llevado a cabo por un programa llamado parser (analizador
sintáctico)
El siguiente procedimiento deriva la representación en sintaxis concreta a ´arboles de
sintaxis abstracta:
Mostramos que un árbol de sintaxis abstracta (AST) ad-hoc es más
conveniente que un árbol de derivación ya que permite ventajas en
términos del espacio de memoria necesario para almacenarlo, tiempo
requerido para recorrerlo y facilidad de mantención.