Unformatted text preview:

IntroductionSWI-PrologOther books about PrologStatusCompliance to the ISO standardShould you be using SWI-Prolog?The XPCE GUI system for PrologRelease NotesVersion 1.8 Release NotesVersion 1.9 Release NotesVersion 2.0 Release NotesVersion 2.5 Release NotesVersion 2.6 Release NotesVersion 2.7 Release NotesVersion 2.8 Release NotesVersion 2.9 Release NotesVersion 3.0 Release NotesVersion 3.1 Release NotesVersion 3.3 Release NotesAcknowledgementsOverviewGetting started quicklyStarting SWI-PrologExecuting a queryThe user's initialisation fileInitialisation files and goalsCommand line optionsGNU Emacs InterfaceOnline HelpQuery SubstitutionsLimitations of the History SystemReuse of toplevel bindingsOverview of the DebuggerCompilationDuring program developmentFor running the resultEnvironment Control (Prolog flags)An overview of hook predicatesAutomatic loading of librariesGarbage CollectionSyntax NotesISO Syntax SupportSystem limitsLimits on memory areasOther LimitsReserved NamesBuilt-in predicatesNotation of Predicate DescriptionsCharacter representationLoading Prolog source filesQuick load filesListing and Editor InterfaceVerify Type of a TermComparison and Unification or TermsStandard Order of TermsControl PredicatesMeta-Call PredicatesISO compliant Exception handlingDebugging and exceptionsThe exception termPrinting messagesHandling signalsNotes on signal handlingThe `block' control-structureDCG Grammar rulesDatabaseUpdate viewIndexing databasesDeclaring predicates propertiesExamining the programInput and outputInput and output using implicit source and destinationExplicit Input and Output StreamsSwitching Between Implicit and Explicit I/OStatus of streamsPrimitive character I/OTerm reading and writingAnalysing and Constructing TermsAnalysing and constructing atomsClassifying charactersRepresenting text in stringsOperatorsCharacter ConversionArithmeticArithmetic FunctionsAdding Arithmetic FunctionsList ManipulationSet ManipulationSorting ListsFinding all Solutions to a GoalInvoking Predicates on all Members of a ListForallFormatted WriteWritefFormatProgramming FormatTerminal ControlOperating System InteractionFile System InteractionMulti-threading (alpha code)Thread communicationThread synchronisationThread-support library(threadutil)Status of the thread implementationUser Toplevel ManipulationCreating a Protocol of the User InteractionDebugging and Tracing ProgramsObtaining Runtime StatisticsFinding Performance BottlenecksMemory ManagementWindows DDE interfaceDDE client interfaceDDE server modeMiscellaneousUsing ModulesWhy Using Modules?Name-based versus Predicate-based ModulesDefining a ModuleImporting Predicates into a ModuleReserved ModulesUsing the Module SystemObject Oriented ProgrammingMeta-Predicates in ModulesDefinition and Context ModuleOverruling Module BoundariesDynamic ModulesModule Handling PredicatesCompatibility of the Module SystemEmulating meta_predicate/1Foreign Language InterfaceOverview of the InterfaceLinking Foreign ModulesWhat linking is provided?What kind of loading should I be using?Dynamic Linking of shared librariesUsing the library shlib for .DLL and .so filesStatic LinkingInterface Data typesType term_t: a reference to a Prolog termOther foreign interface typesThe Foreign Include FileArgument Passing and ControlAtoms and functorsAnalysing Terms via the Foreign InterfaceConstructing TermsUnifying dataCalling Prolog from CDiscarding DataForeign Code and ModulesProlog exceptions in foreign codeForeign code and Prolog threadsMiscellaneousCatching Signals (Software Interrupts)Errors and warningsEnvironment Control from Foreign CodeQuerying PrologRegistering Foreign PredicatesForeign Code HooksStoring foreign dataEmbedding SWI-Prolog in a C-programLinking embedded applications using plldA simple exampleThe Prolog `home' directoryExample of Using the Foreign InterfaceNotes on Using Foreign CodeMemory AllocationDebugging Foreign CodeName Conflicts in C modulesCompatibility of the Foreign InterfaceGenerating Runtime ApplicationsLimitations of qsave_programRuntimes and Foreign CodeUsing program resourcesPredicates DefinitionsThe plrc programFinding Application filesPassing a path to the applicationThe Runtime EnvironmentThe Runtime EmulatorHackers cornerExamining the Environment StackIntercepting the TracerHooks using the exception/3 predicateReadline InteractionGlossary of TermsSummaryPredicatesArithmetic FunctionsOperatorsUniversity of AmsterdamDept. of Social Science Informatics (SWI)Roeterstraat 15, 1018 WB AmsterdamThe NetherlandsTel. (+31) 20 5256121SSIIWWSWI-Prolog 3.3Reference ManualUpdated for version 3.3.9, June 2000Jan [email protected] http://www.swi.psy.uva.nl/projects/SWI-Prolog/SWI-Prolog is a Prolog implementation based on a subset of the WAM (Warren AbstractMachine). SWI-Prolog was developed as an ‘open’ Prolog environment, providing apowerful and bi-directional interface to C in an era this was unknown to other Prologimplementations. This environment is required to deal with XPCE, an object-orientedGUI system developed at SWI. XPCE is used at SWI for the development of knowledge-intensive graphical applications.As SWI-Prolog became more popular, a large user-community provided requirementsthat guided its development. Compatibility, portability, scalability, stability and provid-ing a powerful development environment have been the most important requirements.‘Edinburgh’, Quintus, SICStus and the ISO-standard guide the development of the SWI-Prolog primitives.This document gives an overview of the features, system limits and built-in predicates.Copyrightc 1990–2000, University of AmsterdamContents1 Introduction 71.1 SWI-Prolog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.1.1 Other books about Prolog . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.2 Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.3 Compliance to the ISO standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.4 Should you be using SWI-Prolog? . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.5 The XPCE GUI system for Prolog . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.6 Release Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.6.1 Version 1.8 Release Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.6.2 Version 1.9 Release Notes . . . . . . . . . . . . . . . . . . . . . . . . . . .


View Full Document

UCR CS 181 - Lecture

Documents in this Course
Load more
Download Lecture
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Lecture and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Lecture 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?