Download Primer Informe Lenguaje de Programación

Document related concepts

Programación funcional wikipedia , lookup

Haxe wikipedia , lookup

Scala (lenguaje de programación) wikipedia , lookup

F Sharp wikipedia , lookup

Racket (lenguaje de programación) wikipedia , lookup

Transcript
UNIVERSIDAD DE TARAPACA DE ARICA
ESCUELA UNIVERSITARIA DE INGENIERIA INDUSTRIAL, INFORMATICA Y DE SISTEMAS.
AREA DE COMPUTACION
Primer Informe
Lenguaje de Programación
CLEAN
Integrantes:
Angela Ossandon C.
Alexis Beroiza R.
Rubén Saavedra T.
Claudio Olivares C.
Profesor:
Ricardo Valdivia P.
Asignatura:
Fundamentos de lenguajes
de Programación
Índice
pág.
Introducción
3
Historia
4
Paradigma de computación
7
Dominios de Aplicación
8
Implementación del Lenguaje de Programación
11
2
Introducción
En el presente informe nos referiremos mas detalladamente al lenguaje de
programación seleccionado por nuestro grupo para el proyecto de la asignatura
Fundamentos de lenguajes de programación, el cual es Clean.
Clean es un lenguaje de programación con el objetivo principal de ser un lenguaje
funcional puro y “perezoso” diseñado para realizar aplicaciones en el mundo real.
Clean es el único lenguaje funcional en el mundo que ofrece la singularidad de
mecanografía. Este tipo de sistemas hace que sea posible en un lenguaje puramente
funcional y hacer interfaces directos en el mundo exterior al imperativo, este tipo de
sistema hace posible el desarrollo de aplicaciones eficientes.
El sistema de Clean es un sistema de desarrollo de software para el desarrollo de
aplicaciones de Clean, este sistema esta disponible en muchas plataformas (PC, Mac, SUN)
y sistemas operativos como (Windows’ 95/98/2000/NT, Linux, MacOS, Solaris). De las
cuales las principales plataformas son PC y Mac.
El sistema de Clean es un sistema de pleno derecho q puede ser utilizado en ambientes
industriales, también el sistema Clean es un producto comercial de Hilt – Herramientas de
software de alto nivel BV, además Clean se puede descargar de forma gratuita
3
Historia
En 1984 un grupo de investigación tecnológica de software de la universidad de
Radboud en Nijmegen Holanda, trabaja sobre lenguaje funcional y lo llamaron Clean.
Clean al ser fuertemente tipado se basa en algunas extensiones de la conocida
Milner / Hindley / Mycroft tipo de inferencia / régimen de control (Milber 1978); (Hindley
1969); (Microft 1983) incluido el común de orden superior de tipos, tipos polimórficos,
tipos algebraicos, tipos de sinónimos y tipos existencialmente cuantificados, también
Clean a sido influenciado por Lean y Haskell,
Pero principalmente es basado en el tipo de inferencia y comprobación de Scheme de ahí
que se puede deducir su origen con más exactitud el cual se representa en la siguiente
línea de tiempo:
4
Desde entonces Clean fue evolucionando y perfeccionándose en diferentes
versiones las cuales son:
 Clean v1.0: el anuncio de esta versión fue realizado para diferentes tipos de
plataformas, la primera de ellas fue Macintosh en mayo de 1995,
Macintosh y PC(OS/2) en Junio de 1995, Macintosh (Motorola),
PC(OS/2), PC (Linux) y Sun4 (SunOS) en septiembre de 1995 y
Sun4 (Solaris) en Octubre de 1995.
 Clean v1.1: También esta versión fue realizada para diferentes tipos de
plataformas, primero fue Macintosh en marzo de 1996, el
lanzamiento para Mac/68k, Sun / SunOS, Sun / Solaris Y PC /
Linux fue realizado en Agosto de 1996,
 Clean v1.2: Esta versión esta disponible para las plataformas Mac y PowerMac
en enero de 1997, este sistema viene en tres versiones:



CLEAN12.68k.sea.hqx: Clean 1,2 por 68k Mac.
CLEAN12.ppc.sea.hqx: CLEAN 1,2 para PowerMacs.
CLEAN12.both.sea.hqx: CLEAN 1,2 por 68k y PowerMacs.
No obstante podemos destacar la versión Clean 1.2.3 ya que fue la
primera versión disponible para Windows95
 Clean v1.3: Una nueva versión (la 1.3) está ahora disponible para
