Implementing backjumping by means of exception handling
Fuente:
arXiv
Guardado en:
| Autor principal: | |
|---|---|
| Formato: | Preprint |
| Publicado: |
2023
|
| Materias: | |
| Acceso en línea: | |
| Etiquetas: |
Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
|
| _version_ | 1866915455812239360 |
|---|---|
| author | Drabent, Włodzimierz |
| author_facet | Drabent, Włodzimierz |
| contents | We discuss how to implement backjumping (or intelligent backtracking) in Prolog by using the built-ins throw/1 and catch/3. We show that it is impossible in a general case, contrary to a claim that ``backjumping is exception handling". We provide two solutions. One works for binary programs; in a general case it imposes a restriction on where backjumping may originate. The other restricts the class of backjump targets. We also discuss implementing backjumping by using backtracking and the Prolog database. Additionally, we explain the semantics of Prolog exception handling in the presence of coroutining. |
| format | Preprint |
| id |
arxiv_https___arxiv_org_abs_2305_16137 |
| institution | arXiv |
| publishDate | 2023 |
| record_format | arxiv |
| spellingShingle | Implementing backjumping by means of exception handling Drabent, Włodzimierz Programming Languages Logic in Computer Science 68N17 D.1.6; I.2.8; D.3.3 We discuss how to implement backjumping (or intelligent backtracking) in Prolog by using the built-ins throw/1 and catch/3. We show that it is impossible in a general case, contrary to a claim that ``backjumping is exception handling". We provide two solutions. One works for binary programs; in a general case it imposes a restriction on where backjumping may originate. The other restricts the class of backjump targets. We also discuss implementing backjumping by using backtracking and the Prolog database. Additionally, we explain the semantics of Prolog exception handling in the presence of coroutining. |
| title | Implementing backjumping by means of exception handling |
| topic | Programming Languages Logic in Computer Science 68N17 D.1.6; I.2.8; D.3.3 |
| url | https://arxiv.org/abs/2305.16137 |