{"title":"Language facilities for programmable backtracking","authors":"R. Griswold, D. R. Hanson","doi":"10.1145/800228.806937","DOIUrl":"https://doi.org/10.1145/800228.806937","url":null,"abstract":"Most languages intended for artificial intelligence applications include a search and backtracking facility. While built-in backtracking facilities are convenient, they are often too inflexible for use beyond a limited range of applicability. Other mechanisms, such as those based on explicit manipulations of bindings or stack frames, tend to be very unstructured, and give the programmer little control over the backtracking process. This paper describes the SL5 programming language and its use for “programmable backtracking.” SL5 includes a general procedure mechanism that permits procedures to be used as recursive functions or as coroutines. Using this mechanism, the programmer can construct control hierarchies that are tailored to the specific application. A string pattern-matching facility is given as an example of the use of the SL5 facilities.","PeriodicalId":188914,"journal":{"name":"Artificial Intelligence and Programming Languages","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133999164","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"The selection of efficient implementations for a high-level language","authors":"E. Kant","doi":"10.1145/800228.806943","DOIUrl":"https://doi.org/10.1145/800228.806943","url":null,"abstract":"This paper considers the problem of identifying an efficient set of implementations for the abstract constructs in a very high level program description. LIBRA is a system that prunes and expands a tree of partially implemented program descriptions, given a set of refinement rules for generating the tree. Several sets of rules group, order, and select refinements. The analysis of the cost of a program (or program part) at any level of refinement is maintained for cost comparisons between different refinements, for bottleneck identification, and for branch and bound search.","PeriodicalId":188914,"journal":{"name":"Artificial Intelligence and Programming Languages","volume":"24 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1977-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132867239","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}