Windows95/NT, Mac, Linux y Solaris al mismo tiempo. Las nuevas
características incluyen:
Tiempo profiler (PowerMac y Windows), el espacio profiler
(PowerMac), el 22 de mayo de 1998.
Las últimas versiones disponibles son 1.3.1 para Solaris, Linux ELF y
MkLinux el 11 de enero de 1999.
Seguida por Clean 1.3.1 para Windows 96/98/NT y PowerMac el 20
de enero de 1999.
 Clean v2.0: se libera para la plataforma Windows el 21 de diciembre de 2001.
Incluye una herramienta de prueba dedicada a los programas de
Clean, la dinámica y la vinculación a escribir, y muchas nuevas
características de lenguaje.
5
Clean 2.0.1 se libera para PC, PowerMac, Linux y Solaris el 4 de julio
de 2002. Incluye una herramienta de prueba dedicada a los
programas de Limpieza (Destello), la dinámica y la vinculación a
escribir, y muchas nuevas características de lenguaje.

Clean v2.1: Clean 2.1.0 es liberado para Windows, MacOS X, Linux y
Solaris el
31 de octubre de 2003.
Las principales nuevas características son: resumen sinónimo tipos,
caja de registros, desbordamiento de pila sin controles generales,
optimizaciones del código, la optimización de enlaces para Linux y
Solaris, MacOS X apoyo a Objeto de E / S 1,2. y el IDE, dirigirá la
generación de código en Solaris, la versión para Linux que
bootstraps ABC de archivos, importantes mejoras en la dinámica de
aplicación en Windows.
6
Paradigma de computación
El lenguaje de programación funcional Clean
Un lenguaje de programación funcional como Clean se basa en el concepto de funciones
matemáticas. Clean es un lenguaje funcional puro, no hay tal cosa como una cesión. Esto
tiene una gran ventaja: una función no puede tener un efecto secundario. A Clean función
referencial es transparente: el resultado de una función sólo depende del valor de la
función de argumentos y en nada más.
Esto tiene importantes consecuencias:
Una vez que la función es de trabajo, siempre trabajo. Una función siempre reaccionan de
la misma manera, sin tener en cuenta cuándo y en qué contexto se usa esta función;
Una razón puede ser Clean sobre las funciones y la limpieza del programa en su conjunto
(que es una función de aplicación) mediante el uso tradicional de razonamiento
matemático: la sustitución de uniformes y de inducción matemática.
Para hacer el mundo real las necesidades de un curso para poder actualizar una base de
datos, realizar I / O, actualizar una serie destructiva, pasar un mensaje a otro programa. Y,
la solicitud deberá ejecutar de manera eficiente suficiente. Aunque Clean no tiene
asignaciones, los objetos se pueden actualizar destructivamente. Clean es el único
lenguaje funcional en el mundo que tiene un sistema de tipo especial, singularidad a
escribir. Este tipo de sistema se desarrolla en Nijmegen. Permite actualizar los argumentos
y conservar la pureza de la lengua.
Clean es pura o meramente funcional, en informática este termino es utilizado para
describir algoritmos, estructuras de datos o los lenguajes de programación la propiedad
puramente funcional de las estructuras de datos puede ser ventajosa en el desarrollo de
muchas aplicaciones que ocupan de múltiples versiones de un objeto, además Clean es el
único lenguaje funcional en el mundo que ofrece la singularidad de mecanografía, esto
hace posible que sea un lenguaje puramente funcional para incorporar las actualizaciones
de destrucción arbitraria de estructuras de datos (incluyendo arreglos)
7
Dominios de Aplicación
Para las personas q están familiarizadas con otros lenguajes funcionales, como Haskell,
damos aquí una breve lista de las características:
 Clean es un perezoso, lenguaje funcional puro de programación de orden superior,
con gráfica explícita y semántica que permite la reescritura; se puede definir
explícitamente el intercambio de estructuras (estructuras cíclicas también) en el
lenguaje;
 Aunque Clean es por defecto un lenguaje vago se puede convertir en un lenguaje
estricto para obtener óptimos comportamientos en tiempo / espacio: las funciones
se pueden definir fácilmente, así como en sus argumentos pueden ser más
estrictos, como también sus estructuras.
 Debido a ser fuertemente tipado de Clean está en la obligación de inicializar todos
los objetos que se están creando. En tiempo de ejecución los errores sólo pueden
producirse en un número muy limitado de casos: cuando parcialmente las
funciones se llaman con argumentos fuera de su dominio (por ejemplo, dividir por
cero), cuando los arreglos se les accede con índices fuera de rango y cuando no
hay suficiente memoria (heap o bien el espacio de pila) que se asigna a una
aplicación Clean;
 Tipo clases y el tipo constructor se prestan a hacer uso de la sobrecarga de
