Enlace de programación rápida
Aprendiendo de la experiencia del equipo de desarrollo central en el desarrollo de OCaml, BuckleScript, ReasonML, ReScript, Flow y otros lenguajes y herramientas de programación en los últimos diez años, el Centro de Software Básico del Instituto de Investigación IDEA desarrolló de forma independiente un nuevo herramienta de desarrollo central de software——plataforma de desarrollo de bits lunares. Cubre el diseño general de lenguajes de programación, compiladores, sistemas de compilación, IDE, herramientas de implementación y más. Ha logrado un alto grado de integración vertical del diseño de lenguajes, compiladores y sistemas de construcción, brindando a los usuarios una mejor experiencia de desarrollo y rendimiento, y está comprometido a construir un ecosistema de software básico de clase mundial en el futuro.
Actualmente, Moonbit IDE se ha abierto oficialmente para realizar pruebas. La dirección del tribunal es la siguiente. Bienvenido a la experiencia (la versión de escritorio es la mejor):
Resultados de fase de Moon Drill
Soporte de primer nivel para el conjunto de instrucciones estándar de nueva generación WebAssembly: el tamaño mínimo de código objeto de "Wasm" tiene sólo 132 bytes aproximadamente. En algunos casos, la salida de la misma función se reduce casi 10.000 veces en comparación con lenguajes tradicionales como Go.
Un gran avance en el rendimiento de las herramientas de verificación de tipos estáticos: a través de la integración vertical de la cadena de herramientas, el rendimiento del IDE ha mejorado enormemente, varios órdenes de magnitud más rápido que la cadena de herramientas del lenguaje tradicional. Por ejemplo, solo se necesitan decenas de milisegundos para detectar seis paquetes en un entorno de inicio en frío sin modo caché, mientras que las cadenas de herramientas de lenguaje tradicionales requieren varios segundos o incluso decenas de segundos.
CloudIDE que puede ejecutarse sin conexión: gracias a la mejora significativa en el rendimiento de la verificación de tipos estáticos y al diseño liviano, el IDE en la nube de Moonbit adopta una arquitectura completamente diferente a la del IDE en la nube tradicional, y la mayor parte del trabajo de respuesta del IDE se está llevando a cabo. en el borde, la entrada del usuario se puede retroalimentar rápidamente y no depende del ancho de banda de la red.
01 moon bit: la mejor solución en la plataforma de ensamblaje web
WebAssembly es una nueva generación de conjunto de instrucciones estándar lanzada en 2017 porque es eficiente, liviana, segura y puede ejecutarse La independencia de la plataforma en cualquier dispositivo informático, como servidor, borde, navegador, etc., ha atraído una atención generalizada.
Pero los principales lenguajes de desarrollo en la plataforma WebAssembly siguen siendo C y Rust, que son lenguajes de programación de bajo nivel con un alto umbral para los programadores. Sin embargo, algunos lenguajes a nivel de aplicación, como Go, tienen un gran rendimiento en WebAssembly y no pueden aprovechar al máximo la plataforma. Por lo tanto, en el ecosistema WebAssembly, aunque hay docenas de tiempos de ejecución de código abierto por parte del consumidor, la falta de proveedores de alta calidad es actualmente el mayor problema.
Para compensar esta deficiencia ecológica, como recién llegada, la plataforma Moonbit puede admitir mejor el conjunto de instrucciones WebAssembly. Basado en la arquitectura ascendente de WebAssembly, Moonbit proporciona soporte nativo para WebAssembly. Al tiempo que garantiza que el tamaño del código de salida sea lo suficientemente pequeño, admite múltiples backends (como JavaScript) y proporciona una solución integral para el front-end y el backend. -finalizar el desarrollo.
02Arquitectura innovadora de Moonbit
(A) La primera cadena de herramientas de lenguaje de programación diseñada para la optimización global
Mientras se compila en paralelismo a gran escala, Moonbit puede almacenar IR avanzado para una compilación separada y guarde la información completa del código al vincular para lograr una mayor optimización y mejorar el rendimiento de ejecución del programa. Este modo también puede eliminar mejor el código inútil y generar una cantidad menor de código.
La optimización global tradicional tiene muchos problemas en ingeniería. El mayor problema es que requiere mucha memoria y tiempo y no puede utilizar completamente el rendimiento de los procesadores multinúcleo.
Para aliviar este problema, Moonbit puede admitir mejor la eliminación de código inútil (DCE) en términos de características del lenguaje. Puede implementar DCE en múltiples etapas de compilación, complementado con un potente sistema de tipos estáticos y capacidades de análisis de código estático, para reducir el código irrelevante y. Mejore efectivamente el rendimiento general de ejecución del programa y reduzca el tamaño del programa.
(B) Arquitectura diseñada para análisis semántico de programas paralelos e incrementales
Basándose en su experiencia previa en arquitectura IDE, Moonbit consideró completamente el IDE y el sistema de compilación al comienzo del diseño del lenguaje. Cooperando con el lenguaje diseño, logra un alto grado de paralelismo e incremento en la verificación y razonamiento de tipos.
Actualmente, la mayoría de los IDE de lenguajes de programación de la industria están diseñados para sistemas operativos de escritorio y no consideran completamente la interacción con el borde en un entorno nativo de la nube. Moonbit puede ejecutar CloudIDE directamente en el borde con una arquitectura altamente paralela y soporte nativo para compilación separada.
La rápida tecnología de análisis semántico de Moonbit se puede adaptar a una gran cantidad de bases de código. En bases de código más grandes, la respuesta IDE se puede completar en cientos de milisegundos. Los resultados de las pruebas preliminares muestran que Moonbit puede completar la detección semántica de múltiples paquetes en un entorno de inicio en frío en aproximadamente 30 ms, mientras que los IDE de lenguajes tradicionales requieren varios segundos o incluso docenas de segundos.
(3) Diseñado para la interacción de la inteligencia artificial
Con el avance de la inteligencia artificial en el campo de los modelos grandes, se diseñará una gran cantidad de códigos con la ayuda de la IA. en el futuro, pero es necesario verificar la exactitud de dichos códigos. La plataforma Moonbit mejorará la corrección y la capacidad de mantenimiento del código de IA mediante soporte nativo para cadenas de herramientas de lenguajes de programación. La plataforma Moonbit tiene las siguientes características:
1. Potente sistema de tipos y herramientas de detección estática integradas: utilice un potente sistema de tipos para comprobar errores de tipo en tiempo de compilación y proporcione herramientas integradas de detección estática que puedan utilizarse durante la programación. Al mismo tiempo se descubren posibles problemas y errores, lo que mejora aún más la corrección del código.
2. Salida de explicación interactiva rápida: ayude a la IA a verificar inmediatamente el efecto del código y realizar iteraciones y correcciones rápidas.
3. Pruebas de expectativas a nivel de lenguaje integradas y marco de generación de pruebas automáticas: verifica automáticamente si el resultado cumple con las expectativas y genera casos de prueba.
4. Mejor soporte de herramientas de verificación formal: demuestre que el código cumple con los requisitos correctos en todas las circunstancias, mejorando aún más la exactitud del código.
03 Comparación entre Moonbit y los principales lenguajes industriales
Uno de los componentes importantes de la plataforma Moonbit es el lenguaje Moonbit, que se desarrollará a partir de septiembre de 2022. Ahora se encuentra en una etapa de rápido desarrollo y sus características gramaticales y semánticas se han estabilizado.
El desarrollo del lenguaje Moonbit integra la experiencia de múltiples lenguajes industriales convencionales, se basa en el diseño simple de Go en ingeniería (como la gestión de paquetes), se basa en las características de seguridad de tipos de Rust y ReScript en semántica. y admite datos algebraicos. Coincidencia de tipos y patrones complejos, y las funciones orientadas a objetos se admiten hasta cierto punto. En comparación con los lenguajes existentes, Moonbit también tiene ventajas únicas:
(1) Las principales ventajas de Moonbit en comparación con Go
1 y el sistema de tipos de Moonbit son más potentes, como los modos de compatibilidad con Coincidencia. , tipos de datos algebraicos, estructuras de datos inmutables, más derivación de tipos.
2.Moonbit es un lenguaje de programación diseñado para WebAssembly. Al comienzo del diseño, se consideró la optimización global y el volumen de código, y el WebAssembly compilado era muy pequeño. En pruebas internas, en algunos casos, WebAssembly compilado por Moonbit puede ser 65,438,0000 veces más pequeño que el ensamblado web compilado en lenguaje Go.
(B) Ventajas de Moon Drill sobre Rust
1 A través de la integración vertical de la cadena de herramientas, la velocidad de compilación y la velocidad de respuesta del IDE son órdenes de magnitud más rápidas que las de Rust.
2. Proporciona gestión automática de la memoria, lo que reduce la carga mental de los desarrolladores y es más adecuado para el desarrollo de aplicaciones.
Mirando al futuro: hoja de ruta de Moonbit
El lenguaje de programación Moonbit seguirá la siguiente hoja de ruta y se esforzará por convertirse en el lenguaje de programación más innovador y eficiente del futuro.