sábado, 20 de noviembre de 2010
Tipos de Datos [Lenguajes de Programación FIME]
lunes, 15 de noviembre de 2010
Reporte #8
El objetivo en el diseño de estos lenguajes es permitir a los programadores utilizar el mejor paradigma para cada trabajo, siendo que ninguno resuelve todos los problemas de la forma más fácil y eficiente posible.
Oz
Oz es un ejemplo de un lenguaje multiparadigma, fue desarrollado originalmente por Gert Smolka y sus estudiantes en una universidad de Alemania a comienzos de los 90's. Este lenguaje tambien es multiplataforma, ya que implementaciones en Unix, Microsoft Windows, Mac, OS X, Linux y FreeBSD.
Paradigmas: Incluye los siguientes paradigmas en su programación.
- Lógica.
- Funcional.
- Imperativa.
- Orientada a Objetos.
- Con Restricciones.
- Distribuida.
- Concurrente.
- Lenguaje Multiplataforma.
- Fácil para programar aplicaciones abiertas y tolerantes a fallas en el lenguaje, lo que permite mucho ahorro de tiempo.
- Permite hacer búsquedas definidas por el usuario.
- Permite captar los diferentes paradigmas de manera natural, lo que permite al programador usar la técnica mas eficiente para crear códigos.
- proc {Merge Xs Ys Zs}
- cond
- Xs = nil then Zs = Ys
- [] Ys = nil then Zs = Xr
- [] X Xr in Xs = X|Xr then Zr in
- Zs = X|Zr {Merge Xr Ys Zr}
- [] Y Yr in Ys = Y|Yr then Zr in
- Zs = Y|Zr {Merge Xs Yr Zr}
- end
- end
viernes, 12 de noviembre de 2010
Reporte #7
- Clase: Son las propiedades y comportamientos de un tipo de objeto, y y a partir de estas la creación de un nuevo objeto.
- Herencia: Son los atributos y operaciones, heredadas o transferidas de una clase hacia otra, por lo que la clase a la que se le heredo puede usar los mismos métodos y variables publicas. Mientras que los componentes privados también son heredados, pero se mantienen escondidos al programador.
- Objeto: Es una instancia de una clase, y se define como un conjunto de propiedades o atributos (datos) y de comportamientos o funcionalidades (métodos) los mismos que consecuentemente reaccionan a eventos.
- Método: Es un algoritmo asociado a un objeto y se ejecuta al recibir el mensaje del algoritmo, es decir, para que sirve, que puede eventos hacer, y que cambiara de un objeto.
- Evento: Es un suceso en el sistema ocasionado por la interacción del usuario con la maquina y se define como la reacción que puede desencadenar un objeto.
- Mensaje: Es aquel que va dirigido a un objeto, mediante un evento generado el cual le dice que método ejecutar.
- Propiedad o Atributo: Es un contenedor de tipo de datos asociados a un objeto, y se definen como las características predeterminadas de un objeto, cuyo valor puede ser modificado por la ejecución de un método.
- Estado Interno: Es una variable que se declara como privada, se utiliza para indicar distintas situaciones posibles para el objeto y solo pueden ser alteradas o accedidas a ellas por algún método.
- ID de un objeto: Un objeto es representado por medio de tablas o entidades las cuales se componen de sus atributos y funciones correspondientes a este.
- Abstracción: Extrae las características esenciales de un objeto y mediante la abstracción se pueden armar nuevos conjuntos de clases.
- Encapsulamiento: Reúne todos los elementos pertenecientes a un mismo objeto, también se puede decir que encapsular, es ocultar detalles del código los cuales no sean de tanta importancia conocer.
- Modularidad: Es la propiedad que permite subdividir una aplicación en partes más pequeñas llamadas módulos, y cada uno de estos módulos deben ser lo más independiente posible de otros módulos, pero tienen conexiones con otros módulos que les permite estar interrelacionados con el programa en si.
- Ocultamiento: Es una manera de aislar los objetos del exterior, es decir, del usuario o de otros objetos, para proteger las propiedades de un objeto de quien no tenga derecho de acceder a ellas.
- Polimorfismo: Comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando.
- Recolección de basura: Es una técnica que se encarga de destruir automáticamente, y por lo tanto, desvincular o liberar la memoria asociada a objetos sin trascendencia.
- Orientación a objetos Pura.
- Tipado Dinámico, se dice así cuando una misma variable puede tomar valores de distinto tipo en distintos momentos, estas son más propias de lenguajes interpretados.
- Interacción entre objetos mediante envío de mensajes.
- Herencia simple y raíz común.
- Recolección de basura.
- Compilación o Interpretación en tiempo de ejecución.
- Múltiples Implementaciones.
- #include (stdio.h)
- #include (conio.h)
- int main()
- {
- int dpto;
- float pag, tot;
- printf("DEPARTAMENTOS: \n1.Ropa \n2.Comestibles \n3.Perfumeria");
- printf("\n\nDe que departamento es la compra?: ");
- scanf("%d", &dpto);
- printf("\n\nCuanto fue el total a pagar por el cliente?: $");
- scanf("%f", &pag);
- switch(dpto)
- {
- case 1: if(pag>=100)
- tot=pag-(pag*0.05);
- break;
- case 2: if(pag>=100)
- tot=pag-(pag*0.035);
- break;
- case 3: if(pag>=100)
- tot=pag-(pag*0.08);
- break;
- default: printf("\aNO EXISTE ESE DEPARTAMENTO");break;
- }
- printf("\nEl total a pagar es de: $ %.2f", tot);
- getche();
- }
jueves, 4 de noviembre de 2010
Reporte #6
- Permite y depende de efectos colaterales.
- Uso de variables globales.
- Dificulta la depuracion y paralelización.
- Implementa el paradigma de las Maquinas Turing.
- El lenguaje fue diseñado para que los programas fueran escritos en tarjetas perforadas.
- Tiene una sintaxis considerada arcaica o antigua para programadores que aprenden lenguajes más modernos.
- Es difícil codificar la instrucción "for".
- Errores en la escritura de sólo un carácter pueden llevar a errores durante el tiempo de ejecución en vez de compilación.
- Posee comandos mucho más breves para efectuar operaciones matemáticas.
- Es de los mejores lenguajes para realizar tareas de computación numérica de alto rendimiento.
1. PROGRAM POLAR_CARTES
2. REAL X, Y, RHO, THETA
3. READ (*,*) RHO, THETA
4. CALL POLARES (X, Y, RHO, THETA)
5. PRINT *, X, Y
6. END
7. SUBROUTINE POLARES (X, Y, RHO, THETA)
8. REAL X, Y, RHO, THETA
9. X = RHO * COS (THETA)
10. Y = RHO * SIN (THETA)
11. END
- 1 En esta linea se le asigna el nombre del programa.
- 2 Se hacen saber las variables de tipo reales.
- 3 En esta linea la función "read" leerá los parámetros que se le asignen a al argumento, es decir a lo que esta dentro del paréntesis.
- 4 en esta linea la instrucción "call" sirve para llamar a otra instrucción que se define en lineas más abajo del programa.
- 7 en esta linea se define una subrutina "subrutine" la cual puede ser llamada tantas veces como se desee en el programa con la instrucción previa "call" más el nombre de dicha subrutina.
- 8 esta linea forma parte de la subrrutina abierta en la linea anterior y asigna las variables de tipo real de la subrutina.
- 9 en esta linea se asigna una función para calcular el valor de la variable "X".
- 10 esta linea también asigna una funcion para calcular el valor de la variable "Y".
- 11 se cierra la subrutina.
- 5 en esta linea se imprimen o se ven en pantalla, los valores calculados por las funciones de las funciones de la subrutina, mediante la instruccion "print".
- 6 fin del programa.
- Es un lenguaje el cual fue dotado con una excelente capacidad de auto documentación.
- Su sintaxis fue creada para evitar el uso de símbolos o caracteres, para facilitar la creación de programas.
- Permite la reserva de memoria dinámica y la programación estructurada.
- Posteriormente se siguieron implementando mejoras al lenguaje, por ejemplo se le añadió la orientación a objetos.
- Existen varios compiladores que permiten emplear este lenguaje como scripting y de servicio web.
- IDENTIFICATION DIVISION.
- PROGRAM-ID. SALUDOS.
- *
- ENVIROMENT DIVISION.
- *
- DATA DIVISION.
- WORKING-STORAGE SECTION.
- *
- PROCEDURE DIVISION.
- INICIO.
- DISPLAY ‘Hola Mundo- ‘.
- STOP RUN.
- 2 y 3 son las lineas para asignar el nombre al programa,por lo tanto las instrucciones "IDENTIFICATION DIVISION" y "PROGRAM-ID" son obligatorios.
- 4, 6 y 9 son asteriscos ( * ) y sirven para poner comentarios en el programa, es decir no saldrán impresos en pantalla.
- 5 y 7 la instrucción "ENVIROMENT DIVISION" y "DATA DIVISION" permiten definir el tipo de ordenador para el que fue escrito el programa, asi como los dispositivos perifericos necesarios para soportar los ficheros utilizados en el programa.
- 8 la instrucción "WORKING-STORAGE SECTION" sirve para asignar a una constante figurativa o predefinida su valor a un campo.
- 11 con la palabra "INICIO" se comienza un bloque.
- 12 la instrucción "DISPLAY" sirve para imprimir en pantalla lo que se encuentre entrecomillas.
- 13 y por ultimo la instruccion "END RUN" finaliza el programa.
Pascal es un lenguaje de programación desarrollado por el profesor suizo Niklaus Wirth publicado en los años 70's. Su objetivo era crear un lenguaje que facilitara el aprendizaje de programación a sus alumnos, utilizando la programación estructurada y estructuración de datos. Pero con el tiempo su utilización se convirtió en una herramienta para la creación de aplicaciones de todo tipo y no se quedo estancado en un simple lenguaje académico. El nombre de Pascal fue escogido en honor al matemático Blaise Pascal.
- El código esta dividido en porciones llamadas funciones o procedimientos.
- Por lo tanto usa una programación estructurada en la manera de crear sus códigos.
- Es necesario declarar el tipo de dato de las variables previamente para poder usarlas.
- es un lenguaje imperativo.
- 1 en esta línea se le asigna el nombre al programa.
- 2 la instrucción “USES” es una llamada a una librería del lenguaje, y “CRT” es una librería en especifico del lenguaje.
- 4 se especifican las variables mediante la instrucción “VAR” y se especifica que es una variable de tipo entera por la instrucción “INTEGER”.
- 5 la instrucción “BEGIN” abre un bloque dentro del programa.
- 6 la instrucción “ClrSrc” sirve para limpiar la pantalla.
- 7 mediante la instrucción “WRITE” se imprime en pantalla lo escrito (‘dentro del paréntesis y de las comillas ’) y mediante la instrucción “READLN” asigna lo escrito a una variable dentro del paréntesis.
- 8 la instrucción “IF” indica que es una estructura condicional y nos condiciona que si el número escrito es igual “THEN” (Entonces) hará lo siguiente:
- 9 después de la condición si se cumple imprimirá el texto indicado, es decir, que el número no es impar ni par.
- 10 de otro modo “ELSE IF” si el modulo del número es igual a cero “THEN” (entonces):
- 11 si cumple con la condición imprimirá que el número es par.
- 12 la instrucción “ELSE” indica que si no se cumplen las condiciones anteriores entonces hará:
- 13 imprimir que es impar, al no haberse cumplido las condiciones anteriores.
- 14 finaliza el programa.
- 15 – 26 es la aplicación del programa al ejecutarse.
- Interacción con diversas plataformas de computación.
- Es muy flexible, permitiendo programar en múltiples estilos.
- Acceso a memoria de bajo nivel por medio del uso de punteros.
- Punteros a funciones y variables estáticas, que permite el encapsulado y el polimorfismo.
- Permite que datos relacionados entre si se combinen y se manipulen como un todo, es decir, todo en una única variable.
- Soporta la programación orientada a objetos (OO).
- Permite anidar funciones.
- #include (stdio.h)
- #include (conio.h)
- int main()
- {
- int n, i, p=0, s=1, f;
- printf("Hasta que numero deseas ver la serie de Fibonacci: ");
- scanf("%d", &n);
- printf("%d \n%d", p, s);
- for(i=3;i<=n;i++)
- {
- f=p+s;
- p=s;
- s=f;
- printf("\n%d", f);
- }
- getche();
- }
- 1 y 2 van al principio del código, y son las librerías de las cuales el lenguaje toma las funciones necesarias para leer y correr el programa. *En estas lineas substituí los paréntesis ( ) por los signos de mayor y menor <>, por que no aparecen las librerías en la publicación*
- 3 en esta linea se introduce el principio de la función principal "main ( )"
- 4 y 10 son llaves de apertura de bloques.
- 5 se especifican las variables de tipo entero "int".
- 6 mediante la instrucción "printf" se imprimirá en pantalla lo que contenga ("dentro del paréntesis y las comillas").
- 7 la instrucción "scanf" asignara a una variable al valor que se le de a lo puesto anteriormente, el "%d" indica que la variable asignada debe ser de tipo entero, y el símbolo "&" es el que asigna la variable a algún carácter.
- 8 imprimirá los valores previamente asignados de las variables "p" y "s", es decir, 0 y 1 respectivamente.
- 9 se inicia un ciclo de iteracción "for" donde se especifica que la variable entera "i " tiene el valor de 3 o que comenzar el ciclo con el valor de 3, que el ciclo existirá mientras que la variable "i " sea menor o igual a "n" (valor que se nos pregunto anteriormente) y que la variable "i " incrementara en 1 cada ciclo.
- 11 se asigna una ecuación para darle el valor a una variable llamada "f".
- 12 y 13 después de haberse efectuado la operación anterior los valores de las variables "p" y "s" cambiaran por el nuevo valor asignado.
- 13 imprimirá el valor obtenido de la variable "f ".
- 14 y 16 son llaves de cierre de bloques.
- 15 mediante la instrucción "getche()" permite visualizar el resultado en pantalla.
- Fortran: Breve tutorial
- Cobol: Principales comandos
- Pascal: Ejemplos de practica
- C: Algo de historia
jueves, 28 de octubre de 2010
miércoles, 27 de octubre de 2010
Presentación #3
domingo, 17 de octubre de 2010
Reporte #5
miércoles, 13 de octubre de 2010
Reporte #4
- No hay asignación de variables.
- Carece de estructuras secuenciales o iteraciones.
- Todas las repeticiones de instrucciones se hacen por funciones recursivas.
- Se programa por medio de funciones.
- Carece de efectos laterales.
- Es un dialecto de Lisp.
- Tiene una sintaxis muy reducida.
- No necesita reglas de precedencia, ya que, carece de operadores.
- Una una notación prefija para todas las llamadas a una función.
- Permite la creación de procedimientos anónimos.
- Tiene un estándar minimalista, es decir, es fácil de escribir un compilador o interprete fiel a este estándar, que implementar uno en común con sus antecesores de Lisp.
- Primero que nada se debe saber que todo va entre paréntesis.
- Se define el nombre de la función, a la cual sera llamada cada ves que se desee usar. Mediante la instrucción " (define(NOMBRE_DE_LA_FUNCION... "
- Se debe de tomar en cuenta que no debe haber espacios entre el nombre de la función.
- En la parte de arriba de la pantalla se crea la función, es decir, se generaliza para cualquier dato que ingresemos, y ne la parte de abajo, se aplica dicha función conforme a la función ya determinada, por medio de valores de entrada, dándonos enseguida el valor de salida de dicha función.
- Ver ejemplos.