Este artículo incluye una lista de referencias , lecturas relacionadas o enlaces externos , pero sus fuentes siguen sin estar claras porque carece de citas en línea . ( Febrero de 2010 ) |
Paradigma | Orientado a objetos |
---|---|
Diseñada por | Alexander Aiken |
Desarrollador | Alexander Aiken |
Apareció por primera vez | 1996 |
Disciplina de mecanografía | Estático , fuerte , manifiesto |
Dialectos | |
Fresco 2004, Fresco 2005, Fresco 2006, Fresco 2007, Fresco 2008, No Fresco | |
Influenciado por | |
Java , ML , Pascal , Sather |
Cool , un acrónimo de Classroom Object Oriented Language , es un lenguaje de programación de computadoras diseñado por Alexander Aiken para su uso en un proyecto de curso de compilación de pregrado. Si bien es lo suficientemente pequeño para un proyecto de un período, Cool aún tiene muchas de las características de los lenguajes de programación modernos, incluidos los objetos, la administración automática de memoria, la escritura estática fuerte y la reflexión simple .
El compilador Cool de referencia está escrito en C ++ , construido completamente sobre las herramientas de dominio público. Genera código para un simulador MIPS , SPIM . Por lo tanto, el idioma debería trasladarse fácilmente a otras plataformas. Se ha utilizado para enseñar compiladores en muchas instituciones (como la Universidad de California en Berkeley , donde se utilizó por primera vez o la Universidad Shahid Beheshti de Irán ) y el software es estable.
Este idioma no está relacionado con el idioma COOL incluido en CLIPS .
Como el propósito principal de Cool es la instrucción, carece de muchas de las características comunes a otros lenguajes de programación más generales. Por ejemplo, el lenguaje admite comparaciones menores que pero no mayores que. La sintaxis está muy simplificada y la "biblioteca estándar" contiene solo unas pocas clases básicas. No se admite la compilación separada, aunque el compilador admite varios archivos fuente como entrada. Cada programa Cool debe definir una clase Main que debe tener un método main sin argumentos en el que comienza el flujo de ejecución. Los espacios de nombres no son compatibles.
"¡Hola Mundo!":
class Main hereda IO { main (): Objeto { out_string ("¡Hola, mundo! \ n") }; };
Un programa sencillo para calcular factoriales:
class Main hereda IO { main (): Objeto {{ out_string ("Ingrese un número entero mayor o igual que 0:"); dejar entrada: Int <- in_int () en si la entrada <0 entonces out_string ("ERROR: el número debe ser mayor o igual que 0 \ n") demás { out_string ("El factorial de") .out_int (entrada); out_string ("es") .out_int (factorial (entrada)); out_string ("\ n"); } fi; }}; factorial (num: Int): Int { si num = 0 entonces 1 si no num * factorial (num - 1) fi }; };