Il y a actuellement 246 visiteurs
Dimanche 28 Avril 2024
accueilactualitésdossierscomparer les prixtélécharger gratuitement vos logicielsoffres d'emploiforum informatique
Connexion
Créer un compte

Initiation au langage J

Besoin d'aide pour configurer un serveur ? Vous souhaitez obtenir des conseils pour référencer votre site ? Un petit souci pour accéder à votre FTP ? Des soucis de programmation en PHP / ASP / HTML / XHTML / XML / XSLT / CSS / ReactJS / AngularJS / VueJS / CGI / PERL / C / MySQL / PostgreSQL ??? Nous avons peut-être la solution dans ce forum ...

Initiation au langage J

Message le 13 Aoû 2023 07:51

Dans ce sujet, je propose aux amateurs de curiosités exotiques une aventure dans le monde enchanté du J, un langage aussi méconnu qu'il est atypique. Développé à partir du début des années 90 par Kenneth Iverson et Roger Hui, sa vocation première est de permettre des calculs complexes sur des structures numériques (listes, tableaux multidimensionnels, etc), à la manière de l'antédiluvien APL, dont il s'inspire largement. Bien qu'il permette aussi de manipuler du texte, il n'est vraiment pas conçu pour ça !

Le J se distingue par une syntaxe très particulière (n'utilisant pas de mots clés) et un vocabulaire issu de la grammaire littéraire, ce qui est plutôt inhabituel pour un langage informatique. Pour vous donner l'eau à la bouche (ou vous faire fuir en courant) voici un morceau de code typique :
Code: Tout sélectionner
NB. fonction qui calcule les y premiers termes de la suite de Fibonacci
fibonacci =: 3 : 0
fibo =. 3 : 'y , +/ _2 {. y'
(fibo ^: (y - 2)) 0 1
)

Vous êtes encore là ?
Dans ce cas, vous allez vite vous prendre au jeu, et vous aurez certainement envie de "jouer" un peu vous-mêmes avec J ! Pour cela, deux solutions s'offrent à vous :
• Télécharger et installer J à partir du site JSoftware (disponible pour Windows, Linux, Mac, iOS, Android et Raspberry)
• Utiliser dans votre navigateur la version en ligne J Playground (qui ne nécessite aucune installation)

Pour commencer, rien de mieux qu'un peu d'arithmétique de base :
Code: Tout sélectionner
   2 + 3  NB. addition
5
   2 - 3  NB. soustraction
_1
   2 * 3  NB. multiplication
6
   2 % 3  NB. division décimale
0.666667
   2 ^ 3  NB. puissance
8
   2 | 3  NB. reste de la division euclidienne
1
   2 + 3 * 4 - 6 % 2
5

On peut déjà noter plusieurs choses :
• Tout ce qui suit NB. sur une ligne de code est considéré comme du commentaire
• La notation particulière des nombres négatifs : par exemple _1 et pas -1 !
• La notation particulière de la division : % et pas / comme dans la plupart des autres langages !
• L'absence de "priorités arithmétiques" : l'évaluation se fait toujours de droite à gauche, quels que soient les opérateurs !

A suivre...
↓ épisode suivant ↓
Avatar de l'utilisateur
Fabienne
Visiteur Confirmé
Visiteur Confirmé
 
Messages: 13
Inscription: 12 Aoû 2023 08:36
Localisation: Essaouira / Clermont-Ferrand
 


Re: Initiation au langage J

Message le 13 Aoû 2023 10:40

Bonjour Fabienne,

Essaouira très belle destination et en plus classée au patrimoine mondial de l’Unesco.

Langage J complexe à décrypter mais assez simple à comprendre. :wink:

Concernant Fibonacci, c'est en rapport avec Suite de Fibonacci ?

Bonne journée
Avatar de l'utilisateur
heracles
PC-Infopraticien
PC-Infopraticien
 
Messages: 2406
Inscription: 02 Juin 2014 19:18
 

Re: Initiation au langage J

Message le 13 Aoû 2023 14:02

Mon mari (retraité de l'Armée de l'Air) et moi nous plaisons beaucoup à Essaouira, où nous passons en moyenne les deux tiers de l'année. Le patrimoine architectural et culturel, en plus du climat très agréable, en font un lieu de résidence appréciable. Nous y avons acheté une petite propriété dont nous avons fait notre paradis à nous !

Image

Oui, comme l'indique le commentaire dans le code, c'est une fonction qui calcule et affiche les n premiers termes de la suite de Fibonacci !
Avatar de l'utilisateur
Fabienne
Visiteur Confirmé
Visiteur Confirmé
 
