Ark Compiler , también conocido como ArkCompiler , es una plataforma unificada de compilación y ejecución que admite la compilación conjunta y la ejecución en lenguajes de programación y plataformas de chips, también sistemas operativos de código abierto OpenHarmony , Oniro OS, junto con HarmonyOS propietario con sistema de núcleo único HarmonyOS NEXT incluido en la aplicación nativa en Programación basada en eventos en un entorno de desarrollo unificado y anteriormente creado para EMUI basado en Android para teléfonos inteligentes y tabletas Huawei con aplicaciones apk habilitadas para HMS en AppGallery que mejoran el rendimiento de la aplicación. [2] Admite una variedad de lenguajes de programación dinámicos y estáticos como JS , TS y ArkTS . Es la base de compilación y ejecución que permite que OpenHarmony, Oniro OS junto con HarmonyOS NEXT se ejecuten en múltiples formas de dispositivos como dispositivos inteligentes, teléfonos móviles, PC, tabletas, televisores, automóviles y dispositivos portátiles. ArkCompiler consta de dos partes, cadena de herramientas del compilador y tiempo de ejecución. [3]
Huawei inicialmente publicó el código abierto de Ark Compiler para la plataforma Android en GitHub , el 9 de septiembre de 2019, mientras se alejaban del sistema operativo debido a las sanciones de EE . UU . [4] Luego, la empresa publicó el código abierto de Ark Compiler con OpenArkCompiler como parte del proyecto de código abierto Huawei Ark Compiler (HACOSP) a principios de febrero de 2022 [5] y ArkJS_runtime, el año anterior en septiembre de 2021 después de dos años de inicio en agosto de 2019. [6]
ArkCompiler tiene una plataforma de compilación y ejecución multilingüe configurable y con componentes integrados de OpenHarmony y HarmonyOS con HarmonyOS NEXT . Contiene los componentes principales, como el compilador, la cadena de herramientas y el entorno de ejecución. Admite la compilación y ejecución de lenguajes de programación de alto nivel en la plataforma multichip. ArkCompiler JS Runtime proporciona la capacidad de compilar y ejecutar el lenguaje JavaScript (JS) en el lado del sistema operativo OpenHarmony.
El entorno de ejecución de JS de ArkCompiler consta de dos partes, la cadena de herramientas del compilador de JS y el entorno de ejecución de JS. La cadena de herramientas del compilador de JS compila el código fuente de JS en códigos de bytes de ArkCompiler. El entorno de ejecución de JS ejecuta los códigos de bytes de ArkCompiler generados. [7]
El módulo común de tiempo de ejecución del lenguaje en el sistema operativo OpenHarmony llamado ArkCompiler Runtime Core también creado como Ark Runtime sobre la base de HarmonyOS Runtime en el marco dual actual, junto con HarmonyOS NEXT basado en el marco único OpenHarmony que consta de bibliotecas de tiempo de ejecución básicas independientes del lenguaje, incluyendo ArkCompiler File, Tooling, Base e ISA. El archivo ArkCompiler proporciona códigos de bytes e información necesaria para ejecutar los códigos de bytes. Tooling admite el depurador de tiempo de ejecución. La base es responsable de implementar utilidades relacionadas con la plataforma. La función ISA proporciona una arquitectura de conjunto de instrucciones común que es independiente del lenguaje que permite ejecutar aplicaciones HarmonyOS independientemente de los diferentes conjuntos de instrucciones y chipsets en el hardware con una gran compatibilidad de diversos conjuntos de hardware e interoperabilidad entre HarmonyOS, Oniro y los ecosistemas de software y hardware de OpenHarmony. [10]
ArkCompiler JS Runtime es el entorno de ejecución de JS predeterminado en OpenHarmony. Admite bibliotecas ECMAScript y bibliotecas de contenedores eficientes. También proporciona un conjunto de API nativas para la interacción de C++ y JS y una variedad de recolectores de basura que ofrecen un alto rendimiento. [11]
ArkCompiler eTS Runtime es un entorno de ejecución utilizado en aplicaciones ArkTS derivadas de la antigua API 8 eTS (extendedTypeScript) de HarmonyOS 3.0/OpenHarmony 3.1 en OpenHarmony, así como en aplicaciones HarmonyOS que aprovechan el sistema operativo central HarmonyOS NEXT personalizado basado en OpenHarmony . Contiene un asignador y recolector de elementos no utilizados (GC) para objetos ArkTS/JS, una biblioteca estándar que cumple con la especificación ECMAScript, un intérprete para ejecutar el código de bytes ARK (abc) generado por los componentes front-end de ARK, una caché en línea para aceleración, un compilador tipado estáticamente, una interfaz de funciones C++/C para el desarrollo de aplicaciones de API nativas (NAPI) en tiempo de ejecución y otros módulos en compilación anticipada a través de DevEco Studio desde la versión 3.1.1 tanto en HarmonyOS 3.1 SDK como en OpenHarmony 3.2 SDK API 9. [12]
ets_frontend es una herramienta de interfaz de usuario en el subsistema de tiempo de ejecución de ARK que combina el componente ace-ets2bundle que admite la conversión de archivos de lenguaje de programación ETS en archivos de bytecode de ARK. Se corresponden con el desarrollo de aplicaciones ArkTS en OpenHarmony y el desarrollo de HarmonyOS en el sistema HarmonyOS NEXT. [13]
La cadena de herramientas ArkCompiler ofrece a los desarrolladores herramientas de depuración para el desarrollo de aplicaciones ArkTS , como Debugger, CPUProfiler y HeapProfiler. Las capacidades de depuración y ajuste que ofrece la cadena de herramientas Ark se utilizan a través del IDE DevEco Studio , que se basa en ArkCompiler Runtime para proporcionar información relacionada con el tiempo de ejecución a los desarrolladores. [14]