Un langage collaboratif pour le développement d'applications numériques a été réalisé dans le cadre de l'initiative "Comme Un Olivier" visant à promouvoir l'économie collaborative.
Ce langage permet de simplifier la création de jeux d'instructions pour faciliter la manipulation de l'information numérique et la création de processus d'échanges entre les utilisateurs.
Ce langage permet de simplifier la création de jeux d'instructions pour faciliter la manipulation de l'information numérique et la création de processus d'échanges entre les utilisateurs.
Il se nome CUOBasique et correspond à une syntaxe simple, légère et accessible. La conception a été réalisée pour la langue française. Néanmoins, une première déclinaison est en cours pour la langue anglaise. CUOBasique construit des programmes numériques dédiés su système d'information personnel.
Le langage collaboratif CUOBasique a pour objectif de favoriser l'échange et le partage entre les utilisateurs finaux, les créateurs de valeur économique, les graphistes et les développeurs. Il permet une approche collaborative à plusieurs niveaux et en fonction des besoins et des compétences de chacun :
- Évolution des fonctionnalités de base ou du système. Création de fonctions complexes ou contraignantes. Cette approche est ouverte aux professionnels de l'informatique ou aux personnes expérimentées en langage C.
- Evolution des interfaces Homme/Machine. Création d'objets interactifs visuels ou vocaux. Cette approche est ouverte aux graphistes ou aux personnes expérimentés en HTML5/CSS3/Javascript.
- Création d'application en langage CUOBasique. Approche ouverte aux créateurs de valeur économique désireux d'être autonome et possédant une première expérience comme la création d'un site WEB, d'un gestionnaire de contenu ou d'une application pour mobile.
- Création de processus d'échanges. Approche ouverte aux utilisateurs finaux qui souhaitent formaliser et automatiser des processus personnels ou professionnels. Le code CUOBasique est alors généré automatiquement et peut être facilement modifié.
Sommaire
1 - Déclaration des jeux d'instructions
Les instructions sont rassemblées sous forme de bloques. L'ensemble de ces bloques sont rassemblés dans un fichier script. Après une compilation vers la machine virtuelle du systeme d'information personnel, le script devient un programme numérique.
| |
Titre | Commentaire |
Fonction | Une fonction est un recipient d'instructions qui accepte des paramètres d'entrés ainsi qu'une valeur de retour. La fonction se nomme "AfficheMonTexte". Elle accepte en paramètre une chaîne de caractère alphanumérique. Elle retourne la valeur Retour de type Entier. Fonction AfficheMonTexte (Message Comme Chaîne) Comme Entier Dimensionne Retour Comme Entier ' Déclaration de la variable de retour Retour = Affiche(Message) ' Appel à la fonction système AfficheMonTexte = Retour ' Affectation de la variable de retour Fin Fonction |
Routine | Une routine est un récipient autonome sans paramètre de retour qui s’exécute de façon asynchrone. Elle sert souvent à traiter des événements. La routine se nomme "MonBouton_clic" et est associée au clic de la souris. Routine MonBouton_clic Affiche("L'utilisateur vient de cliquer sur l'objet qui se nomme 'MonBouton' ") Fin Routine |
Propriétés | Les fonctions et les routines possèdent des propriétés qui conditionnent leur mode d’exécution. Publique, elles sont visibles par tout le programme. Privée, elles ne sont accessibles que pour l'objet dont elles dépendent. Locale, elles s'exécutent strictement sur la machine locale. Distribuée, elles peuvent se répartir sur d'autres machines du réseau et s’exécuter parallèlement. |
2 - Déclaration des variables
Les variables permettent de stocker des valeurs en mémoire . Elle associe un nom et un type à une valeur. Dimensionner un espace mémoire en déclarant un nom permet de réserver un emplacement.
Dimensionne emplacement
Déclarer un type permet de reconnaître cet emplacement et de le traiter comme tel.
Comme Chaîne 'Chaîne de caractère
Affecter une valeur permet d’utilisé cette mémoire.
emplacement = "bonjour" 'emplacement vaut le mot bonjour
| |
Titre | Commentaire |
Entier | Nombre pour une utilisation courante. Dimensionne Nombre Comme Entier Nombre = 1234 |
Chaîne | Chaîne de caractère alphanumérique. Dimensionne Msg Comme Chaîne Msg = "Bonjour à tous!" |
Réel | Nombre pour une utilisation mathématique. Dimensionne Pi Comme Réel Pi = 3,141592 |
Complexe | Nombre complexe pour des calculs mathématiques. Dimensionne z Comme Complexe z.réel = 2 z.imaginaire = 3 ou z = (2, 3) |
Géographique | Nombre pour le calcul géodésique. Dimensionne Position Comme Géodésique 'Pour la ville de Paris Position. latitude = 48.887090 '48°53'13.5"N Position. longitude = 2.335260 '2°20'06.9"E Position. altitude = 0 ou Position = (48.887090, 2.335260, 0) |
Objet | Permet aux utilisateurs de référencer un objet interne ou externe de façon dynamique. Dimensionne MonComposant Comme Objet MonComposant = Nouveau Bouton |
Contrôle | Objet d’interface prédéfini par le système comme un bouton, un label, un champ un texte ou une liste déroulante. MonEcran.MonLabel.Titre = "Bonjour" |
Constante | Permet aux utilisateurs de déclarer des valeur prédéfini et de les stocker dans le jeu d'instruction. Constante MA_CONSTANTE = 1 |
Structure | Permet aux utilisateurs de créer des structures de données. Structure MaStructure Nombre Comme Entier Msg Comme Chaîne Pi Comme Réel Fin Structure |
Divers | Permet aux utilisateurs de déclarer des variables par anticipation et dont le type est affecté lors de son exécution. Dimensionne Compteur Comme Divers Compteur = FaireStatistique("CommeUnOlivier.net") |
Tableau | Permet aux utilisateurs de déclarer des tableaux à plusieurs dimensions. Dimensionne TabNombre(1 à 10) Comme Entier 'Une dimension Dimensionne TabChaine(10,10,10) Comme Chaîne 'Trois dimensions Dimensionne TabStruct(10) Comme MaStructure 'Tableau de structure |
Propriétés | Les variables possèdent des propriétés qui conditionnent leur mode de fonctionnement. Globale, elles sont visibles par tout le programme. Locale, elles sont visibles seulement par la fonction ou la routine. Distribuée, elles peuvent se répartir sur d'autres machines du réseau pour accompagner les fonctions ou les routines qui s’exécutent en mode parallèle. |
3 - Syntaxe de base
La formalisation d'un jeu d'instruction passe par une syntaxe basique. Elle est simple mais doit être rigoureusement appliquée pour que la transformation des instructions en langage machine puisse se réaliser.
| |
Titre | Commentaire |
Opérateurs | Un opérateur permet une interaction entre deux variables et renvoi un résultat. Résultat Variable-1 opérateur Variable-2 Les opérateurs de concaténation + 'Résultat = Variable-1 + Variable-2 & 'Résultat = Variable-1 & Variable-2 Les opérateurs de comparaisons < Inférieur à <= Inférieur ou égale à > Supérieur >= Supérieur ou égale à = Égale <> Différent Les opérateurs arithmétiques + Addition - Soustraction * Multiplication / Division ^ Élever à la puissance Mod Modulo - divise et retourne le reste Les opérateurs logiques ET Conjonction logique
OU Disjonction logique
xOU Exclusion logique
|
Conditions | Elle permettent d'évaluer une expression pour rendre conditionnelle l'exécution d'un jeu d'instruction. Si Variable-1 > 100 ET Variable-2 > 100 Alors Affiche("Condition 1") SinonSi Variable-1 < Variable-2 Alors Affiche("Condition 2") Sinon Affiche("Condition 3") Fin Si |
Boucles | Elle permettent l'exécution d'un jeu d'instruction tant que les conditions sont vraies. Boucle Pour - Suivant : Dimensionne Compteur Comme Entier Pour Compteur = 1 à 5 Affiche("Valeur Compteur =" + Compteur ) Suivant Compteur Boucle TantQue: Dimensionne Compteur Comme Entier TantQue (Compteur <= 5) Compteur = Compteur +1 Affiche("Valeur Compteur =" + Compteur ) Fin TantQue |
Cas | Il permet l'exécution d'un jeu d'instruction en fonction de la valeur d'une expression. Dimensionne Compteur Comme Entier Sélection Cas Compteur Cas 1 Affiche("Valeur = 1" ) Cas 2 Affiche("Valeur = 2" ) Cas 3 Affiche("Valeur = 3" ) Cas 4 Affiche("Valeur = 4" ) Cas 5 Affiche("Valeur = 5" ) Fin Sélection |
Saut | Saut inconditionnel vers un label d'un jeu d'instruction. Affiche("Valeur = 1" ) Aller à Branche Affiche("Valeur = 2" ) Affiche("Valeur = 3" ) Affiche("Valeur = 4" ) Branche : Affiche("Valeur = 5" ) |
Mathématiques | Fonctions trigonométriques et hyperboliques Acos arc cosinus Asin arc sinus Atan arc tangente Atan2 arc tangente Cos cosinus CosH cosinus hyperbolique Sin sinus CinH sinus hyperbolique Tan tangente TanH tangente hyperbolique Fonctions exponentielles et logarithmiques Exp exponentielle Exp2p étant donné x, trouve n et p tels que x = n * 2p Exp multiplie un nombre par une puissance entière de 2 Log logarithme Log10 logarithme décimal Fonctions complémentaires Plafond entier le plus proche par les valeurs supérieures Abs valeur absolue Étage entier le plus proche par les valeurs inférieures Racine2 racine carrée |
Opérations de base
Le langage CUOBasique fournit un certain nombre de fonction prédéfinies et réalisées par les développeurs en langage C. De plus, les fonctions libres et open sources réalisées en langage CUOBasique par les utilisateurs ou les graphistes sont disponibles sous forme d'APIs.
| |
Titre | Commentaire |
Système | Fourniture de l'ensemble des fonctions évolués pour la gestion des périphériques, la sécurité, les langues, le calcul mathématique, les formats de données, des dates,etc. |
Réseaux | Fourniture de l'ensemble des fonctions évolués pour la gestion des réseau TCP/IP et les protocoles de communication comme HTTP, IMAP, SNMP, FTP, M2M, etc. |
Fichiers | Fourniture de l'ensemble des fonctions évolués pour la manipulation des répertoires, des fichiers et des formats associés comme le binaire, le texte, XML, JSON, etc. |
APIs | Bibliothèque de fonctions réalisées en langage CUOBasique par d'autres utilisateurs. |
4 - Définition des interfaces homme machine
Le langage CUOBasique fournit des objets graphiques prédéfinies et réalisés par les graphistes et les développeurs en langage C.
| |
Titre | Commentaire |
Objets | Une quarantaine d'objets visuels ou vocaux sont disponibles comme le bouton, l'images, la liste déroulante, l'arborescence, la vidéo, la reconnaissance vocale, etc. Des objets pour le design, la modélisation et le code sont également disponibles pour construire son propre studio de développement. |
Propriétés | Les propriétés sont des variables qui caractérisent les spécificités de l'objet comme le titre, les couleurs, les formes, les positions haut, bas, longueur, largeur, etc. Par exemple, pour la propriété Source de l'objet vidéo qui contient le film. MonEcran.MaVideo.Source = "MonAniversaire.mp4" |
Événements | Les événements sont des routines qui caractérisent les déclencheurs et l'état de l'objet comme la souris, le glisser-déposer, etc. Routine MaVideo_clic Affiche("L'utilisateur vient de cliquer sur l'objet Vidéo") Fin Routine |
Méthodes | Les méthodes sont des routines qui caractérisent le comportement de l'objet comme son mouvement, son ordre, son déplacement, ses actions spécifiques, etc. MaVideo.Joue 'Action qui lance la vidéo MaVideo.Stop 'Action qui arrête la vidéo |
5 - Manipulation de l'information
Le langage CUOBasique s'appuie sur une logique de métadonnées organisées en matrices informationnelles. Chaque élément est identique. Il peut contenir d'autres éléments. Chaque élément peut posséder des attributs et des opérations.
CUOBasique fournit les facilités suivantes:
| |
Titre | Commentaire |
Verbes | Le verbe Sélectionner SÉLECTIONNE nom, prénom, âge, anniversaire DE client Sélection d'un ensemble d’occurrences contenues dans le récipient nommé client Le verbe Insérer INSÈRE DANS client (nom, prénom) VALEUR ("Moulin","Jean) Insertion d'une occurrence dans le récipient nommé client avec pour le champ nom la valeur "Moulin" et pour le champ prénom la valeur "Jean" Le verbe Modifier MODIFIE client AVEC prénom = "Pierre" DONT nom = "Moulin" Modification du champ prénom avec la valeur "Pierre" pour les occurrences du récipient nommé client dont le champ nom est égale à "Moulin" Le Verbe Effacer EFFACE client DONT nom = "Moulin" Effacement des occurrences du récipient nommé client dont le champ nom est égale à "Moulin" Le verbe Créer CRÉER MATRICE MaBasedeDonnées AVEC _MODÈLECRM CRÉER RÉCIPIENT Enfant (nom Comme chaîne, prénom Comme chaîne, âge Comme Entier) CRÉER INDEX UNIQUE MonIndex SUR client.nom Le Verbe Transformer TRANSFORMER RÉCIPIENT client AJOUTE COLONNE adresse Comme chaîne, AJOUTE COLONNE ville Comme chaîne SUPPRIMER INDEX MonIndex |
Agrégations | L’agrégation Compte SÉLECTIONNE Compte(*) DE client DONT prénom = "Jean" Calcul le nombre d’occurrences contenues dans le récipient nommé client dont le champ prénom contient "Jean" L’agrégation Moyenne SÉLECTIONNE Moyenne(âge) DE client Calcul la moyenne d'âge des occurrences contenues dans le récipient nommé client. L’agrégation Maximum SÉLECTIONNE Maximum(âge) DE client Calcul la plus âgée des occurrences contenues dans le récipient nommé client. L’agrégation Minimum SÉLECTIONNE Minimum(âge) DE client Calcul la plus jeune des occurrences contenues dans le récipient nommé client. Les agrégations "Système" Les fonctions offertes par le système peuvent être intégrées dans les requêtes. SÉLECTIONNE Majuscule(nom) DE client Transformera les résultats des valeurs du champ nom en majuscule Les agrégations "APIs" Les fonctions réalisées en langage CUOBasique peuvent être intégrées dans les requêtes. SÉLECTIONNE FormerLaDate(anniversaire, "US") DE client Transformera les résultats des valeurs du champ anniversaire au format de la date utilisée au États Unis. |
Requête | Exemples de Requêtes SÉLECTIONNE nom, prénom, âge DE client DONT âge ENTRE 20 ET 25 'âge compris entre 20 et 25 ans ET âge <> 22 'âge est différent de 22 ans ET nom COMME "M*" 'le nom commence par M SÉLECTIONNE nom, prénom, âge DE client DONT anniversaire.mois ENTRE 5 ET 8 'date compris entre mai et août TRI PAR nom ASCendant , 'Trier dans l'ordre ascendant du nom âge DEScendant 'Trier des plus jeunes aux plus âgés MODIFIE client AVEC prénom = "Pierre" DONT nom = "Moulin"
AVEC SYNCHRONISATION 'synchronisation avec les autres matrices distribuées sur le réseau
|
Analyse | Une approche mathématique est parfois nécessaire pour comprendre une situation ou un phénomène. Ces fonctions s'appuient souvent sur une grande masse de données. Par exemple, pour réaliser des prévisions climatiques, il est nécessaire de compiler des mesures de températures sur plusieurs dizaines d'années et concernant plusieurs lieux géographiques. Chaque élément de la matrice informationnelle peut être assimilé à un vecteur pour faciliter le traitement mathématique statistique et probabiliste approprié. |
Aucun commentaire :
Enregistrer un commentaire
Utilisez ce formulaire pour commenter ou me contacter directement.