visual top studio for development code best ide compiler-construction programming-languages sml ml

studio - top ide free



ML IDE y compilador para Windows o Linux o Mac (6)

Cómo configurar SML con texto sublime 2

Para aquellos que prefieren Sublime Text en lugar de Emacs como el editor de su elección para programar SML, la siguiente guía describe cómo configurar Sublime Text para que funcione con SML.

Para que esta guía funcione, ya debe haber instalado smlnj .

Paso 1: Instale Sublime Text y Package Control

Comience por descargar texto sublime 2 . Asegúrese de descargar la versión 2, porque el soporte de sintaxis SML aún no funciona con la versión 3.

Sublime Text admite un increíble conjunto de paquetes (es decir, complementos) que puede instalar por separado. Uno de esos paquetes se llama Control de Paquetes. Primero debe instalar Package Control para poder instalar otros paquetes directamente desde el editor. El enlace proporcionado explica qué debe hacer para instalar este paquete.

Paso 2: Instalar SML y Sublime REPL

Ahora que tiene instalado Package Control, será muy fácil instalar otros paquetes. Hay dos paquetes que debemos instalar ahora: SML para admitir las funciones de resaltado de sintaxis para el lenguaje de programación y SublimeREPL que, como puede imaginar, es un paquete que agrega capacidades de REPL para muchos lenguajes de programación diferentes a Sublime Text.

Para instalar estos paquetes, debe ir al menú y buscar Herramientas -> Command Palette y escribir "Instalar paquete". En el cuadro de búsqueda, escriba el nombre del paquete que desea instalar, seleccione su paquete de la lista encontrada y presione Intro para instalarlo. Haga esto para los dos paquetes mencionados anteriormente: "SML" y "SublimeREPL"

Una vez que haya instalado el paquete SML, si abre un archivo SML, debería obtener capacidades de resaltado de sintaxis dentro del editor. Incluso proporciona un Tema de texto sublime llamado Hijo de Obsidiana que puedes habilitar en Preferencias -> Esquema de color -> SML -> Hijo de Obsidiana. Pero no es necesario que habilite el tema para que funcione con SML, esto es solo una preferencia.

Una vez que haya instalado el paquete SublimeREPL, podrá ir al menú Herramientas -> SublimeREPL -> SML y abrir una sesión SML REPL que admita el resaltado de sintaxis utilizando el paquete SML, el historial de comandos, la edición de líneas y el autocompletado. Puede hacer su vida realmente fácil si abre dos pestañas de lado a lado y en su pestaña izquierda puede tener su archivo de código SML y en su derecha su sesión de REPL de SML. Puedes hacerlo usando las opciones Ver -> Diseño.

Paso 3: Atajos de teclado

Ahora agreguemos algunos atajos de teclado para trabajar con el REPL. El paquete SublimeREPL ofrece poca configuración de teclado, y los proporcionados probablemente no funcionarán bien con SML REPL. Así que esto es lo que normalmente hago.

  • Primero ve a Preferencias -> Examinar paquetes
  • Vaya a la subcarpeta SublimeREPL / config / SML.
  • Edite los comandos del archivo Default.sublime-commands en el propio texto sublime. Este archivo contiene las opciones de menú SML actuales dentro del menú Herramientas -> SublimeREPL. Por lo tanto, ahora lo cambiaremos para crear una segunda opción que pueda ejecutar un archivo existente en una nueva sesión SML REPL. Mi archivo editado se ve como se muestra a continuación. Observe el campo "id". Podemos definir tantos comandos diferentes como queramos, dándoles una identificación diferente. En el siguiente paso definiremos lo que hace cada comando.

    [ { "caption": "SublimeREPL: SML", "command": "run_existing_window_command", "args": { "id": "repl_sml", "file": "config/SML/Main.sublime-menu" } }, { "caption": "SublimeREPL: SML - Run File", "command": "run_existing_window_command", "args": { "id": "repl_sml_run", "file": "config/SML/Main.sublime-menu" } } ]

  • Ahora, en el mismo directorio que el archivo anterior, edite el archivo Main.sublime-menu . Este archivo contiene los detalles de lo que debe hacer cada comando definido anteriormente. Mi archivo editado define los dos comandos descritos anteriormente, uno para abrir simplemente el REPL y otro para abrir el archivo actual en el REPL. Se ve de la siguiente manera:

    [ { "id": "tools", "children": [{ "caption": "SublimeREPL", "mnemonic": "r", "id": "SublimeREPL", "children": [{ "caption": "SML", "id": "SML", "children": [ {"command": "repl_open", "caption": "SML", "id": "repl_sml", "args": { "type": "subprocess", "encoding": "utf8", "cmd": ["sml"], "cwd": "$file_path", "external_id": "sml", "syntax": "Packages/SML (Standard ML)/sml.tmLanguage" } }, {"command": "repl_open", "caption": "SML - Run Current File", "id": "repl_sml_run", "args": { "type": "subprocess", "encoding": "utf8", "cmd": ["sml", "$file_basename"], "cwd": "$file_path", "external_id": "sml", "syntax": "Packages/SML (Standard ML)/sml.tmLanguage" } } ] }] }] } ]

  • El último paso es agregar atajos de teclado para estos dos comandos. Vaya a Preferencias -> Usuario de enlaces de teclas y edite el archivo con los siguientes dos comandos adicionales. Siéntase libre de cambiar mis teclas y usar cualquier otra tecla de acceso directo que considere apropiada, siempre que no se utilicen para otras funciones.

    [ { "keys":["ctrl+alt+j","k"], "command": "repl_open", "args": { "type": "subprocess", "encoding": "utf8", "cmd": ["sml"], "cwd": "$file_path", "syntax": "Packages/SML (Standard ML)/sml.tmLanguage", "external_id": "sml" } } , { "keys":["ctrl+alt+j","m"], "command": "repl_open", "args": { "type": "subprocess", "encoding": "utf8", "cmd": ["sml", "$file_basename"], "cwd": "$file_path", "syntax": "Packages/SML (Standard ML)/sml.tmLanguage", "external_id": "sml" } } ]

