Articulo de referencia

Compilador Ark

{{cite web |title=OpenHarmony 3.0 successfully adapted Loongson 1C300B chip |url=https://www.huaweiupdate.com/openharmony-3-0-successfully-adapted-loongson-1c300b-chip/ |website...

Ark Compiler , también conocido como ArkCompiler , es una plataforma unificada de compilación y ejecución de Huawei que admite la compilación y ejecución conjuntas en diversos lenguajes de programación y plataformas de chips, así como en los sistemas operativos de código abierto OpenHarmony y Oniro , junto con el sistema propietario HarmonyOS 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 construido 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, incluidos Java, C++, [ 3 ] JavaScript , TypeScript 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 tipos de dispositivos, como dispositivos inteligentes, teléfonos móviles, PC, tabletas, televisores, automóviles y wearables. ArkCompiler consta de dos partes: la cadena de herramientas del compilador y el entorno de ejecución. [ 4 ]

Huawei inicialmente liberó el código fuente 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 estadounidenses . [ 5 ] Luego, la compañía liberó el código fuente de Ark Compiler con OpenArkCompiler como parte del proyecto de código abierto de Huawei Ark Compiler (HACOSP) a principios de febrero de 2022 [ 6 ] y ArkJS_runtime, en septiembre de 2021, dos años después de su inicio en agosto de 2019. [ 7 ]

Descripción general

ArkCompiler cuenta con una plataforma de compilación y ejecución multilingüe, modular y configurable, integrada para OpenHarmony y HarmonyOS con HarmonyOS NEXT . Incluye componentes clave como el compilador, la cadena de herramientas y el entorno de ejecución. Permite la compilación y ejecución de lenguajes de programación de alto nivel en la plataforma multichip. ArkCompiler JS Runtime ofrece la capacidad de compilar y ejecutar JavaScript (JS) en el sistema operativo OpenHarmony.

ArkCompiler JS Runtime consta de dos partes: la cadena de herramientas del compilador JS y el entorno de ejecución JS. La cadena de herramientas del compilador JS compila el código fuente JS en bytecodes de ArkCompiler. El entorno de ejecución JS ejecuta los bytecodes de ArkCompiler generados. [ 8 ]

Núcleo de tiempo de ejecución de ArkCompiler

El módulo común de tiempo de ejecución de lenguaje en el sistema operativo OpenHarmony, llamado ArkCompiler Runtime Core, también creado como Ark Runtime sobre HarmonyOS Runtime, se basa en el marco dual actual, junto con el marco único basado en OpenHarmony, HarmonyOS NEXT, que consta de bibliotecas básicas de tiempo de ejecución independientes del lenguaje, incluyendo ArkCompiler File, Tooling, Base e ISA. ArkCompiler File proporciona los bytecodes y la información necesaria para su ejecución. Tooling admite el depurador de tiempo de ejecución. Base se encarga de implementar las utilidades relacionadas con la plataforma. La función ISA proporciona una arquitectura de conjunto de instrucciones común e independiente del lenguaje que permite ejecutar aplicaciones HarmonyOS independientemente de los diferentes conjuntos de instrucciones y chipsets en el hardware, con una gran compatibilidad con diversos conjuntos de hardware e interoperabilidad entre los ecosistemas de software y hardware de HarmonyOS, Oniro y OpenHarmony. [ 11 ]

Entorno de ejecución de ArkCompiler JS

ArkCompiler JS Runtime es el entorno de ejecución de JavaScript predeterminado en OpenHarmony. Admite bibliotecas ECMAScript y bibliotecas de contenedores eficientes. También proporciona un conjunto de API nativas para la interacción entre C++ y JavaScript , así como diversos recolectores de basura de alto rendimiento. [ 12 ]

ArkCompiler eTS Runtime

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 un recolector de basura (GC) para objetos ArkTS/JS, una biblioteca estándar que cumple con la especificación ECMAScript, un intérprete para ejecutar el ARK Bytecode (abc) generado por los componentes front-end de ARK, una caché en línea para aceleración, un compilador de tipado estático, una interfaz de función C++/C para el desarrollo de aplicaciones de API nativa (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. [ 13 ]

ets_frontend

ets_frontend es una herramienta de interfaz en el subsistema de tiempo de ejecución de ARK que combina el componente ace-ets2bundle, el cual permite convertir archivos del lenguaje de programación ETS en archivos de código de bytes de ARK. Se corresponden con el desarrollo de aplicaciones ArkTS en OpenHarmony y el desarrollo de HarmonyOS bajo el sistema HarmonyOS NEXT. [ 14 ]

Cadena de herramientas de ArkCompiler

The ArkCompiler Toolchain provides developers with debugging tools for ArkTS application development, such as the Debugger, CPUProfiler, and HeapProfiler. The debugging and tuning capabilities provided by the Ark Toolchain is used through DevEco Studio IDE that relies on the ArkCompiler Runtime to provide runtime-related information to developers.[15]

References

  1. "OpenHarmony 3.0 successfully adapted Loongson 1C300B chip". Huawei Update. December 15, 2021. Retrieved December 15, 2021.
  2. Siddiqui, Aamir (June 22, 2019). "Ark Compiler Explained: How Huawei's App Compiler May Improve Android App Performance". XDA Developers. Retrieved February 12, 2024.
  3. 龚宇洁 (2019). "方舟编译器初探". 科技与创新 (23): 47–48. doi:10.15913/j.cnki.kjycx.2019.23.018. Retrieved May 3, 2025.
  4. "ArkCompiler Runtime". OpenAtom Gitee. Retrieved February 12, 2024.
  5. Amit (September 9, 2019). "Huawei Ark compiler officially open source from GitHub for self-hosting". Huawei Update. Retrieved February 12, 2024.
  6. Sarkar, Amy (February 9, 2022). "OpenArkCompiler 1.0 launched, Huawei Ark Compiler open source project (HACOSP)". HC Newsroom. Retrieved February 12, 2024.
  7. Mishra, Yash (September 7, 2021). "Ark Compiler JS runtime became open source in Huawei HarmonyOS". HC Newsroom. Retrieved February 12, 2024.
  8. "Overview". OpenAtom Gitee. Retrieved February 12, 2024.
  9. "OpenHarmony 3.0 successfully adapted Loongson 1C300B chip". Huawei Update. December 15, 2021. Retrieved December 15, 2021.
  10. "OpenHarmony 3.0 successfully adapted Loongson 1C300B chip". Huawei Update. December 15, 2021. Retrieved December 15, 2021.
  11. "Runtime Core". OpenAtom Gitee. Retrieved February 12, 2024.
  12. "ArkCompiler JS Runtime". OpenAtom Gitee. Retrieved February 12, 2024.
  13. "ArkCompiler JS Runtime - ets Runtime". OpenAtom Gitee. Retrieved February 12, 2024.
  14. "ets_frontend" . OpenAtom Gitee . Consultado el 12 de febrero de 2024 .
  15. "Componentes de la cadena de herramientas de Ark" . OpenAtom Gitee . Consultado el 12 de febrero de 2024 .