El lenguaje Objective CAML, también llamado Ocaml u O'Caml, el nombre proviene de las siglas en inglés Objective Categorical Abstract Machine Language. Es un lenguaje de programación avanzado de la familia de los lenguajes ML, desarrollado y distribuido por el INRIA en Francia. Ocaml admite los paradigmas de programación imperativa, programación funcional y programación orientada a objetos.
Ocaml nace de la evolución del lenguaje CAML, abreviación de Categorical Abstract Machine Language, al integrársele la programación con objetos.
El código fuente en Ocaml se compila en código para una máquina virtual o en código de máquina para diferentes arquitecturas. Este último compilador produce código comparable en eficiencia al producido por compiladores como el del lenguaje C/C++.
Ocaml dispone de un análisis de tipos estático con inferencia de tipos, con valores funcionales de primera clase, polimorfismo parametrizado, llamada por patrones, manejo de excepciones, recolección de basura y otras características avanzadas.
Tipos básicos:
Ocaml es fuertemente tipado es decir que toda expresión tiene un tipo único y sólo pueden aplicarse valores a funciones cuando el tipo del valor corresponde al tipo esperado por la función. Por ejemplo (+) es la función que suma dos enteros, mientras (+.) es la que suma dos flotantes (en general los operadores entre enteros tienen una análogo para flotantes cuyo nombre termina con el carácter punto).
La ventaja de este tipado es la posibilidad de derivar automáticamente el tipo de expresiones (librando al programador de esa tarea). Por ejemplo una expresión como fun y -> y +. y es una función que recibe un flotante y retorna un flotante, lo derivamos sabiendo que (+.) recibe dos flotantes y retorna un flotante.
Algunos operadores habituales:
El motor de tipos de Ocaml infiere los tipos, y si un tipo es desconocido o no se puede inferir, lo representa como alfa, beta, etc. Dado que el compilador no puede mostrar letras griegas en pantalla, se referirá a ellas con la letra correspondiente precedida de un apóstrofo: ‘a, ‘b, ‘c, etc.
Por eso Ocaml es un lenguaje de programación funcional con cuatro características básicas:
Está fuertemente “tipado“: (Cualquier dato es de un tipo conocido). El “tipaje” es estático :Todos los tipos existen. No se crean nuevos. Las expresiones se evalúan de forma “eager” :(estricta o completa, es decir, se evalúan todas las entradas/salidas posibles)
En cuanto a interpretación/compilación se basa en un modelo de máquina abstracta portable (máquina Zinc). Cuenta con un intérprete (ocaml) que es a su vez un entorno interactivo útil para experimentar y dos compiladores:
Una diferencia entre ocaml y ocamlc, por ejemplo, si se indica una misma instrucción, en ocaml se ejecutará y mostrará por pantalla su resultado, mientras que con ocamlc se ejecutará pero no se verá nada.
Escribe un comentario o lo que quieras sobre Ocaml (directo, no tienes que registrarte)
Comentarios
(de más nuevos a más antiguos)