Reescritura
En les matemàtiques, ciències de la computació i la llògica, la reescritura inclou una àmplia gama de métodos per a reemplaçar subtérminos d'una fòrmula en atres térmens. Tals métodos poden conseguir-se per sistemes d'reescritura (també coneguts com a motors d'reescritura o sistemes de reducció).[1][2] En la seua forma més bàsica, consistixen en un conjunt d'objectes, ademés de relacions representant funcions per a transformar tals objectes.
Pot ser que reescritura siga no determinista. Pot ser que una regla per a reescriure un terme puga aplicar-se de moltes maneres diferents a dit terme, o que puguen aplicar-se més d'una regla. Els sistemes d'reescritura no proveïxen un algoritme per a canviar un terme per un atre, sino un conjunt de possibles aplicacions de regles. No obstant, quan es combinen en un algoritme apropiat, els sistemes d'reescritura poden vore's com programes informàtics, i varis programes per a demostrar teoremes[3] i llenguages de programació declarativa es basen en la reescritura de térmens.[4][5]
Eixemples
[editar | editar còdic]Llògica
[editar | editar còdic]En la llògica, el procediment per a obtindre la forma normal conjuntiva (FNC) d'una fòrmula es pot implementar com un sistema d'reescritura.[6] Les regles per a un eixemple de tal sistema serien:
a on el símbol () indica que una expressió que coincidixca en el costat esquerre de la regla es pot reescriure com una formada pel costat dret, i a on cada símbol denota una subexpresión. En tal sistema, cada regla s'elegix de per a que el costat esquerre siga equivalent al costat dret i, en conseqüència, quan el costat esquerre coincidixca en una subexpresión, realisar una reescritura d'eixa subexpresión de l'esquerra al dret es manté la consistència i el valor llògics de tota l'expressió.
Aritmètica
[editar | editar còdic]Els sistemes d'reescritura de térmens es poden utilisar per a calcular operacions aritmètiques entre número natural. Per a fer açò, cada u de tals números deu codificar-se com un terme. La codificació més senzilla és l'utilisada en els axioma de Peano, basada en la constant 0 (zero) i la funció successora S. Per eixemple, els números 0, 1, 2 i 3 estan representats pels térmens 0, S(0), S(S(0)) i S(S(S(0))), respectivament. El següent terme sistema d'reescritura es pot usar per a calcular la suma i el producte d'número natural donats.[7]
Per eixemple, el càlcul que 2+2 resolta en 4 es pot duplicar per reescritura de terme de la següent manera:
a on el número de la regla es dona damunt de la flecha de reescritura a (el símbol ).
Per un atre eixemple, el càlcul de 2⋅2 es fa aixina:
a on l'últim pas utilisa el càlcul de l'eixemple anterior.
Llingüística
[editar | editar còdic]En la llingüística, les regles d'estructura de frases, també cridades regles d'reescritura, s'utilisen en alguns sistemes de gramàtica generativa,[8] com un mig per a generar les oracions gramaticalmente correctes d'un idioma. Tal regla típicament seguix la forma , a on A és una etiqueta de categoria sintàctica, com un sintagma nominal o una oració, i X és una seqüència de tals etiquetes o morfemes, expressant el fet que A pot ser reemplaçada per X en generar l'estructura constitutiva d'una oració. Per eixemple, la regla significa que una oració (O) pot consistir en una sintagma nominal (SN) seguida d'una sintagma verbal (SV); atres regles especificaran en quins subconstituyentes pot consistir un sintagma nominal o verbal, i aixina successivament.
Notes
[editar | editar còdic]- ↑ Esta variant de la regla anterior és necessari ya que la llei conmutativa A∨B = B∨A no pot convertir-se en una regla d'reescritura. Una regla com A∨B → B∨A faria que el sistema d'reescritura siga interminable.
Referències
[editar | editar còdic]- ↑ Joseph Goguen "Proving and Rewriting" International Conference on Algebraic and Logic Programming, 1990 Nancy, France pp 1-24
- ↑ (2014).Journal of Functional Programming.24(4)
- 434–473.ISSN 0956-7968.doi:10.1017/S0956796814000185.Consultat el 2019-02-12.
- ↑ (1992).The Journal of Logic Programming.14(1–2)
- 71–99.doi:10.1016/0743-1066(92)90047-7.
- ↑ (1998).The Journal of Logic Programming.37(1–3)
- 95–138.doi:10.1016/S0743-1066(98)10005-5.
- ↑ (2002).Theoretical Computer Science.285(2)
- 187–243.doi:10.1016/S0304-3975(01)00359-0.
- ↑ Kim Marriott; Peter J. Stuckey, {{{nom2}}} (1998). Programming with Constraints: An Introduction, MIT Press, pp. 436–. ISBN 978-0-262-13341-8.
- ↑ Jürgen Avenhaus; Klaus Madlener, {{{nom2}}} (1990). «Term Rewriting and Equational Reasoning», R.B. Banerji (ed.). Formal Techniques in Artificial Intelligence, Elsevier, pp. 1–43. Here: Example in sect.4.1, p.24.
- ↑ Robert Freidin (1992). Foundations of Generative Syntax, MIT Press. ISBN 978-0-262-06144-5.
- Este artícul conté una traducció derivada de «Reescritura» de Wikipedia en castellà publicada baix la Llicència de documentació lliure de GNU i la Llicència Creative Commons Reconeiximent-CompartirIgual 4.0 Internacional.