Y hemos terminado. Ahora, puede abrir el SML REPL simplemente presionando CTRL + J , K (esto es presionar Ctrl + Alt + J, luego soltar las teclas y presionar K). Y si actualmente está trabajando en un archivo SML, puede presionar CTRL + J , M para enviarlo a una nueva sesión SML REPL.

Paso 4: Construir el sistema

Sublime Text proporciona configuraciones que le permiten analizar su archivo de código y determinar si algo está mal y le permite saber exactamente dónde está el problema. Para hacer esto debemos configurar un "sistema de compilación". La configuración es simplemente un archivo que le dice al texto sublime qué comando ejecutar y cómo interpretar la salida. Si el analizador sml no puede analizar o ejecutar su programa, la salida le indicará dónde está el problema. El sistema de compilación nos permite definir una expresión regular para analizar dicha salida y ayudar a que el texto sublime encuentre la línea y la columna que contiene el problema.

Vaya a Preferencias -> Examinar paquetes y, en la carpeta Usuario, cree un nuevo archivo llamado SML.sublime-build y defina el archivo de la siguiente manera:

{ "cmd": ["/usr/local/bin/sml","$file"], "selector": "source.sml", "working_dir": "$file_path", "file_regex": "^(.*//.sml):(//d+)//.(//d+)(//-(//d+)//.(//d+))?//s(.*)$" }

Asegúrese de reemplazar la ruta del comando con una ruta válida en su sistema. Una vez que haya guardado el archivo, puede ir al menú y elegir Herramientas -> Crear sistema -> SML. Luego, para revisar su archivo, puede hacer Herramientas -> Construir para analizar su archivo y encontrar cualquier error. Y al usar la opción de menú Herramientas -> Crear resultado -> Siguiente resultado y Resultado anterior, puede navegar entre los errores detectados por la opción de sistema de construcción y Sublime Text colocará el cursor en la posición exacta del error según lo informa el compilador SML .

Mi expresión regular anterior puede no ser la mejor, así que siéntete libre de mejorarla como mejor te parezca.

Y eso es. Ya estás listo para comenzar a codificar con SML y texto sublime.

Tengo que escribir un código en ML y es la primera vez que voy a usar el lenguaje. ¿Hay algún entorno de desarrollo para el estándar ML? (preferiblemente bajo Windows). Intenté googlear (y stackOverFlowing), pero todo lo que encontré fueron compiladores simples para Linux (a lo sumo con una consola interactiva), pero no IDE ni Eclipse / NetBeans. Alguna sugerencia ?


Al trabajar con SML en Windows, he estado usando smlnj para compilar y Notepad++ para editar (Notepad ++ tiene color de sintaxis para Caml, que debería ser idéntico a SML para sus necesidades).

Como se mencionó, para ML un simple editor debería ser suficiente.


