S-expresie

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Termenul S-expresie sau sexp (unde S reprezintă simbolic) se referă, în informatică, la o convenție pentru reprezentarea semistructurate date în formă textuală. Expresiile S sunt cunoscute în principal pentru utilizarea lor în familia lisp de limbaje de programare ( Common Lisp , Scheme etc.). Alte utilizări ale expresiei S se găsesc în limbaje derivate din Lisp, cum ar fi DSSSL și ca mark-up în protocoale de comunicare precum IMAP și CBCL , dezvoltate de John McCarthy .

Detaliile sintaxei și ale datelor acceptate variază în diferite limbi, dar caracteristica comună a tuturor constă în utilizarea expresiei S ca notație de prefix (notație de prefix) închisă între paranteze (cunoscută și ca notație poloneză Cambridge).

Expresiile S sunt utilizate atât pentru cod, cât și pentru date. [1] Inițial au fost folosite doar ca reprezentare internă a expresiilor M , mai ușor de citit de oameni. Cu toate acestea, programatorii Lisp au început în curând să folosească expresii S ca notație implicită.

Expresiile S pot fi fie obiecte unice, cum ar fi numere, atomi LISP, inclusiv atomii speciali nil și t , sau contra perechi, scrise ca (x. Y). (list 1 2 3) mai lungi sunt create prin cuiburi de perechi contra, de exemplu (1 . (2 . (3 . nil))) care pot fi, de asemenea, scrise mai inteligibil ca (list 1 2 3) .

Codul programului poate fi scris sub forma unei expresii S, folosind notația prefix. Scrierea programelor Lisp este ușurată de o serie de facilitări de sintaxă, care vă permit să scrieți expresii S utilizate în mod obișnuit cu o sintaxă echivalentă, dar prescurtată. De exemplu, expresia utilizată în mod obișnuit (quote x) poate fi abreviată cu 'x .

Exemplu în Common Lisp :

 (defun factorial (x)
   (dacă (zerop x) 1
       (* x (factorial (- x 1))))))

Exemplu în schemă :

 (definiți (factorial x)
    (dacă (zero? x) 1
        (* x (factorial (- x 1))))))

Notă

  1. ^ În acest sens, a se vedea lucrarea lui McCarthy, „ Funcții recursive ale expresiilor simbolice Arhivat 2 februarie 2004 la Internet Archive ”.

Elemente conexe