funciones y operadores.
 Clean ofrece los siguientes tipos predefinidos: enteros, reales, booleanas,
caracteres, cadenas de texto, listas, tuplas, registros, (actualizable destructiva) y
arreglo de archivos;
 Se puede definir funciones en el ámbito local, utilizando los bloques.
 la característica clave de Clean es su singularidad de tipo polimórfico, sistema de
inferencia, una extensión de la Milner / Hindley / Mycroft tipo de inferencia /
sistema de control que permite un refinado control sobre el uso único de los
objetos, con la singularidad de este tipo de sistema se puede influir en el tiempo y
el espacio en que se comportan los programas, puede utilizarse para incorporar las
actualizaciones destructivas de objetos dentro de un marco funcional puro,
permite la transformación destructiva de información de estado, que permite la
interconexión eficiente a los mundos no funcionales (en C, sino también para I / O
como los sistemas X - Windows) que ofrece acceso directo a sistemas de ficheros y
8
sistemas operativos;
 Clean es un lenguaje modular que permite la compilación separada de módulos,
uno define los módulos de aplicación y la definición de módulos; hay una
instalación de forma implícita y explícitamente de las definiciones de importación
de otros módulos;
 Clean ofrece una sofisticada biblioteca E / S con el que la ventana interactiva
basada en las aplicaciones (y la manipulación de menús, diálogos, ventanas, ratón,
teclado, temporizadores y eventos planteadas por sub-aplicaciones) puede
especificarse compacto y elegante en un nivel muy alto de la abstracción;
GUI basado en programas escritos en Clean utilizando el v0,8 biblioteca E / S puede
ser portado sin modificación de código fuente para cualquiera de las muchas
plataformas.
Clean también se destaca por sus diversos tipos de aplicaciones las cuales son:
 Su entorno de desarrollo integrado:
o Clean es un sistema simple y estable que viene con un programa dedicado
Desarrollo Integrado de Medio Ambiente, el Clean IDE. El IDE es el núcleo
del Sistema de Clean que forma la interfaz para el programador.
Se trata de un dedicado editor y gerente del proyecto que permite a un
programador generar y poner en marcha una aplicación con sólo pulsar un
botón.
9
o Desarrolle su propia plataforma de juegos
El nuevo Clean Objeto de E / S 1,2 Biblioteca viene con soporte para la
creación de su propia plataforma 2D-juegos. La extensión de construir
juegos ha sido desarrollado por Mike Wiering durante su Magíster, era su
proyecto de tesis. Un documento sobre este proyecto ha aparecido en las
seleccionadas Actas del Taller IFL'99. La biblioteca para crear juegos es la
1.2.1 Biblioteca de Juegos.
Se puede crear juegos completos en tan sólo una fracción del tiempo que
tomará mediante la utilización de un lenguaje tradicional. Por ejemplo, el
Sinterklaas juego contiene menos de 3000 líneas de código limpio.
o Hay unos nuevos fines especiales programa de dibujo, un Tile Editor. Con el
Editor de baldosa se puede hacer baldosas que puede ser usado para
hacer los sprites (imágenes), animaciones y las capas de fondo.
10
Implementación del Lenguaje de Programación
Analizando e investigando nuestro lenguaje de programación Clean podemos determinar
basándonos en los apuntes del curso y la página principal de nuestro lenguaje
http://clean.cs.ru.nl/About_Clean/about_clean.html
Podemos determinar que su categoría de traducción es Compilado, este tipo de lenguaje
existe una traducción (Compilador) a lenguaje de maquina previa a la ejecución.
Clean entra en la categoría de lenguajes compilados ya que crea un archivo ejecutable
para poder ejecutar el programa, pero para llegar a la creación de este archivo ejecutable
en clean se deben realizar una serie de pasos previos.
Una de las características de Clean es como funciona debido al cálculo grafico se basa en
la reescritura y la reducción constante, como son los números de los gráficos. Esto,
combinado con la compilación de código nativo, hace que Clean genere programas
relativamente regidos, incluso con alta abstracción. Esto se realiza de la siguiente forma
1. Un archivo fuente (.lcl) y un archivo de proyecto (.Dcl) se convierten en la
plataforma independiente de limpieza del Bytecode (.Abc), implementado en C y
Clean.
2. El Bytecode se convierte a código objeto (.Obj) usando C.
3. El código objeto esta relacionado con oros archivos en el modulo de tiempo de
ejecución y el sistema y es convertido en un ejecutable normal de Clean
11