Home

o ++ oPS (ottoProgrammingScript) è essenzialmente un linguaggio di query semplice e potente, ma consente anche una vasta gamma di calcoli.

o ++ oPS utilizza gruppi ripetuti (gerarchie) e dispone di operatori potenti ma di facile utilizzo per la selezione, la ristrutturazione, il calcolo e la combinazione di tabelle e documenti.

Caratteristiche di o ++ oPS

 
  • programmi brevi.
  • sintassi semplice; I nomi delle operazioni sono facili da ricordare.
  • già i programmi tipo ricette di cucina (elaborazione sequenziale) sono molto espressivi
  • condizioni logiche non devono essere connesse; possono essere applicate una dopo l'altra; due condizioni consecutive non sono sempre sinonimo di congiunzione (maggiore espressività)
  • potenti operazioni di selezione, ristrutturazione, calcolo, combinazione e soluzione dei problemi della distinta base (Diba), ...
  • presentazione compatta (hsq) e semplice (tab) di "Tabmente" (tabelle e documenti)
  • aggregazioni senza GROUPBY; GROUPBY non può essere applicato ai flussi di dati.
  • nessun prodotto cartesiano; nel prodotto cartesiano, ogni elemento di una tabella viene sempre unito a ciascun elemento dell'altra tabella. Questo crea anche tabelle intermedie molto grandi nella mente dell'utente. Le condizioni di collegamento (join conditions) sono sempre richieste.
  • la funzionalità utente può essere integrata in programmi o ++ o; di conseguenza, gli incorporamenti di o ++ o in linguaggi di programmazione convenzionali come JAVA, C, ... diventano meno importanti.
  • in o ++ o, la metodologia di programmazione prevale sull'efficienza del computer; quest'ultimo è ampiamente garantito da hardware migliorato.
  • le operazioni di base sono più facili da comprendere rispetto all'algoritmo della moltiplicazione decimale.
  • implementazione in OCaml (INRIA Parigi); questo rende o ++ o un prodotto puramente europeo. si è riuscito ad integrare gli alberi di ricerca in Tabmente; ciò si traduce in un'efficienza molto migliore per tante classi di problemi.

Obiettivi di o ++ oPS

 
  • dovrebbe esserci un programma leggibile dietro ogni clic; se l'utente finale avesse un problema con il risultato del computer, egli potrebbe modificare il programma da solo fino a quando non ha raggiunto il risultato desiderato.
  • richieste avanzate a Wikipedia; al momento, tante informazioni possono essere estratte da Wikipedia solo con grande sforzo manuale.
  • o ++ o dovrebbe diventare un'interfaccia universale per tabelle e documenti; vale a dire che l'utente dovrebbe essere in grado di interrogare qualsiasi database, file, sistema di recupero e Internet con mezzi uniformi.
  The  book  contains  numerous examples to guarantee a quick access to the language.
It contains chapters about comparisons with SQL and other languages, about the specification of tabments (TABle+ docuMENT), about query optimization and about storage structures.

La struttura incontra tabelle e documenti

       students.tab: STID, NAME, LOC?, SAL, DEPT, (COURSE, MARK l), (PROJ, HOURS m)m 

       m: set (Menge) ; l: List; a student contains 2 repeating groups (exams and projects)

        sql.htm

L'utente finale incontra la programmazione

Domanda 1: Fornire tutti gli studenti che hanno frequentato i corsi Database e Algebra.

  aus students.tab
avec Algebra Database in COURSEm
# aus: from
# avec (French): with (where)
 
 

       query.htm

Domanda 2: Dare per ogni studente che ha completato i corso Database il nome e tutti gli altri corsi e i voti rispettivi.

  aus students.tab
avec STID! COURSE=Database
sans COURSE! COURSE=Database
gib NAME,(COURSE,MARK m)b

# selects students
# selects exams; sans: without
# b:bag
   

       query.htm

Domanda 3: Dare per i corsi con un voto 10, il numero di studenti con il voto 10,
i nomi e le matricole di tali studenti e il numero totale di studenti con un voto 10.

  aus students.tab
avec MARK=1
gib CNT,(COURSE,CNT,(NAME,STID m)m)
    CNT:=STID ! ++1

# selects students and courses

# counts students
   

       query.htm

Domanda 4: Fornire tutti gli studenti i cui dati contengono la stringa "Otto".

  students.tab
avec Otto
     

Calcolo 1: Calcola i prezzi lordi di diversi prezzi netti.

  77 79 567 432 *1.19      

Calcolo 2: Calcola il valore lordo di ciascuna posizione e la somma di tutti i valori lordi.

  <TAB!
ARTICLE,   PRICE, COUNT m
OttoRAMDB  500      20
OttoWiki    10     200
OttoCalc    20    4000 
!TAB>
TOTAL:=PRICE*COUNT
TOTALSUM:= TOTALl ++





#:= extension by a new column
   

Calcolo 3: Rendimento annuo composto di un investimento di 100 euro dopo 10 anni a un tasso di interesse annuo rispettivamente dell'1% e del 9%

  [YEAR! 2016 .. 2026]
AMNT1:=first 100. next AMNT1 pred *1.01 at YEAR
AMNT9:=first 100. next AMNT9 pred *1.09 at AMNT1
rnd 2



# rounds two digits after point