About: Prolog is a research topic. Over the lifetime, 7260 publications have been published within this topic receiving 143163 citations. The topic is also known as: Programming in Logic.
TL;DR: This is the second edition of an account of the mathematical foundations of logic programming, which collects, in a unified and comprehensive manner, the basic theoretical results of the field, which have previously only been available in widely scattered research papers.
Abstract: This is the second edition of an account of the mathematical foundations of logic programming. Its purpose is to collect, in a unified and comprehensive manner, the basic theoretical results of the field, which have previously only been available in widely scattered research papers. In addition to presenting the technical results, the book also contains many illustrative examples and problems. The text is intended to be self-contained, the only prerequisites being some familiarity with PROLOG and knowledge of some basic undergraduate mathematics. The material is suitable either as a reference book for researchers or as a textbook for a graduate course on the theoretical aspects of logic programming and deductive database systems.
TL;DR: Software-defined networking (SDN) hopes to remove the limitations on existing network infrastructures by dismantling the vertical integration model and separating network control logic away from routers and switches, instead handling it by a centralized logical controller within a network operating system.
Abstract: The Internet’s astounding success is based on a principle of distributed control and transport protocols in routers and switches that allow digital packets to move worldwide, yet traditional Internet networks are quite challenging to manage, and features such as automatic reconfiguration and response mechanisms barely exist. High-level network policies can only be configured at the low level, which means policies must get translated into vendor-specific commands. Network environments, moreover, are subject to dynamic faults and load changes. Compounding these problems, existing IP networks are vertically integrated: the control plane that manages network traffic and the data plane that forwards the traffic are packaged into the same networking device, in effect locking down network infrastructure. This hinders innovations, as evidenced by the sluggish transition from IPv4 to IPv6. A new networking paradigm called software-defined networking (SDN) hopes to remove the limitations on existing network infrastructures by dismantling the vertical integration model and separating network control logic away from routers and switches, instead handling it by a centralized logical controller within a network operating system. By means of physical, distributed control planes, a more scalable and reliable solution would be achievable. The separation of control from data planes would be realized through an application programming interface (API) between switches and the SDN controller, the best example of which is called OpenFlow. Depending on the rules of an installed controller application, a programmable switch can behave as a router, switch, firewall, load balancer, and so on. An SDN separates the concerns of network policy definitions, switching hardware implementations, and traffic forwarding. This generates significant flexibility and allows for greater network abstraction, simpler network management, and innovation potential. SDN is gaining industry traction via the Open Networking Foundation, which is promoting standards development, and Google has already deployed SDN in its interconnected data centers worldwide. VMware’s network virtualization platform NSX is another example of SDN in action. Computer network functionality exists on three planes: data, control, and management. The management plane defines the network policy, the control plane enforces it, and the data plane executes it. Traditional IP networks couple the control and data planes, embedding them in the same networking device, in a decentralized fashion. Though this has certainly resulted in good network performance and rapidly increasing line rates and port densities, it has also resulted in rigid configurations that are complex and hard to control. Moreover, existing network management relies on costly proprietary solutions and specialized expertise. SDN takes network architecture in a new direction: the forwarding state in the data plane is managed by a remote control plane that is decoupled from the data plane. An SDN has four ‘‘pillars’’: 1) decoupled control and data planes; 2) flow-based (not destination-based) forwarding decisions (‘‘flow’’ being the set of packet field values acting as a match criterion and a set of actions); 3) control logic is moved to an external entity, called an SDN controller or a network operating system (NOS); 4) programmable network: software applications run on top of the NOS, which handles the interaction with the data plane devices. Logical centralization has many benefits: simpler and less error-prone network policies that are easily modified; A new networking paradigm called software-defined networking (SDN) hopes to remove the limitations on existing network infrastructures.
Abstract: Publisher Summary
This chapter focuses on logic programming, which is closely related to PROLOG. Logic programming constitutes the theoretical framework of PROLOG. This close connection led to the adoption of logic programming as the basis for the influential Japanese Fifth Generation Project. The power of logic programming stems from two reasons. First, it is an extremely simple formalism. It also relies on mathematical logic, which developed its own methods and techniques and which provides a rigorous mathematical framework. The chapter presents a self-contained introduction to the theory of logic programming. It also discusses the causal dependence between various concepts and notions and presents the notion of SLD-resolution, which is central to the subject of logic programming.
TL;DR: This paper presents a guide to the literature the self-applicable scheme specializer, a partial evaluator for a subset of scheme for a first-order functional languages.
Abstract: Functions, types and expressions programming languages and their operational semantics compilation partial evaluation of a flow chart languages partial evaluation of a first-order functional languages the view from Olympus partial evaluation of the Lambda calculus partial evaluation of prolog aspects of Similix - a partial evaluator for a subset of scheme partial evaluation of C applications of partial evaluation termination of partial evaluation program analysis more general program transformation guide to the literature the self-applicable scheme specializer.
TL;DR: This chapter presents a self-contained introduction to the theory of logic programming, which discusses the causal dependence between various concepts and notions and presents the notion of SLD-resolution, which is central to the subject of logic Programming.
Abstract: Publisher Summary
This chapter focuses on logic programming, which is closely related to PROLOG. Logic programming constitutes the theoretical framework of PROLOG. This close connection led to the adoption of logic programming as the basis for the influential Japanese Fifth Generation Project. The power of logic programming stems from two reasons. First, it is an extremely simple formalism. It also relies on mathematical logic, which developed its own methods and techniques and which provides a rigorous mathematical framework. The chapter presents a self-contained introduction to the theory of logic programming. It also discusses the causal dependence between various concepts and notions and presents the notion of SLD-resolution, which is central to the subject of logic programming.