Selon les informations de ce site le 21 juin, lors de la conférence des développeurs Huawei HDC 2024 cet après-midi, Gong Ti, président du département logiciel Huawei Terminal BG, a officiellement annoncé le langage de programmation Cangjie auto-développé par Huawei et a publié un aperçu pour les développeurs d'HarmonyOS NEXT Cangjie. Version. C'est la première fois que Huawei publie publiquement le langage de programmation Cangjie.
Gong Ti a déclaré : « En 2019, le projet de langage de programmation Cangjie est né chez Huawei. Après 5 ans de recherche et développement et un investissement important en R&D, il rencontre enfin les développeurs mondiaux aujourd'hui. Programmation Cangjie Le langage adopte des fonctionnalités de langage modernes. L'intégration, l'optimisation complète de la compilation et la mise en œuvre de l'exécution, ainsi que la prise en charge prête à l'emploi de la chaîne d'outils IDE créent une expérience de développement conviviale et d'excellentes performances de programme pour les développeurs. »
Selon les rapports, le langage de programmation Cangjie est un langage de programmation universel. Une nouvelle génération de langage de programmation intelligent par scénario qui se concentre sur « l’intelligence native, l’utilisation naturelle de tous les scénarios, les hautes performances et la sécurité renforcée ». Intégrez-vous à l'écosystème Hongmeng pour offrir aux développeurs une bonne expérience de programmation.Intelligence nativeCadre de programmation AgentDSL intégré, intégration organique du langage naturel et du langage de programmation ; collaboration multi-agents, expression symbolique simplifiée, combinaison libre de modèles, prenant en charge le développement de diverses applications intelligentes.Le langage de programmation Cangjie est un langage de programmation moderne pour le développement d'applications tous scénarios. Ses caractéristiques spécifiques sont :Né avec des scénarios completsExécution légère et évolutive, conception modulaire en couches, quelle que soit la taille de la mémoire, elle peut être installée avec une extension de domaine de scénario complet, une méta-programmation et la technologie eDSL, prend en charge le domaine ; - Développement de style déclaratif orienté. Haute performanceLe premier GC entièrement simultané pour les scénarios de terminal, le thread d'application est plus fluide et la réponse est plus rapide. Threads légers, meilleures performances de concurrence et moins de frais généraux. Strong SecurityL'ADN de sécurité est intégré dans la conception du langage pour aider les développeurs à se concentrer sur la logique métier et à éviter d'investir trop d'énergie dans la programmation défensive. Le codage est sûr et les vulnérabilités ne peuvent être cachées.
Programmation efficace : Cangjie est un langage de programmation multi-paradigmes qui prend en charge la programmation fonctionnelle, impérative. et des paradigmes orientés objet, y compris des fonctionnalités telles que les types de valeur, les classes et les interfaces, les génériques, les types de données algébriques, la correspondance de modèles et les fonctions d'ordre supérieur. De plus, Cangjie prend également en charge l'inférence de type, ce qui peut réduire le fardeau de l'annotation de type pour les développeurs ; diverses fonctionnalités de sucre de syntaxe et de macro intégrées au langage aident les développeurs à développer rapidement des langages spécifiques à un domaine (DSL) et à créer des abstractions de domaine. basé sur Cangjie. Sûr et fiable : En tant que langage de programmation moderne, Cangjie poursuit le codage comme sécurité et garantit la sécurité de type et la sécurité nulle du programme grâce à un système de type statique et à une gestion automatique de la mémoire. En même temps, Cangjie fournit également divers temps d'exécution. vérifications, y compris la vérification des limites d'indice de tableau, la vérification de conversion de type, la vérification de dépassement de calcul numérique et la vérification de la légalité du codage de chaîne, etc., qui peuvent détecter rapidement les erreurs dans le fonctionnement du programme en plus, des outils d'analyse de code, des outils d'obfuscation et ; les stérilisateurs sont également utilisés pour fournir davantage de prise en charge de la sécurité de l'interopérabilité multilingue et de la protection des actifs de code. Concurrence facile : Le langage Cangjie implémente des threads d'espace utilisateur légers et des bibliothèques d'objets concurrentes, en utilisant le modèle de thread d'espace utilisateur. Chaque thread Cangjie est une entité d'exécution extrêmement légère, avec un contexte d'exécution indépendant mais une mémoire partagée. Pour les développeurs, l'utilisation de threads en mode utilisateur est cohérente avec l'utilisation de threads système traditionnels et n'entraîne pas de charges supplémentaires du point de vue de l'état d'exécution, la gestion des threads est complétée par le runtime et ne repose pas sur la gestion des threads du moteur d'exécution ; système d'exploitation. , donc la création, la planification, la destruction et d'autres opérations de threads sont plus efficaces et occupent moins de ressources que les threads du système. Afin d'éviter la concurrence des données, le langage Cangjie fournit une bibliothèque d'objets concurrents.Les méthodes des objets concurrents sont thread-safe, donc l'appel de ces méthodes en multi-threads n'est pas différent de la programmation série. vous soucier de la gestion de la concurrence. Pour certaines bibliothèques principales, Cangjie fournit également des implémentations d'algorithmes de verrouillage sans verrouillage ou à granularité fine, ce qui peut réduire davantage le blocage des threads et améliorer la concurrence.Excellentes performances :
Le compilateur et le runtime Cangjie optimisent la compilation à partir de la pile complète, y compris le frontal du compilateur basé sur l'optimisation de compilation de haut niveau CHIR (Cangjie HighLevel IR) (telle que l'optimisation des boucles sémantiques, le retour sémantique optimisation collaborative -end, etc.), optimisation de compilation basée sur le back-end (telle que la vectorisation SLP, l'optimisation intrinsèque, InlineCache, optimisation de pointeur inter-procédural, optimisation de barrière, etc.), optimisation basée sur le runtime (telle que les verrous légers, marquage distribué, optimisation du traçage concurrent, etc.).
De plus, le langage Cangjie a une conception légère native pour le runtime Grâce à la conception modulaire et hiérarchique du runtime, il définit le modèle d'objet public Cangjie et les composants de base communs du runtime. implémente la gestion et le rappel de la mémoire d'exécution, telles que la pile, la gestion des exceptions et les appels multilingues, réduisent considérablement la conception d'objets redondants parmi plusieurs fonctionnalités et rationalisent le volume d'exécution. Dans le même temps, grâce à la technologie de chargement des packages à la demande, la surcharge de mémoire des packages redondants démarrés par les applications Cangjie est réduite. Par conséquent, pour les appareils sensibles aux ressources, cela consomme moins de ressources et est plus convivial à prendre en charge.
De plus, Cangjie prend également en charge une série de chaînes d'outils pour le développement d'applications, notamment les services de langage (mise en évidence, association), le débogage (débogage multilingue, débogage visuel au niveau du thread), l'inspection statique, l'analyse des performances et la gestion des packages. , génération de documents, outils Mock, cadres de test, outils de couverture, outils Fuzz et outils de programmation auxiliaires intelligents.
Huawei HarmonyOS NEXT Cangjie Language Developer Preview Beta est maintenant officiellement ouverte au recrutement. Les amis intéressés par ce site peuvent s'inscrire pour en faire l'expérience :
https://developer.huawei.com/consumer/cn. /activityDetail/cangjie-beta/
Sujet spécial de la conférence des développeurs Huawei HDC 2024
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!