Skip to main content

Assignment 1 First Order Languages | Software Engineering 211 | Java Assignments

Goal:

In this assignment, we want to implement the operational semantics of rst order languages and get a feeling for their importance for databases.

Problem Statement:

For this goal, you write an interpreter for formulae of the rst order language. The formulae used here have a free variable and are used to query a database that is given as part of the input. The query result is comprised of those values for the free variable that make the formula true.

In order to make the interpretation of the formulae easier, we represent formulae in this assignment not in the in x notation that we use otherwise but in Polish notation, which eliminates parentheses and the need for operator precedence, and also makes the processing of the expression tree easier. As Boolean operators we use only & ; _;:. To make it possible to use predicates without parentheses, we furthermore require that every predicate name is used only for a single arity, i.e. if "mail" is used for a ternary predicate, it must not be used for a unary predicate as well. Polish notation works as follows: the dyadic operators & ;_ are written before their arguments, just like the predicate names, followed by their arguments without separation except whitespaces. For example for the formula (:P(x) _ Q(y)) & 8z R(x; y; z) in in x notation, the corresponding formula in Polish notation is & _ :P x Q y 8 z R x y z. We allow objects from the universe as constants in the formulae; the universe consists of exactly all those objects named in the ground atoms in the database.

In order to restrict ourselves to ASCII, we represent the negation with a minus sign ô€€€, and the _ with the lowercase letter v; we represent the four rallcannti er with an uppercase A and the exists quanti er with an uppercase E. We use always x as the free variable. Therefore we disallow v, A and E as names for the predicates.

Input:

The input begins with an integer n representing the number of test cases. Each test case begins with a line with a single number m1 representing the number of atoms with unary predicates. Following this will be m1 lines, each line contains a string red representing a unary predicate name, followed by a single parameter. This block is repeated, i.e., every next block is starting with a line with a single number mn representing the number of atoms with n-ary predicates, Followed by mn lines, each line contains a string pred representing an n-ary predicate name, followed by an arbitrary number of parameters. This stops with the rst mn

Buy now

CONTACT DETAILS

For any other questions or other tasks please feel free to contact me
via email: mhassnainjamil@gmail.com
via WhatsApp: +92-324-7042178
via skype: hassnainjamil1

Sellfy View:


Comments

Popular posts from this blog

The Zoo Management System - entity relationship diagram & MS Access Database

Zoo Management System - Project Details: You are the employee of a big, worldwide working Zoo Management Company. Your company is responsible for the Zoo management. Your boss thinks it would be a great idea to store all data for each Zoo in a brand new self-developed ZOO Management System. Up to now, the ZOO management company has maps of each ZOO available. Your boss knows that you took a course in introduction on an ERP system, so he asks you if you could help designing such a system. Each ZOO must have the same organizational structure, which should look like this: Each Zoo has a Zoo-Address. Each Zoo has many visitors (Visitor Ticket Process (VTP). Many Zoo-Attractions belong to a Zoo. Module 1: Entity Relationship Diagram Design a ER (entity-relationship) diagram for your ZOO Management System. Use the information provided below with the entities and its attributes. Put the entities in the correct relationship to each other (organizational structure). Module 2: DB Implem...

Human Physiology by Stuart Ira Fox [PDF] (12th edition) free download

Sudoku Game Project in Java with full source code including GUI task

Introduction The purpose of the project is to try in practice the use of recursion and object-oriented program design. Please make sure to read this entire note before starting your work. Pay close attention to the sections on deadlines, deliverables, and exam rules. The problem Your task in this part of the project is to write a solver for Sudoku puzzles. Sudoku puzzles are a kind of crossword puzzles with numbers where the following two conditions have to be met: In each row or column, the nine numbers have to be from the set [1,2,3,4,5,6,7,8,9] and they must all be different.  For each of the nine non-overlapping 3x3 blocks, the nine numbers have to be from the set [1,2,3,4,5,6,7,8,9] and they ust all be different. The following two figures show a Sudoku puzzle and its solution. The input The input of your program, the Sudoku puzzles, is given in text files. More specifically, they are represented as nine lines of nine characters separated by spaces. The characters can be of two...