Mojo: Fondements de la programmation et syntaxe

Par mmane, 16 février, 2024
logo du langage de programmation Mojo

Bonjour! 

Bienvenue dans ce troisième blog dédié à l’exploration de Mojo 🔥. La semaine dernière, nous avons appris davantage sur l’historique de ce langage et son créateur. Cette semaine, nous allons nous pencher sur les bases de la programmation en Mojo.

Déclaration de fonction et de struct

Une fonction peut être déclarée de deux façons : soit avec "def" soit avec "fn". Une fonction déclarée avec "def" n'a pas besoin de spécifier le type des arguments de la fonction ni son type de retour. 

Image retirée.

En revanche, pour une fonction déclarée avec "fn", l'inférence de type n'est pas possible. Les types des arguments et de la valeur de retour de la fonction doivent être explicitement déclarés. 

Image retirée.

Une struct est similaire à une classe en Mojo. Comme dans d'autres langages de programmation, les classes ou les struct possèdent des propriétés, des méthodes, des constructeurs et un bloc d'initialisation.

Image retirée.

Image retirée.

Arguments et paramètres de fonction ou de struct: 

Dans plusieurs langages de programmation, les termes "argument" et "paramètre" sont souvent utilisés comme des synonymes ou de termes interchangeable. Toutefois, un argument, placé entre parenthèses, est une variable au moment de l'exécution (runtime), tandis qu'un paramètre, placé entre crochets, est une variable au moment de la compilation (compile-time) qui devient ensuite une constante au moment de l'exécution (runtime). 

Image retirée.

Dans cet exemple, la fonction "repeat" a un paramètre de type Int et un argument de type String. Pour que cette fonction soit appelée correctement, l'argument et le paramètre doivent être spécifiés comme ceci : 

Image retirée.

Actuellement, Mojo ne prend pas en charge le code au niveau supérieur, donc une méthode "main" doit être déclarée pour que le programme s'éxecute.

 

Déclaration de variables: 

Une variable peut être déclarée avec "var" ou "let". "var" crée une variable muable, tandis que "let" crée une variable immuable. Cependant, si les variables sont déclarées à l'intérieur d'une fonction "def", il n'est pas nécessaire de préciser "var" ou "let" car "var" est utilisé par défaut. En revanche, dans le cas d'une fonction "fn", les variables doivent être explicitement déclarées comme muables ou immuables. De plus, le type de toutes les variables est inféré, même dans une fonction "fn" (seuls le retour et les paramètres doivent être typés). 

Image retirée.

Structure du code:

 Les blocs de code tels que les structures de contrôle et les fonctions sont définis par un double-point (:) suivi d'un saut de ligne et des lignes de code suivantes indentées. Le nombre d'espaces d'indentation n'est pas important, tant que ce nombre reste constant dans le même bloc de code. 

Image retirée.

Mojo suit le modèle d'une instruction par ligne, comme en Python. Cependant, une longue instruction peut être séparée sur deux lignes si elle est indentée comme ceci : 

Image retirée.

Commentaires: 

Le symbole "#" est utilisé pour écrire un commentaire sur une ligne. Pour écrire des commentaires plus longs sur plusieurs lignes, il faut utiliser les triples guillemets anglais. Les triples guillemets sont également utilisés pour la documentation des fonctions.

Image retirée.

 

Références:

« Language basics », Modular.com, https://docs.modular.com/mojo/manual/basics.html#functions (Page consulté le 14 février 2024).

« Parameterization: compile-time metaprogramming », Modular.com, https://docs.modular.com/mojo/manual/parameters/ (Page consulté le 16 février 2024).

github.com, https://github.com/modularml/mojo/ (Page consulté le 14 février 2024)

« Compile time », wikipedia.org, https://en.wikipedia.org/wiki/Compile_time (Page consulté le 16 février 2024).

« Environnement d'exécution », wikipedia.org, https://fr.wikipedia.org/wiki/Environnement_d%27ex%C3%A9cution (Page consulté le 16 février 2024).

 

Étiquettes

Commentaires2

oregistresainvilus

il y a 1 an 2 mois

Excellent article. J'apprécie énormément la simplicité du langage de programmation de Mojo, tout comme tu l'as mentionné, il se rapproche énormément de celui de Python à quelques différences près. Quels sont les avantages de ce langage par rapport à Python, en quoi est-il meilleur?

plafrance

il y a 1 an 2 mois

C'est la première fois que je vois un langage de programmation qui fait cette distinction entre argument et paramètre. C'est un peu semblable aux macros C++, peut-être?