Messages: 13
Inscription: 12 Aoû 2023 08:36
Localisation: Essaouira / Clermont-Ferrand
 

Re: Initiation au langage J

Message le 13 Aoû 2023 18:30

↑ épisode précédent ↑

En plus des opérateurs arithmétiques de base, J propose un certain nombre d'opérateurs à un seul argument pour faciliter certains calculs courants. En voici une liste non exhaustive :

Code: Tout sélectionner
   +: 7    NB. multiplie par 2
14
   -: 7    NB. divise par 2
3.5
   *: 7    NB. carré
49
   % 4     NB. inverse
0.25
   %: 2    NB. racine carrée
1.41421
   ^ 2     NB. exponentielle
7.38906
   ^. 2    NB. logarithme népérien
0.693147
   ! 5     NB. factorielle
120
   #: 21   NB. conversation en binaire
1 0 1 0 1

Avant d'aller plus loin, prenons un instant pour nous familiariser avec la drôle de terminologie du langage. En J, on ne parle pas d'opérateurs (même si je l'ai fait jusqu'à présent par commodité), de fonctions ou de procédures : ce sont des verbes (dont le comportement peut être modifié par un adverbe ou une conjonction, nous verrons ça le moment venu) ! Tout le reste (constantes, variables, etc) est regroupé sous l'appellation générique de nom (noun en anglais). Donc, dans l'expression 2 + 3, + est un verbe, 2 et 3 sont des noms ! C'est juste une habitude à prendre...

A suivre...
Avatar de l'utilisateur
Fabienne
Visiteur Confirmé
Visiteur Confirmé
 
Messages: 13
Inscription: 12 Aoû 2023 08:36
Localisation: Essaouira / Clermont-Ferrand
 



Sujets similaires

Message Probleme exercice de Langage machine
Bonjour , J'étudie actuellement certaines matières d'informatiques et de développement web mais je bloque sur l'un de mes exercices , quelqu'un saurait m'aider ?Je ne demande pas forcement les réponses , un lien vers un topic expliquant la notion demander ou autre serait bienvenue , merci à vous.Exe ...
Réponses: 1

Message Windows 8.1 problème de langage pack
Bonjour, j'ai installer la mise à jour Windows 8.1, mais problème depuis mon pc est en Anglais. Quand j'essaye de télécharger le pack Fr, il me dit de me connecter.Est ce que quelqu'un à rencontrer ce genre de problème ?Merci d'avance pour votre aide
Réponses: 3

Message Débutant/Conseil - Langage de programmation...
Bonjour, Voilà quelques questions de grand grand débutant : J'ai besoin de récupérer automatiquement des données sur internet (des tableaux de chiffres , etc...) et ce de façon rapide. 1.) Quels langages pour faire ça ? 2.) Je fais le traitement de ces données avec un logiciel scientifique (matlab). ...
Réponses: 4

Message un exercice langage C urgent
bonsoir si quelqun peut m'aider j'ai un exercice de programmation en language C et merci d'avance : exercice: le fichier "etudiants.txt" décrit les différents etudiants: -cin :un long sur 8 caracteres -nom: une chaine de caractere sur 15 caracteres -prenom: une chaine de caractere sur ...
Réponses: 5

Message le langage de ce package d'installation n'est pas pris en ch
bonjour à tous j'ai eu un gros bug de office 2007,je ne peut ouvrir aucun fichier que se soit excel,word,outlook,publisher... donc j'essaye de le désinstaller et il me dit le langage de ce package d'installation n'est pas pris en charge par le systeme(pack office 2007) meme le logiciel de microsoft ...
Réponses: 4

Message demande d'aide sur un exercice en langage C
Bonjour tt les monde merci de m'aider sur cet exercice de langage CProjet langage CSoit une structure administrative qui se compose d?un ensemble de services caractérisé par un numéro de service, un nom et une localisation Dans un service donné travail des employés caractérisés par un nom, un prén ...
Réponses: 3

Message Parité en langage C
Salut,j'ai ici un petit problème en langage C:"Un programme qui calcul la moyenne des chiffres paire et impaire d'un entier"Voila ce que j'ai essayer mais ca ne marche pas :(while(nb != 0){ch=nb;if(ch%2 == 0){np=np 1;sp=sp ch;mp=sp/np;}if(ch%2 != 0) {ni=ni 1;sp=si ch;mi=si/ni;}nb=nb/10;}
Réponses: 2


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités


.: Nous contacter :: Flux RSS :: Données personnelles :.