Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    95

    [Gratuito] cercasi collaborazione gratuita, a tempo perso, per creazione nuovo linguaggio open source che implementa il paradigma delle tabelle per cui ogni tipo non scalare è una tabella su cui eseguire query

    C'è qualcuno che è interessato gratuitamente a collaborare per realizzare, a tempo perso, un progetto open source da mettere su github? Si tratterebbe di realizzare un linguaggio di programmazione (e quindi il realativo compilatore che compilerà in linguaggio macchina o a, al limite in linguaggio c) che implementa un interessante paradigma di programmazione, quello delle tabelle. Secondo questo pararadigma ogni ogni tipo non scalare è rappresentabile come una tabella, dotata di righe e di colonne, su cui eseguire delle query, simili a quelle del linguaggio SQL. Obiettivo di questo paradigma è permettere di fare operazioni complesse in poche righe di codice.
    Ecco degli esempi di sintassi per questo nuovo linguaggio.

    int[] numbers1=[5,20,4,1,6];
    int[] numbers2=from numbers1 where value >5;
    out numbers2;
    //L'output sarà [20,6]
    Notiamo come il segno di uguale non significa "assegnazione", ma ha valore di "select"
    Quindi in questo esempio in un array di interi vogliamo selezionare solo i numeri maggiori di 5:

    Mettiamo invece il caso che dobbiamo calcolare la successione di Fibonacci, fino a 144
    int[] numbers=[0,1] as arr append (arr[end]+arr[end-1]) loop while numbers[end]<145;
    out numbers;
    //l'output sarà 0,1,1,2,3,5,8,13,21,34,55,89,144

    In questa query inizializziamo l'array con un valore iniziale [0,1] a cui assegnamo un alias ("arr", l'alias ci serve solo per poter scrivere la nostra query) e poi aggiungiamo a questo gruppo di valori iniziale (identificato con "arr") la somma degli ultimi 2 valori (numbers[end]+numbers[end-1]) e ripetiamo il
    procedimento fintanto che l'ultimo valore rimane inferiore a 145.

    in array multidimensionali , cioè che contengono altri array, abbiamo più righe e non una una soltanto come negli array monodimensionali.
    int[][] bidimensional=[[8,89,5,6],[7,8,6],[67,9,10,90]];
    //selezioniamo solo i numeri minori di 10
    int[] numbers=from bidimensional where value::2 <10;
    out numbers;
    //l'output sarà [8,5,6,7,8,6,9]

    Con ::2 vogliamo indicare i valori che stanno nella seconda riga, cioè gli interi, nella prima invece stanno gli array di int.

    E magari in questo linguaggio sarà possibile usare la clausola distinct nelle nostre query:
    int[] numbers= distinct from bidimensional where value::2 <10;
    out numbers;
    //l'output sarà [8,5,6,9]


    Ovviamente sarà possibile creare tabelle custom, contenenti dati di diverso tipo, anche funzioni. Il tipo dei dati dovrà evvere dichiarato nella dichiarazione della tabella.
    Anche su queste tabelle custom si potranno effettuare delle query.

    Queste sono solo delle proposte di sintassi, per far capire che tipo di linguaggio si intende sviluppare. Sono bene accetti, ovviamente, suggerimenti.
    Ultima modifica di Pensiero; 22-04-2019 a 12:38

  2. #2
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,015
    Sezione sbagliata, guarda in "Offro lavoro\Collaborazione" .

    E comunque prova a guardare Linq...
    >Uranio Radioattivo<
    BINARY.SUN
    flickr

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2019 vBulletin Solutions, Inc. All rights reserved.