Merge pull request #3460 from LogtalkDotOrg/logtalk_update

[logtalk/en,it-it] Improve section on compiling and loading source files
This commit is contained in:
Andre Polykanine 2019-02-03 20:02:57 +02:00 committed by GitHub
commit 4315785846
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 2 deletions

View File

@ -43,7 +43,7 @@ Un oggetto incapsula le dichiarazioni e le definizioni dei predicati. Gli oggett
:- end_object. :- end_object.
``` ```
# Compilazione dei file sorgenti # Compilazione e il caricamento dei file sorgenti
Supponendo che il codice di cui sopra per l'oggetto `list` venga salvato in un file` list.lgt`, esso può essere compilato e caricato utilizzando il predicato predefiniti `logtalk_load/1` o la sua abbreviazione `{}/1`, con il percorso del file come argomento (l'estensione può essere omessa): Supponendo che il codice di cui sopra per l'oggetto `list` venga salvato in un file` list.lgt`, esso può essere compilato e caricato utilizzando il predicato predefiniti `logtalk_load/1` o la sua abbreviazione `{}/1`, con il percorso del file come argomento (l'estensione può essere omessa):
@ -52,6 +52,9 @@ Supponendo che il codice di cui sopra per l'oggetto `list` venga salvato in un f
yes yes
``` ```
In generale, le entità potrebbero avere dipendenze sulle entità definite in altri file di origine (ad esempio le entità di biblioteca). Per caricare un file e tutte le sue dipendenze, la soluzione consigliata consiste nel definire un file _loader_ che carica tutti i file necessari per un'applicazione. Un file loader è semplicemente un file di origine, in genere denominato `loader.lgt`, che effettua chiamate ai predicati built-in `logtalk_load/1-2`, di solito
da una direttiva `initialization/1` per la portabilità e conformità agli standard. Caricatore file vengono forniti per tutte le librerie, strumenti ed esempi.
# Inviare un messaggio ad un oggetto # Inviare un messaggio ad un oggetto
L'operatore infisso `::/2` è usato per inviare messaggi ad un oggetto. Analogamente al Prolog, è possibile fare backtracking per le soluzioni alternative: L'operatore infisso `::/2` è usato per inviare messaggi ad un oggetto. Analogamente al Prolog, è possibile fare backtracking per le soluzioni alternative:

View File

@ -40,7 +40,7 @@ An object encapsulates predicate declarations and definitions. Objects can be cr
:- end_object. :- end_object.
``` ```
# Compiling source files # Compiling and loading source files
Assuming that the code above for the `list` object is saved in a `list.lgt` file, it can be compiled and loaded using the `logtalk_load/1` built-in predicate or its abbreviation, `{}/1`, with the file path as argument (the extension can be omitted): Assuming that the code above for the `list` object is saved in a `list.lgt` file, it can be compiled and loaded using the `logtalk_load/1` built-in predicate or its abbreviation, `{}/1`, with the file path as argument (the extension can be omitted):
@ -49,6 +49,11 @@ Assuming that the code above for the `list` object is saved in a `list.lgt` file
yes yes
``` ```
In general, entities may have dependencies on entities defined in other source files (e.g. library entities). To load a file and all its dependencies, the advised solution is to define a
_loader_ file that loads all the necessary files for an application. A loader file is simply a source file, typically named `loader.lgt`, that makes calls to the `logtalk_load/1-2`
built-in predicates, usually from an `initialization/1` directive for portability and
standards compliance. Loader files are provided for all libraries, tools, and examples.
# Sending a message to an object # Sending a message to an object
The `::/2` infix operator is used to send a message to an object. As in Prolog, we can backtrack for alternative solutions: The `::/2` infix operator is used to send a message to an object. As in Prolog, we can backtrack for alternative solutions: