Automated C++ Program Generator using English Language Interface
|
|
- Rudolph Poole
- 7 years ago
- Views:
Transcription
1 Automated C++ Program Generator using English Language Interface Ambuj Kumar and Prof. (Mrs.) Saroj Kaushik Department of Computer Science & Engineering Indian Institute of Technology, Delhi Hauz Khas, New Delhi India Abstract Automatic Programming is an ability of a computer to develop a program all by itself, once the problem has been stated in some specified domain using some suitable format [2]. We have developed automated C++ program generator which takes an input in English and generate C++ program. Once a problem has been specified in English, the system is able to interpret it and generate a C++ program using its knowledge base, inference engine as well as some intelligence. The domain of programs to be generated is data structures such as sorting, searching, linked lists, file handling, manipulating strings, numbers etc. The system has been implemented using Java in Linux environment. Keywords: Automatic Programming, analyzer, classifier, program generator, database of algorithms, processing of English text. 1. Introduction Automatic Programming has been a goal of computer science and artificial intelligence since the first programmer came face to face with the difficulties of programming [1]. The first automated programs were assemblers and compilers, developed in 1950's. Today, they are not considered as automated programs. However, these were invented at a time when most of the programming was done in machine language. Assemblers represented a spectacular level of automation compared with programming in machine code. Automatic Programming may be considered as an ability of a computer to generate programs automatically where the problem is specified in some suitable format [2]. Of course, there is no doubt that automated Programming will be domain specific. MIT (USA) is working on a similar concept. They have named their software as METAPHOR. It understands description of objects and generate templates of classes and functions accordingly [3]. For example, if we provide a description as An animal has 4 legs and 1 tail. A cow is an animal, then, METAPHOR software is able to generate a code as follows :- class animal { private : int legs, tail; public: }; animal() { legs = 4; tail = 1; } class cow : public animal{ }; cow(); The proposed system is currently able to interpret problems stated in English related to strings, numbers, linked lists and file handling 1
2 and generate full C++ program which could be run straight way. So, our system is different from METAPHOR. Instead of generating class definitions, it focuses directly on complete program generation. It has inference engine and makes use of knowledge base of templates of various programs. It is possible to extend the knowledge base and inference engine capability of this tool to make it even more powerful. Currently supported operations are listed in Appendix. 2. Architecture of System Overall architecture of the system is shown in fig.1. It mainly consists of input module, database of program skeletons, dictionary and program generator module. 2.1 Input Module It consists of Analyzer and classifier. The analyzer takes the problem statement given by the user in English. Basically, it creates a list of all meaningful words present in the problem statement and ignores irrelevant or noise words. The dictionary of meaningful words is maintained. It also performs spell check and reports suspected mistakes, if any. The user can then suggest suitable replacements. The classifier reads all the words present in the word list and interprets the meaning of user input. It identifies the type of problem and reports an error, if unable to interpret input statement of the problem Database of Algorithms The database of algorithms is maintained for string handling, number manipulation, arrays, linked lists (stack, queues, dequeues), sorting and file handling. The prototype of algorithms is stored and used to generate C++ program which may contain combination of more than one algorithm Program generator This is the most important part of the system. It generates the program on the basis of the problem's type decided by the classifier. The program generator goes through the word list generated by the analyzer, and hence decides which algorithms to use Processing of English text The word Natural Language Processing implies that we should be able to interpret the meaning of a statement even if it is specified in several different ways. This can be illustrated by the following example with reference to our system. Suppose we want to do the following sequence of operations. We create a singly linked list. Insert some nodes in it. Delete some nodes from it. Sort the list. Reverse the list. Finally, display the original list. This sequence of steps can be specified as a problem statement in several ways as illustrated below. Create a linked list, insert 5 elements into it, delete 4 elements, sort it, reverse it and then display the original list. Here, system can not infer the type of linked list one wants to create. So, it will prompt user to choose amongst different types of linked lists available, such as singly linked, doubly linked, circular singly linked lists etc. Further, the type of data is not specified in the statement. So, the user will be prompted to specify the type of elements in the list. Sorting of list will be done on the basis of some field which is not clear from the statement. The user will be asked to specify that too. Here original list may refer to the one created as linked list or the sorted one. User will identify which one he is interested and correspondingly that list will be preserved for displaying purpose. If input texts are as follows: Write a program which creates a singly linked list of integer values, put 5 elements into it, remove 4 elements from it, sort the list using insertion sort method, then invert the list and finally displays the sorted list. Here system will not ask above mentioned questions and will simply generate desired code. In this way, there can be several different ways of specifying the same problem statement, but all will have the same interpretations as illustrated above. The analyzer creates a list of meaningful words and irrelevant words are ignored. Let us consider an example, please generate for me a code for sorting an array of strings. The analyzer creates a word list sort, array and 2
3 strings. Other words are totally irrelevant and hence are ignored. On the basis of the word strings, the system decides that this is a problem of string handling. From the word array, the system judges that there will be multiple inputs, and hence asks for an array size. The word sort forces the system to ask for sorting algorithm to be used. Once all these information have been received, the system fits various algorithm programs using appropriate templates. For detailed working of the software refer to Appendix1. 3. Implementations The Dictionary has been implemented as a hashed file which contains all the relevant and meaningful words along with synonym words such as string and text are synonyms in the context of programming. When the system is started, then an adjacency list is created after scanning the entire dictionary file system. The adjacency list corresponding to a word contains all its synonyms. This adjacency list is used to comprehend the words each time a new question is given to the system. The repository of algorithms is nothing but a list of files, each file containing the skeleton of C++ code for the algorithm. The template data type of C++ has been used in many of these codes. The operations supported by the system are given below. The combinations of operations are also permitted. The details of directory structure of the system are shown in appendix1. Appendix 2 contains explanation and use of the system. Various programs generated using this system are included in appendix3. Operations on strings: concatenation, string comparison, substring checks, sorting (ascending /descending order) using different algorithms, conversion to upper/lower case, string reversal palindrome check, alphabetically first/last string from a set of strings (For examples, user may ask system to generate program for sort the string and reverse it and then concatenate with another string ) Operations on numbers: check for prime numbers, palindrome numbers, Fibonacci numbers, even/odd numbers, reversing digits of a number, sorting (ascending/descending order) using different algorithms, statistical operations such as maximum, minimum, average, standard deviation and variance (For example, write program for checking a given number whether it is palindrome and prime both ) Operations on linked lists: singly linked list, singly circular linked list, doubly linked list, doubly circular linked list, stack, queue, deques (using array or linked list concept), generalized linked list. Here the node structure of list is generalized one. Operations on files: A very generalized code is created to add/delete/search records in a file. (The structure of records is generalized.) 3.1. Proposed algorithm for generating C++ program The algorithm used in the proposed system is given below: Step 1: Read the query (problem statement in English) from the user. Step 2: Break up the problem statement into a list of words. Step 3: For each word in list do { if word key_list, retain it else if word ignore_list, remove it else suggest suitable correction using well known LCS algorithm /*this is a case of misspelled word*/ and goto Step3 & continue from this word. } Step 4: Analyze the filtered list of words obtained from above step. If the list is sufficient to comprehend the problem, goto Step 5 else give an error message and exit. Step 5: Depending on the sequence in which the words occur in the list generated after Step 3, generate the program and fit the function templates using the directory./ knowledge / algorithms in proper places Platform and Environment used The system is implemented on Linux environment using JAVA as we mainly require string processing. JAVA has a vast number of functions for the same (provided by the classes String and StringBuffer), which enable us to write very short codes for practically any type of string handling operations. Further, we need to handle the adjacency list of words. This is also done using the Vector class provided by java.util package. 3
4 Figure 1: Architecture of the system 4. Conclusion This system is currently able to generate simple programs similar to the level of programming taught in first year of undergraduate. But, this is not the end of it. It is not merely an academic exercise in futility. This software has a lot of growth potential. Of course, this software is domain specific. But, it can be extended to generate algorithms (functions or templates) on the basis of a process description given to it. In other words, it is possible to extend its inference engine so that it can comprehend English sentences, and come up with a logical analysis of the process being described. References [1] Charles Rich, Richard C. Waters. Approaches to Automatic Programming, Mitsubishi Electric Research Laboratory Technical Report, July [2] Charles Rich and Richard C. Waters Automatic programming: Myths and prospects IEEE Computer, 21(8):40-51, August [3] Daniel C. Halbert, Watch What I Do: Programming by Demonstration, chapter SmallStar: Programming by Demonstration in the Desktop Metaphor, pp , MIT Press, Cambridge, MA,
5 Appendix 1 Detailed working of the software Here is the directory structure of the system is shown in the figure below. The directories are explained as follows: src directory containing the JAVA source codes. classes.class files generated after compilation. doc documentation directory. shell contains the shell scripts being used internally to control the working of the software. These shell scripts are embedded within the software to handle simple issues such as executing the auto-generated C++ programs. knowledge contains 3 files namely word_list, key and ignore called knowledge base files. The file key contains the list of keywords i.e. those words which are critical for the purpose of understanding the meaning of a sentence. The file ignore contains a list of commonly occurring words which have no significance in the context of understanding of the programming problem statement e.g. words like is, are, the etc. The file word_list contains {key ignore (synonyms of words present in key)}. It contains two more directories dictionary - the storehouse of all words which are understood by this system along with links to corresponding synonyms of word if they exist. algorithms - contains generalized C++ templates for some standard functions. Figure 2: File structure of the software Startup phase The following sequence of steps is executed only once, i.e. when we start our system for the first time. This phase is particularly concerned with creation of adjacency list of words. The startup algorithm is described below which is followed Appendix 2 by main algorithm described in sub section 3.2. for all words in word_list do { - open file with the same name as the word (file is present in./dictionary) - add all words in file (except the word itself) to the adjacency list of the word } We feel that the reader still may not be able to fully understand what sort of natural language 5
6 processing is going on in the system discussed above. It may just appear like a keyword-based code fitting system. Obviously, a knowledge base of standard algorithms has to be present in some form or the other in such type of systems. The intelligence and natural language processing primarily deal with proper utilization of this knowledge base along with following some common-sense rules. So, we present a simple example to look at these issues. If the user s statement is Read N integers, sort them, then determine if the original list of integers are palindrome. Also, check if they are prime. Prima facie, it seems that the program construction will follow the following sequence of steps but, this is not exactly what happens. i. It will declare necessary variables to input N integers i.e. it will just declare an array. ii. Then, it will fit the code to take input from the user. iii. Finally, it will just fit the codes to sort the array, palindrome and prime numbers checks. The performance is obviously restricted by the size of knowledge base and available inference rules. However, it is possible to scale this system to any desired extent. As far as the contribution to software development is concerned, we all know that there are certain algorithms/code fragments which are needed again and again, but in various forms. For example, different types of linked lists are frequently used. But a major bottleneck is different structure of the node for different applications. This significantly increases the work involved. Using our system, a lot of time can be saved as far as generating a basic implementation of linked list is concerned. Any datatype can be incorporated in it. All the basic functions will also be generated. So, the programmer can customize the code to suit his needs within a few minutes. Simple features like the one described above will certainly help save at least a few hours of coding time. The steps (i) and (ii) described above are true, but step (iii) has some finer aspects to it. We have not specified whether it is an ascending order sort or descending order sort. By default, the system assumes it to be ascending order. Have a look at 2 keywords then and original sequence. These words may appear irrelevant to code generation, but the real picture is not so. The keyword then determines that the check for palindrome has to be done strictly after sorting. There is another catch to it. It says that check for palindrome has to be done only on the original sequence of input and NOT on the sorted sequence. Further, the ambiguity lies in which sequence to check for primality. So, we let the system ask the user whether he wants to do primality testing on original list or sorted list. This is done as soon as the problem is analyzed by the system. Here lies the intelligence. If the system is unable to decide what to do, it either asks the user or takes a default action (as in case of sorting). Practical feasibility of the system 6
7 Appendix 3 We will present snapshots of various examples. Example 1: Do the Sorting on an array of numbers, checking if they are prime and then finding their mean. The program generated as follows: Figure 3: The query window for Example 1 Figure 4: The response to the query 7
8 Example 2: Implement a doubly linked list Figure 5: The query for a linked list operation The program generated as follows: Figure 6: Asking for the elements of the node Figure 7: The response to the query 8
9 Example 3: Operations on record based files Figure 8: The query for a general filesystem The program generated as follows: Figure 9: Asking for the fields of record Figure 10: The response to the query 9
10 Example 4: Sort N strings, reverse them, find their lengths and then convert each of them to upper case Figure 11: A query for operations on strings Figure 12: Asking for the sorting algorithm Figure 13: Asking for number of strings Figure 14: The response to the query 10
GUJARAT TECHNOLOGICAL UNIVERSITY, AHMEDABAD, GUJARAT. Course Curriculum. DATA STRUCTURES (Code: 3330704)
GUJARAT TECHNOLOGICAL UNIVERSITY, AHMEDABAD, GUJARAT Course Curriculum DATA STRUCTURES (Code: 3330704) Diploma Programme in which this course is offered Semester in which offered Computer Engineering,
More information10CS35: Data Structures Using C
CS35: Data Structures Using C QUESTION BANK REVIEW OF STRUCTURES AND POINTERS, INTRODUCTION TO SPECIAL FEATURES OF C OBJECTIVE: Learn : Usage of structures, unions - a conventional tool for handling a
More informationLab Experience 17. Programming Language Translation
Lab Experience 17 Programming Language Translation Objectives Gain insight into the translation process for converting one virtual machine to another See the process by which an assembler translates assembly
More informationPseudo code Tutorial and Exercises Teacher s Version
Pseudo code Tutorial and Exercises Teacher s Version Pseudo-code is an informal way to express the design of a computer program or an algorithm in 1.45. The aim is to get the idea quickly and also easy
More informationPES Institute of Technology-BSC QUESTION BANK
PES Institute of Technology-BSC Faculty: Mrs. R.Bharathi CS35: Data Structures Using C QUESTION BANK UNIT I -BASIC CONCEPTS 1. What is an ADT? Briefly explain the categories that classify the functions
More information2) Write in detail the issues in the design of code generator.
COMPUTER SCIENCE AND ENGINEERING VI SEM CSE Principles of Compiler Design Unit-IV Question and answers UNIT IV CODE GENERATION 9 Issues in the design of code generator The target machine Runtime Storage
More informationBCS2B02: OOP Concepts and Data Structures Using C++
SECOND SEMESTER BCS2B02: OOP Concepts and Data Structures Using C++ Course Number: 10 Contact Hours per Week: 4 (2T + 2P) Number of Credits: 2 Number of Contact Hours: 30 Hrs. Course Evaluation: Internal
More information1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++
Answer the following 1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++ 2) Which data structure is needed to convert infix notations to postfix notations? Stack 3) The
More information2 SYSTEM DESCRIPTION TECHNIQUES
2 SYSTEM DESCRIPTION TECHNIQUES 2.1 INTRODUCTION Graphical representation of any process is always better and more meaningful than its representation in words. Moreover, it is very difficult to arrange
More informationREMOTE DEVELOPMENT OPTION
Leading the Evolution DATA SHEET MICRO FOCUS SERVER EXPRESS TM REMOTE DEVELOPMENT OPTION Executive Overview HIGH PRODUCTIVITY DEVELOPMENT FOR LINUX AND UNIX DEVELOPERS Micro Focus Server Express is the
More informationSo today we shall continue our discussion on the search engines and web crawlers. (Refer Slide Time: 01:02)
Internet Technology Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No #39 Search Engines and Web Crawler :: Part 2 So today we
More informationRegular Expressions and Automata using Haskell
Regular Expressions and Automata using Haskell Simon Thompson Computing Laboratory University of Kent at Canterbury January 2000 Contents 1 Introduction 2 2 Regular Expressions 2 3 Matching regular expressions
More informationVHDL Test Bench Tutorial
University of Pennsylvania Department of Electrical and Systems Engineering ESE171 - Digital Design Laboratory VHDL Test Bench Tutorial Purpose The goal of this tutorial is to demonstrate how to automate
More informationAbstract Data Type. EECS 281: Data Structures and Algorithms. The Foundation: Data Structures and Abstract Data Types
EECS 281: Data Structures and Algorithms The Foundation: Data Structures and Abstract Data Types Computer science is the science of abstraction. Abstract Data Type Abstraction of a data structure on that
More informationA TOOL FOR DATA STRUCTURE VISUALIZATION AND USER-DEFINED ALGORITHM ANIMATION
A TOOL FOR DATA STRUCTURE VISUALIZATION AND USER-DEFINED ALGORITHM ANIMATION Tao Chen 1, Tarek Sobh 2 Abstract -- In this paper, a software application that features the visualization of commonly used
More informationSymbol Tables. Introduction
Symbol Tables Introduction A compiler needs to collect and use information about the names appearing in the source program. This information is entered into a data structure called a symbol table. The
More informationConcepts of digital forensics
Chapter 3 Concepts of digital forensics Digital forensics is a branch of forensic science concerned with the use of digital information (produced, stored and transmitted by computers) as source of evidence
More informationCS 2112 Spring 2014. 0 Instructions. Assignment 3 Data Structures and Web Filtering. 0.1 Grading. 0.2 Partners. 0.3 Restrictions
CS 2112 Spring 2014 Assignment 3 Data Structures and Web Filtering Due: March 4, 2014 11:59 PM Implementing spam blacklists and web filters requires matching candidate domain names and URLs very rapidly
More informationPART-A Questions. 2. How does an enumerated statement differ from a typedef statement?
1. Distinguish & and && operators. PART-A Questions 2. How does an enumerated statement differ from a typedef statement? 3. What are the various members of a class? 4. Who can access the protected members
More informationData Structure [Question Bank]
Unit I (Analysis of Algorithms) 1. What are algorithms and how they are useful? 2. Describe the factor on best algorithms depends on? 3. Differentiate: Correct & Incorrect Algorithms? 4. Write short note:
More informationML for the Working Programmer
ML for the Working Programmer 2nd edition Lawrence C. Paulson University of Cambridge CAMBRIDGE UNIVERSITY PRESS CONTENTS Preface to the Second Edition Preface xiii xv 1 Standard ML 1 Functional Programming
More informationQuestions 1 through 25 are worth 2 points each. Choose one best answer for each.
Questions 1 through 25 are worth 2 points each. Choose one best answer for each. 1. For the singly linked list implementation of the queue, where are the enqueues and dequeues performed? c a. Enqueue in
More information12 File and Database Concepts 13 File and Database Concepts A many-to-many relationship means that one record in a particular record type can be relat
1 Databases 2 File and Database Concepts A database is a collection of information Databases are typically stored as computer files A structured file is similar to a card file or Rolodex because it uses
More informationFigure 1: Graphical example of a mergesort 1.
CSE 30321 Computer Architecture I Fall 2011 Lab 02: Procedure Calls in MIPS Assembly Programming and Performance Total Points: 100 points due to its complexity, this lab will weight more heavily in your
More informationEfficient Data Structures for Decision Diagrams
Artificial Intelligence Laboratory Efficient Data Structures for Decision Diagrams Master Thesis Nacereddine Ouaret Professor: Supervisors: Boi Faltings Thomas Léauté Radoslaw Szymanek Contents Introduction...
More informationName: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program.
Name: Class: Date: Exam #1 - Prep True/False Indicate whether the statement is true or false. 1. Programming is the process of writing a computer program in a language that the computer can respond to
More informationLinked Lists, Stacks, Queues, Deques. It s time for a chainge!
Linked Lists, Stacks, Queues, Deques It s time for a chainge! Learning Goals After this unit, you should be able to... Differentiate an abstraction from an implementation. Define and give examples of problems
More informationInternational Journal of Scientific & Engineering Research, Volume 4, Issue 11, November-2013 5 ISSN 2229-5518
International Journal of Scientific & Engineering Research, Volume 4, Issue 11, November-2013 5 INTELLIGENT MULTIDIMENSIONAL DATABASE INTERFACE Mona Gharib Mohamed Reda Zahraa E. Mohamed Faculty of Science,
More informationKITES TECHNOLOGY COURSE MODULE (C, C++, DS)
KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php info@kitestechnology.com technologykites@gmail.com Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL
More informationAn Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases
An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases Paul L. Bergstein, Priyanka Gariba, Vaibhavi Pisolkar, and Sheetal Subbanwad Dept. of Computer and Information Science,
More informationCAD/ CAM Prof. P. V. Madhusudhan Rao Department of Mechanical Engineering Indian Institute of Technology, Delhi Lecture No. # 03 What is CAD/ CAM
CAD/ CAM Prof. P. V. Madhusudhan Rao Department of Mechanical Engineering Indian Institute of Technology, Delhi Lecture No. # 03 What is CAD/ CAM Now this lecture is in a way we can say an introduction
More informationSemantic Analysis: Types and Type Checking
Semantic Analysis Semantic Analysis: Types and Type Checking CS 471 October 10, 2007 Source code Lexical Analysis tokens Syntactic Analysis AST Semantic Analysis AST Intermediate Code Gen lexical errors
More informationBusiness Objects Online training Contents SAP BUSINESS OBJECTS 4.0/XI 3.1. We provide online instructor led Business Objects Training.
Business Objects Online training Contents SAP BUSINESS OBJECTS 4.0/XI 3.1 We provide online instructor led Business Objects Training. BUSINESS OBJECTS XI 3.1 TRAINING CONTENT: Oracle (Basics) Universe
More informationGlossary of Object Oriented Terms
Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction
More informationOperations and Supply Chain Management Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology Madras
Operations and Supply Chain Management Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology Madras Lecture - 41 Value of Information In this lecture, we look at the Value
More informationDIABLO VALLEY COLLEGE CATALOG 2014-2015
COMPUTER SCIENCE COMSC The computer science department offers courses in three general areas, each targeted to serve students with specific needs: 1. General education students seeking a computer literacy
More informationAUTOMATE CRAWLER TOWARDS VULNERABILITY SCAN REPORT GENERATOR
AUTOMATE CRAWLER TOWARDS VULNERABILITY SCAN REPORT GENERATOR Pragya Singh Baghel United College of Engineering & Research, Gautama Buddha Technical University, Allahabad, Utter Pradesh, India ABSTRACT
More informationKrishna Institute of Engineering & Technology, Ghaziabad Department of Computer Application MCA-213 : DATA STRUCTURES USING C
Tutorial#1 Q 1:- Explain the terms data, elementary item, entity, primary key, domain, attribute and information? Also give examples in support of your answer? Q 2:- What is a Data Type? Differentiate
More informationLecture 12 Doubly Linked Lists (with Recursion)
Lecture 12 Doubly Linked Lists (with Recursion) In this lecture Introduction to Doubly linked lists What is recursion? Designing a node of a DLL Recursion and Linked Lists o Finding a node in a LL (recursively)
More information1. The memory address of the first element of an array is called A. floor address B. foundation addressc. first address D.
1. The memory address of the first element of an array is called A. floor address B. foundation addressc. first address D. base address 2. The memory address of fifth element of an array can be calculated
More informationWe will learn the Python programming language. Why? Because it is easy to learn and many people write programs in Python so we can share.
LING115 Lecture Note Session #4 Python (1) 1. Introduction As we have seen in previous sessions, we can use Linux shell commands to do simple text processing. We now know, for example, how to count words.
More informationALLIED PAPER : DISCRETE MATHEMATICS (for B.Sc. Computer Technology & B.Sc. Multimedia and Web Technology)
ALLIED PAPER : DISCRETE MATHEMATICS (for B.Sc. Computer Technology & B.Sc. Multimedia and Web Technology) Subject Description: This subject deals with discrete structures like set theory, mathematical
More informationParsing Technology and its role in Legacy Modernization. A Metaware White Paper
Parsing Technology and its role in Legacy Modernization A Metaware White Paper 1 INTRODUCTION In the two last decades there has been an explosion of interest in software tools that can automate key tasks
More informationPostgres Plus xdb Replication Server with Multi-Master User s Guide
Postgres Plus xdb Replication Server with Multi-Master User s Guide Postgres Plus xdb Replication Server with Multi-Master build 57 August 22, 2012 , Version 5.0 by EnterpriseDB Corporation Copyright 2012
More informationOpen-Source, Cross-Platform Java Tools Working Together on a Dialogue System
Open-Source, Cross-Platform Java Tools Working Together on a Dialogue System Oana NICOLAE Faculty of Mathematics and Computer Science, Department of Computer Science, University of Craiova, Romania oananicolae1981@yahoo.com
More informationBangalore University B.Sc Computer Science Syllabus ( Semester System)
Bangalore University B.Sc Computer Science Syllabus ( Semester System) First Semester CSIT1: Computer Fundamentals and C Programming CSIP1: C Programming Lab Second Semester CSIIT1: Data Structures and
More informationThe Domain-Analysis Based Instruction System
Pre-publication draft of a paper which appeared in the Proceedings of the Fourth Annual Computer-Assisted Learning in Tertiary Education Conference (CALITE'86) University of Adelaide, pages 295-302 The
More informationCHAPTER 5 INTELLIGENT TECHNIQUES TO PREVENT SQL INJECTION ATTACKS
66 CHAPTER 5 INTELLIGENT TECHNIQUES TO PREVENT SQL INJECTION ATTACKS 5.1 INTRODUCTION In this research work, two new techniques have been proposed for addressing the problem of SQL injection attacks, one
More informationQuiz 4 Solutions EECS 211: FUNDAMENTALS OF COMPUTER PROGRAMMING II. 1 Q u i z 4 S o l u t i o n s
Quiz 4 Solutions Q1: What value does function mystery return when called with a value of 4? int mystery ( int number ) { if ( number
More informationUnordered Linked Lists
Unordered Linked Lists Derive class unorderedlinkedlist from the abstract class linkedlisttype Implement the operations search, insertfirst, insertlast, deletenode See code on page 292 Defines an unordered
More informationChapter 3: Restricted Structures Page 1
Chapter 3: Restricted Structures Page 1 1 2 3 4 5 6 7 8 9 10 Restricted Structures Chapter 3 Overview Of Restricted Structures The two most commonly used restricted structures are Stack and Queue Both
More informationLecture 11 Doubly Linked Lists & Array of Linked Lists. Doubly Linked Lists
Lecture 11 Doubly Linked Lists & Array of Linked Lists In this lecture Doubly linked lists Array of Linked Lists Creating an Array of Linked Lists Representing a Sparse Matrix Defining a Node for a Sparse
More informationIMPROVING PERFORMANCE OF RANDOMIZED SIGNATURE SORT USING HASHING AND BITWISE OPERATORS
Volume 2, No. 3, March 2011 Journal of Global Research in Computer Science RESEARCH PAPER Available Online at www.jgrcs.info IMPROVING PERFORMANCE OF RANDOMIZED SIGNATURE SORT USING HASHING AND BITWISE
More informationChapter 8: Bags and Sets
Chapter 8: Bags and Sets In the stack and the queue abstractions, the order that elements are placed into the container is important, because the order elements are removed is related to the order in which
More informationCommon Data Structures
Data Structures 1 Common Data Structures Arrays (single and multiple dimensional) Linked Lists Stacks Queues Trees Graphs You should already be familiar with arrays, so they will not be discussed. Trees
More informationData Structures Fibonacci Heaps, Amortized Analysis
Chapter 4 Data Structures Fibonacci Heaps, Amortized Analysis Algorithm Theory WS 2012/13 Fabian Kuhn Fibonacci Heaps Lacy merge variant of binomial heaps: Do not merge trees as long as possible Structure:
More informationLecture 2: Data Structures Steven Skiena. http://www.cs.sunysb.edu/ skiena
Lecture 2: Data Structures Steven Skiena Department of Computer Science State University of New York Stony Brook, NY 11794 4400 http://www.cs.sunysb.edu/ skiena String/Character I/O There are several approaches
More informationGRID SEARCHING Novel way of Searching 2D Array
GRID SEARCHING Novel way of Searching 2D Array Rehan Guha Institute of Engineering & Management Kolkata, India Abstract: Linear/Sequential searching is the basic search algorithm used in data structures.
More informationCHAPTER 4 ESSENTIAL DATA STRUCTRURES
CHAPTER 4 ESSENTIAL DATA STRUCTURES 72 CHAPTER 4 ESSENTIAL DATA STRUCTRURES In every algorithm, there is a need to store data. Ranging from storing a single value in a single variable, to more complex
More informationModule 2 Stacks and Queues: Abstract Data Types
Module 2 Stacks and Queues: Abstract Data Types A stack is one of the most important and useful non-primitive linear data structure in computer science. It is an ordered collection of items into which
More informationA Tokenization and Encryption based Multi-Layer Architecture to Detect and Prevent SQL Injection Attack
A Tokenization and Encryption based Multi-Layer Architecture to Detect and Prevent SQL Injection Attack Mr. Vishal Andodariya PG Student C. U. Shah College Of Engg. And Tech., Wadhwan city, India vishal90.ce@gmail.com
More information6.080/6.089 GITCS Feb 12, 2008. Lecture 3
6.8/6.89 GITCS Feb 2, 28 Lecturer: Scott Aaronson Lecture 3 Scribe: Adam Rogal Administrivia. Scribe notes The purpose of scribe notes is to transcribe our lectures. Although I have formal notes of my
More informationSequential Data Structures
Sequential Data Structures In this lecture we introduce the basic data structures for storing sequences of objects. These data structures are based on arrays and linked lists, which you met in first year
More informationUnit 1. 5. Write iterative and recursive C functions to find the greatest common divisor of two integers. [6]
Unit 1 1. Write the following statements in C : [4] Print the address of a float variable P. Declare and initialize an array to four characters a,b,c,d. 2. Declare a pointer to a function f which accepts
More informationToken Sequencing Approach to Prevent SQL Injection Attacks
IOSR Journal of Computer Engineering (IOSRJCE) ISSN : 2278-0661 Volume 1, Issue 1 (May-June 2012), PP 31-37 Token Sequencing Approach to Prevent SQL Injection Attacks ManveenKaur 1,Arun Prakash Agrawal
More informationSystem Requirement Specification for A Distributed Desktop Search and Document Sharing Tool for Local Area Networks
System Requirement Specification for A Distributed Desktop Search and Document Sharing Tool for Local Area Networks OnurSoft Onur Tolga Şehitoğlu November 10, 2012 v1.0 Contents 1 Introduction 3 1.1 Purpose..............................
More informationFourth generation techniques (4GT)
Fourth generation techniques (4GT) The term fourth generation techniques (4GT) encompasses a broad array of software tools that have one thing in common. Each enables the software engineer to specify some
More informationA LEVEL H446 COMPUTER SCIENCE. Code Challenges (1 20) August 2015
A LEVEL H446 COMPUTER SCIENCE Code Challenges (1 20) August 2015 We will inform centres about any changes to the specification. We will also publish changes on our website. The latest version of our specification
More informationProgramming Exercises
s CMPS 5P (Professor Theresa Migler-VonDollen ): Assignment #8 Problem 6 Problem 1 Programming Exercises Modify the recursive Fibonacci program given in the chapter so that it prints tracing information.
More informationI PUC - Computer Science. Practical s Syllabus. Contents
I PUC - Computer Science Practical s Syllabus Contents Topics 1 Overview Of a Computer 1.1 Introduction 1.2 Functional Components of a computer (Working of each unit) 1.3 Evolution Of Computers 1.4 Generations
More informationKS3 Computing Group 1 Programme of Study 2015 2016 2 hours per week
1 07/09/15 2 14/09/15 3 21/09/15 4 28/09/15 Communication and Networks esafety Obtains content from the World Wide Web using a web browser. Understands the importance of communicating safely and respectfully
More informationModule 9. User Interface Design. Version 2 CSE IIT, Kharagpur
Module 9 User Interface Design Lesson 21 Types of User Interfaces Specific Instructional Objectives Classify user interfaces into three main types. What are the different ways in which menu items can be
More informationManual English KOI Desktop App 2.0.x
Manual English KOI Desktop App 2.0.x KOI Kommunikation, Organisation, Information Comm-Unity EDV GmbH 2010 Contents Introduction... 3 Information on how to use the documentation... 3 System requirements:...
More informationNIST/ITL CSD Biometric Conformance Test Software on Apache Hadoop. September 2014. National Institute of Standards and Technology (NIST)
NIST/ITL CSD Biometric Conformance Test Software on Apache Hadoop September 2014 Dylan Yaga NIST/ITL CSD Lead Software Designer Fernando Podio NIST/ITL CSD Project Manager National Institute of Standards
More informationQUEUES. Primitive Queue operations. enqueue (q, x): inserts item x at the rear of the queue q
QUEUES A queue is simply a waiting line that grows by adding elements to its end and shrinks by removing elements from the. Compared to stack, it reflects the more commonly used maxim in real-world, namely,
More informationIAI : Expert Systems
IAI : Expert Systems John A. Bullinaria, 2005 1. What is an Expert System? 2. The Architecture of Expert Systems 3. Knowledge Acquisition 4. Representing the Knowledge 5. The Inference Engine 6. The Rete-Algorithm
More informationDATA STRUCTURES USING C
DATA STRUCTURES USING C QUESTION BANK UNIT I 1. Define data. 2. Define Entity. 3. Define information. 4. Define Array. 5. Define data structure. 6. Give any two applications of data structures. 7. Give
More informationImproved Software Testing Using McCabe IQ Coverage Analysis
White Paper Table of Contents Introduction...1 What is Coverage Analysis?...2 The McCabe IQ Approach to Coverage Analysis...3 The Importance of Coverage Analysis...4 Where Coverage Analysis Fits into your
More informationImplementation of Recursively Enumerable Languages using Universal Turing Machine in JFLAP
International Journal of Information and Computation Technology. ISSN 0974-2239 Volume 4, Number 1 (2014), pp. 79-84 International Research Publications House http://www. irphouse.com /ijict.htm Implementation
More informationEfficient Multi Vendor services for Field Based Service
RESEARCH ARTICLE Efficient Multi Vendor services for Field Based Service Madhushree M.Kubsad 1,Prof. Manu T.M 2 1(Dept: Computer Engineer MTech, KLEIT Hubballi Karnataka, India) OPEN ACCESS Abstract: Field
More informationSecurity Issues for the Semantic Web
Security Issues for the Semantic Web Dr. Bhavani Thuraisingham Program Director Data and Applications Security The National Science Foundation Arlington, VA On leave from The MITRE Corporation Bedford,
More informationCS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team
CS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team Lecture Summary In this lecture, we learned about the ADT Priority Queue. A
More informationA Comparison of Database Query Languages: SQL, SPARQL, CQL, DMX
ISSN: 2393-8528 Contents lists available at www.ijicse.in International Journal of Innovative Computer Science & Engineering Volume 3 Issue 2; March-April-2016; Page No. 09-13 A Comparison of Database
More informationContent Author's Reference and Cookbook
Sitecore CMS 6.5 Content Author's Reference and Cookbook Rev. 110621 Sitecore CMS 6.5 Content Author's Reference and Cookbook A Conceptual Overview and Practical Guide to Using Sitecore Table of Contents
More informationTIBCO Spotfire Guided Analytics. Transferring Best Practice Analytics from Experts to Everyone
TIBCO Spotfire Guided Analytics Transferring Best Practice Analytics from Experts to Everyone Introduction Business professionals need powerful and easy-to-use data analysis applications in order to make
More informationUnix Shell Scripts. Contents. 1 Introduction. Norman Matloff. July 30, 2008. 1 Introduction 1. 2 Invoking Shell Scripts 2
Unix Shell Scripts Norman Matloff July 30, 2008 Contents 1 Introduction 1 2 Invoking Shell Scripts 2 2.1 Direct Interpretation....................................... 2 2.2 Indirect Interpretation......................................
More informationInformation Retrieval Systems in XML Based Database A review
Information Retrieval Systems in XML Based Database A review Preeti Pandey 1, L.S.Maurya 2 Research Scholar, IT Department, SRMSCET, Bareilly, India 1 Associate Professor, IT Department, SRMSCET, Bareilly,
More informationObjectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.
Objectives To describe the services an operating system provides to users, processes, and other systems To discuss the various ways of structuring an operating system Chapter 2: Operating-System Structures
More informationNatural Language to Relational Query by Using Parsing Compiler
Available Online at www.ijcsmc.com International Journal of Computer Science and Mobile Computing A Monthly Journal of Computer Science and Information Technology IJCSMC, Vol. 4, Issue. 3, March 2015,
More informationDatabase Programming with PL/SQL: Learning Objectives
Database Programming with PL/SQL: Learning Objectives This course covers PL/SQL, a procedural language extension to SQL. Through an innovative project-based approach, students learn procedural logic constructs
More informationCHAPTER 2 DATABASE MANAGEMENT SYSTEM AND SECURITY
CHAPTER 2 DATABASE MANAGEMENT SYSTEM AND SECURITY 2.1 Introduction In this chapter, I am going to introduce Database Management Systems (DBMS) and the Structured Query Language (SQL), its syntax and usage.
More informationCOMPUTER SCIENCE. Paper 1 (THEORY)
COMPUTER SCIENCE Paper 1 (THEORY) (Three hours) Maximum Marks: 70 (Candidates are allowed additional 15 minutes for only reading the paper. They must NOT start writing during this time) -----------------------------------------------------------------------------------------------------------------------
More informationSemantic Search in Portals using Ontologies
Semantic Search in Portals using Ontologies Wallace Anacleto Pinheiro Ana Maria de C. Moura Military Institute of Engineering - IME/RJ Department of Computer Engineering - Rio de Janeiro - Brazil [awallace,anamoura]@de9.ime.eb.br
More informationIntroduction to IR Systems: Supporting Boolean Text Search. Information Retrieval. IR vs. DBMS. Chapter 27, Part A
Introduction to IR Systems: Supporting Boolean Text Search Chapter 27, Part A Database Management Systems, R. Ramakrishnan 1 Information Retrieval A research field traditionally separate from Databases
More informationCOMPUTER SCIENCE (5651) Test at a Glance
COMPUTER SCIENCE (5651) Test at a Glance Test Name Computer Science Test Code 5651 Time Number of Questions Test Delivery 3 hours 100 selected-response questions Computer delivered Content Categories Approximate
More informationCS420: Operating Systems OS Services & System Calls
NK YORK COLLEGE OF PENNSYLVANIA HG OK 2 YORK COLLEGE OF PENNSYLVAN OS Services & System Calls James Moscola Department of Physical Sciences York College of Pennsylvania Based on Operating System Concepts,
More informationIntroduction to Data Structures
Introduction to Data Structures Albert Gural October 28, 2011 1 Introduction When trying to convert from an algorithm to the actual code, one important aspect to consider is how to store and manipulate
More informationAbout the HealthStream Learning Center
About the HealthStream Learning Center HealthStream Learning Center TM Administrator access to features and functions described in the HLC Help documentation is dependent upon the administrator s role
More informationAN INTELLIGENT TUTORING SYSTEM FOR LEARNING DESIGN PATTERNS
AN INTELLIGENT TUTORING SYSTEM FOR LEARNING DESIGN PATTERNS ZORAN JEREMIĆ, VLADAN DEVEDŽIĆ, DRAGAN GAŠEVIĆ FON School of Business Administration, University of Belgrade Jove Ilića 154, POB 52, 11000 Belgrade,
More information