Eclipse se puede configurar para obtener una funcionalidad muy útil, sin tener un complemento de idioma específico sofisticado.

Mantengo una guía para configurar Eclipse para nuevos idiomas . Algunos puntos destacados de ese documento:

  • Los colores de sintaxis se pueden agregar con cualquiera de los colores de Eclipse . Son complementos que proporcionan colores de sintaxis para una gran cantidad de idiomas, incluidos SML y OCaml. Los nuevos idiomas se pueden agregar fácilmente usando archivos de color personalizados.

  • Para construir usando un compilador externo desde Eclipse, se puede usar la característica estándar de Program Builder . El generador se ejecuta cuando se emite el comando normal de Build Project . Para configurar un nuevo constructor: Propiedades del proyecto -> Constructores -> Nuevo ... -> Programe o use el complemento Marcador de compilación de Laid a continuación.

  • Para capturar errores de compilación y advertencias de un constructor externo, se puede usar un analizador de resultados de compilación. Laid Builder Marker es un complemento que implementa tales analizadores. Los analizadores ponen marcadores de problemas en los editores y en la vista Problemas. Este complemento también se puede utilizar para agregar Program Builders a los proyectos. El constructor para Cabal se puede utilizar como punto de partida.

  • Para ejecutar programas compilados desde Eclipse, use la función Herramientas externas . ( Ejecutar -> Herramientas externas )

  • El soporte extendido para la navegación de códigos y la selección de texto se puede agregar con algunos de los otros complementos del Proyecto Laid: El complemento de Selección de bloque de marcador se puede usar para seleccionar el texto entre corchetes. El complemento Utilidades del editor se puede utilizar para, entre otras cosas, saltar entre bloques de código delimitados por líneas en blanco.

  • Use el comando estándar de Completar palabras ( Shift + Alt + 7 ) como asistente de contenido de una persona pobre.

  • Utilice el comando estándar Selección de bloque de alternancia (Mayús + Alt + A) para insertar / eliminar comentarios de línea en varias líneas al mismo tiempo.

  • Algunas otras características útiles de Eclipse estándar incluyen:

    • El comando Abrir recurso ( Ctrl + Shift + R )
    • El comando Buscar archivo ( Ctrl + H )
    • La característica de marcadores ( Editar -> Agregar marcador ). Asegúrese de marcar Incluir en el cuadro de navegación siguiente / anterior ( Preferencias -> General -> Editores -> Editores de texto -> Anotaciones -> Marcadores ).

Sitio de actualización para el proyecto Laid:

https://bitbucket.org/lii/laid_language_tools/src/master/se.lidestrom.laid.update_site/

Sitio de actualización para Eclipse Colorer:

http://colorer.sourceforge.net/eclipsecolorer/

Descargo de responsabilidad: Soy el autor del proyecto Laid.


Estoy desarrollando Scheme IDE para Windows. Se llama "Babbage". También tiene modo para OCaml y SML. Es como un mínimo de Emacs. Babbage es muy simple y tiene ventanas como la asignación de teclas. Babbage es editor de Unicode.

http://homepage1.nifty.com/~skz/Entry/babbage.html


Para SML existen algunos modos de Emacs. Consulte http://mlton.org/Emacs para obtener más información.

El modo sml debería proporcionarle un buen entorno para escribir el código SML. Eclipse & Co. se desarrollaron debido al hecho de que Java requiere una gran cantidad de elementos repetitivos, como accesorios, adaptadores, etc. Si necesita las mismas características para ML, entonces debe verificar si no está trabajando en exceso.

Edición: y, por cierto, SMLNJ se envía con un complemento de eclipse. No puedo publicar un enlace, solo google para smlnj eclipse.


Puede usar Isabelle / jEdit como IDE para Isabelle / ML o el estándar oficial ML (SML''97). El sistema ML subyacente es Poly / ML , que es notable por su soporte para hardware multinúcleo.

En términos estrictos, el entorno de Isabelle es para la prueba interactiva y automatizada de teoremas, pero su compatibilidad con SML IDE es bastante sofisticada: los archivos de origen se verifican estáticamente y se evalúan semánticamente mientras el usuario está editando. Las fuentes anotadas contienen marcado sobre los tipos inferidos, referencias a la definición de posiciones de elementos, etc.

Como inicio rápido, consulte el panel Documentación, sección Ejemplos, entrada src/Tools/SML/Examples.thy (a partir de Isabelle2014).