Suggerimenti per la progettazione della lingua sulla query del database [chiusa]

0

Sto progettando un nuovo linguaggio di programmazione.

Sto progettando una sintassi per implementare le query. Attualmente è così che funziona.

Il database è accessibile tramite l'oggetto entità.

su questo campione ho tabella "entity.manufacturers" e "entity.products"

Per ottenere un produttore con un ID 1:

   var @manufacturer = entity.manufacturers where id = 1;

Per interrogare tutti i prodotti per @manufacturer:

    // Get all manufacturers products 
    var @products = entity.products under @manufacturer;
    // No need to specify what links both since system already knows how entity is related

Attualmente sto usando "sotto" come parola chiave per ottenere tutti i record per @manufacturer. Voglio che abbia senso semplicemente leggendo il codice.

Se puoi dare suggerimenti su una sintassi o parole chiave migliori su come implementarlo, sarà fantastico.

    
posta Richard Heath 20.03.2013 - 18:38
fonte

2 risposte

1

Progettare una buona sintassi concreta è ridicolmente difficile. E sfortunatamente, anche se la sintassi migliore del mondo non può salvare una lingua zoppa, la sintassi errata può (ha) condannare (ed) buone lingue.

Se questo è un linguaggio giocattolo, "avanti tutta" dico io! Ma se vuoi creare un linguaggio pratico da usare per le persone, ho le seguenti osservazioni basate sulle mie esperienze personali. YMMV:

  • focus sulla semantica e sintassi astratta della tua lingua. Questo è il nucleo di una lingua e in che modo le persone impareranno e capiranno. Scopri come gli elementi della lingua possono essere definiti, combinati e astratti. Assolutamente non lasciare che la sintassi concreta detta la semantica o sintassi astratta della tua lingua.
  • parole chiave, parentesi graffe, punto e virgola - questi sono del tutto irrilevanti per quanto riguarda la sintassi e la semantica astratte. Possono esserci più sintassi concrete per lo stesso identico linguaggio.
  • implementare le funzionalità come librerie di solito è preferibile implementarle come sintassi
  • La sintassi
  • è difficile da risolvere
  • la sintassi
  • è difficile da estendere
  • la sintassi è difficile da comporre
  • La sintassi
  • non è accessibile in fase di esecuzione

Quindi la mia risposta alla tua domanda è: progettare prima la sintassi e la semantica astratte. Senza vederli, è molto difficile trovare una buona sintassi concreta. Una volta acquisiti, una sintassi concreta dovrebbe essere molto più facile da ottenere.

Oppure potresti andare con Lisp. ;)

Inoltre, dal momento che hai menzionato I want it to make sense by just reading the code , dovrei sottolineare che progettare una sintassi che si legge come un semplice inglese, ma è anche semplice, non ambigua e potente non è mai stato fatto (per quanto ne so). Non credo sia possibile (anche se spero di sbagliarmi).

    
risposta data 20.03.2013 - 20:47
fonte
1

Non credo che under sia la parola giusta qui come fa molte ipotesi sulla natura della relazione tra due entità, quando tutto ciò che è veramente necessario indicare è il fatto che esse sono correlati. In molte relazioni di entità, una entità può essere considerata come sotto un'altra, ma questo non è certamente il caso per tutte le relazioni di entità.

Vorrei usare la parola by invece, come in

var @products = entity.products by @manufacturer;

O on , come in

var @products = entity.products on @manufacturer;

Dal momento che suggerisce che stai creando una sintassi di join semplificata.

    
risposta data 20.03.2013 - 19:09
fonte

Leggi altre domande sui tag