Le créateur de JSON, Doug Crockford, dévoile un nouveau langage de programmation, "Misty", conçu pour être utilisé à la fois par les étudiants et les programmeurs professionnels"
Le site officiel du langage le décrit comme "un langage dynamique, polyvalent, transitionnel, à l'intention des acteurs. Il possède une syntaxe douce destinée aux étudiants, ainsi que des fonctionnalités avancées telles que la sécurité des capacités et les lambdas avec le cadrage lexical..."
Le langage de programmation Misty est un langage d'acteur dynamique, polyvalent et transitoire. Il possède une syntaxe douce destinée aux étudiants, ainsi que des fonctionnalités avancées telles que la sécurité des capacités et les lambdas à portée lexicale.
La grammaire du langage est exprimée sous la forme McKeeman.
Espace
Le langage est assez strict dans son utilisation des espaces et de l'indentation. Dans la plupart des langages de programmation, l'espacement et le formatage du code sont sous-spécifiés, ce qui conduit à de nombreuses conventions de style incompatibles, certaines favorisant la formation de bogues, et toutes favorisant des arguments qui font perdre du temps, des incompatibilités, et des sentiments blessés. Misty n'autorise qu'une seule convention qui est strictement appliquée. Les programmeurs peuvent ainsi concentrer leur attention sur des questions plus importantes.
L'indentation se fait par incréments de 4 espaces. La forme McKeeman est étendue par trois règles spéciales pour rendre cela possible :
1 2 3 4 5 6 7 8 9 10 11
|
indentation
The spaces required by the current nesting.
increase_indentation
Append four spaces to the indentation.
decrease_indentation
Remove four spaces from the indentation. |
L'indentation est le nombre d'espaces requis au début d'une ligne, déterminé par son niveau d'imbrication.
1 2 3 4 5 6 7
|
indent
increase_indentation linebreak
outdent
decrease_indentation linebreak |
La règle du saut de ligne permet l'insertion d'un commentaire, met fin à la ligne et vérifie l'indentation de la ligne suivante. Des commentaires multiples et des lignes vides peuvent apparaître partout où une ligne peut se terminer.
1 2 3 4 5 6 7 8 9 10 11
| linebreak
optional_comment linefeed more_linebreaks
more_linebreaks
linebreak
indentation
linefeed
'000A' |
Il existe de nombreux endroits où le langage attend une fin de ligne, comme à la fin d'une déclaration.
Misty est strict sur les espaces blancs afin d'éliminer le besoin, le débat et le contournement des normes de codage. Misty commence avec la jolie convention de formatage JSON. Par exemple, JSON permet ce texte JSON compact.
{"one":1,"array":[1,2,3],"text":"hello"}
à présenter de manière plus agréable en tant que
1 2 3 4 5 6 7 8 9
| {
"one": 1,
"array": [
1,
2,
3
],
"text": "hello"
} |
Misty record literals va plus loin en éliminant la virgule à la fin d'une ligne et en supprimant les guillemets sur les noms de champs dans la plupart des cas.
1 2 3 4 5 6 7
| my_button.on(
"click"
ƒ (event) {
call event.done()
call take_action()
}
) |
Dans les expressions complexes, les parens peuvent permettre un saut de ligne. Sous cette forme, les expressions peuvent être interrompues avant certains opérateurs.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| def atan: ƒ (slope) (
math.sine(
slope
/ (math.sqrt(
slope
* slope
) + 1)
)
)
set progress: (
result
+ (radicand / result)
) / 2 |
Commentaires
Un commentaire commence par un #octothrope et se termine par la fin de la ligne. Les commentaires sont utilisés pour fournir un contexte et une motivation afin d'aider les humains à comprendre la programmation. Le système Misty ignore strictement tous les commentaires.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
optional_comment
""
spaces '#' comment_characters
spaces
""
space spaces
space
' '
comment_characters
""
comment_character comment_characters
comment_character
'0020' . '10FFFF' |
Les noms
Les noms sont utilisés pour identifier les fonctions, les paramètres, les champs, les variables, les modules et les acteurs. Un nom commence par une lettre. Un nom peut contenir n'importe quel nombre de lettres et de chiffres. Un nom peut contenir _underbar et $dollar comme séparateurs. Les noms peuvent se terminer par un point d'interrogation, utilisé pour indiquer les fonctions prédicatives et les valeurs de vérité.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
name
letter subsequent
subsequent
""
'?'
letter_or_digit subsequent
'_' letter_or_digit subsequent
'$' letter_or_digit subsequent
letter
'A' . 'Z'
'a' . 'z'
digit
'0' . '9'
letter_or_digit
letter
digit |
Il n'y a pas de mots réservés.
Source : Misty
Et vous ?
Qu'en pensez-vous ?
Voir aussi :
Popularité des langages sur GitHub : Python, Go et JavaScript en progression, tandis que Java et C++ sont en légère baisse mais restent dans le Top 5, d'après GitHut 2.0
Gooey transforme presque n'importe quel programme console Python en une application GUI complète, et vous permet de vous concentrer sur la construction de programmes robustes et configurables
Les langages de programmation les mieux payés en 2023 : une analyse de 10 millions d'offres d'emploi effectuée par DevJobsScanner
Partager