Automated C++ Program Generator using English Language Interface

Size: px
Start display at page:

Download "Automated C++ Program Generator using English Language Interface"

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) 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 information

10CS35: Data Structures Using C

10CS35: 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 information

Lab Experience 17. Programming Language Translation

Lab 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 information

Pseudo code Tutorial and Exercises Teacher s Version

Pseudo 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 information

PES Institute of Technology-BSC QUESTION BANK

PES 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 information

2) Write in detail the issues in the design of code generator.

2) 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 information

BCS2B02: OOP Concepts and Data Structures Using C++

BCS2B02: 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 information

1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++

1) 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 information

2 SYSTEM DESCRIPTION TECHNIQUES

2 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 information

REMOTE DEVELOPMENT OPTION

REMOTE 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 information

So today we shall continue our discussion on the search engines and web crawlers. (Refer Slide Time: 01:02)

So 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 information

Regular Expressions and Automata using Haskell

Regular 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 information

VHDL Test Bench Tutorial

VHDL 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 information

Abstract Data Type. EECS 281: Data Structures and Algorithms. The Foundation: Data Structures and Abstract Data Types

Abstract 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 information

A TOOL FOR DATA STRUCTURE VISUALIZATION AND USER-DEFINED ALGORITHM ANIMATION

A 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 information

Symbol Tables. Introduction

Symbol 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 information

Concepts of digital forensics

Concepts 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 information

CS 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. 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 information

PART-A Questions. 2. How does an enumerated statement differ from a typedef statement?

PART-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 information

Data Structure [Question Bank]

Data 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 information

ML for the Working Programmer

ML 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 information

Questions 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. 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 information

12 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

12 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 information

Figure 1: Graphical example of a mergesort 1.

Figure 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 information

Efficient Data Structures for Decision Diagrams

Efficient 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 information

Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program.

Name: 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 information

Linked Lists, Stacks, Queues, Deques. It s time for a chainge!

Linked 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 information

International 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 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 information

KITES TECHNOLOGY COURSE MODULE (C, C++, DS)

KITES 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 information

An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases

An 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 information

CAD/ 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 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 information

Semantic Analysis: Types and Type Checking

Semantic 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 information

Business 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 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 information

Glossary of Object Oriented Terms

Glossary 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 information

Operations 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 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 information

DIABLO VALLEY COLLEGE CATALOG 2014-2015

DIABLO 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 information

AUTOMATE CRAWLER TOWARDS VULNERABILITY SCAN REPORT GENERATOR

AUTOMATE 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 information

Krishna Institute of Engineering & Technology, Ghaziabad Department of Computer Application MCA-213 : DATA STRUCTURES USING C

Krishna 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 information

Lecture 12 Doubly Linked Lists (with Recursion)

Lecture 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 information

1. 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. 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 information

We will learn the Python programming language. Why? Because it is easy to learn and many people write programs in Python so we can share.

We 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 information

ALLIED 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) 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 information

Parsing Technology and its role in Legacy Modernization. A Metaware White Paper

Parsing 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 information

Postgres 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 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 information

Open-Source, Cross-Platform Java Tools Working Together on a Dialogue System

Open-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 information

Bangalore University B.Sc Computer Science Syllabus ( Semester System)

Bangalore 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 information

The Domain-Analysis Based Instruction System

The 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 information

CHAPTER 5 INTELLIGENT TECHNIQUES TO PREVENT SQL INJECTION ATTACKS

CHAPTER 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 information

Quiz 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 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 information

Unordered Linked Lists

Unordered 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 information

Chapter 3: Restricted Structures Page 1

Chapter 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 information

Lecture 11 Doubly Linked Lists & Array of Linked Lists. Doubly Linked Lists

Lecture 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 information

IMPROVING PERFORMANCE OF RANDOMIZED SIGNATURE SORT USING HASHING AND BITWISE OPERATORS

IMPROVING 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 information

Chapter 8: Bags and Sets

Chapter 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 information

Common Data Structures

Common 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 information

Data Structures Fibonacci Heaps, Amortized Analysis

Data 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 information

Lecture 2: Data Structures Steven Skiena. http://www.cs.sunysb.edu/ skiena

Lecture 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 information

GRID SEARCHING Novel way of Searching 2D Array

GRID 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 information

CHAPTER 4 ESSENTIAL DATA STRUCTRURES

CHAPTER 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 information

Module 2 Stacks and Queues: Abstract Data Types

Module 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 information

A 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 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 information

6.080/6.089 GITCS Feb 12, 2008. Lecture 3

6.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 information

Sequential Data Structures

Sequential 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 information

Unit 1. 5. Write iterative and recursive C functions to find the greatest common divisor of two integers. [6]

Unit 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 information

Token Sequencing Approach to Prevent SQL Injection Attacks

Token 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 information

System 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 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 information

Fourth generation techniques (4GT)

Fourth 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 information

A LEVEL H446 COMPUTER SCIENCE. Code Challenges (1 20) August 2015

A 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 information

Programming Exercises

Programming 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 information

I PUC - Computer Science. Practical s Syllabus. Contents

I 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 information

KS3 Computing Group 1 Programme of Study 2015 2016 2 hours per week

KS3 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 information

Module 9. User Interface Design. Version 2 CSE IIT, Kharagpur

Module 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 information

Manual English KOI Desktop App 2.0.x

Manual 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 information

NIST/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. 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 information

QUEUES. Primitive Queue operations. enqueue (q, x): inserts item x at the rear of the queue q

QUEUES. 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 information

IAI : Expert Systems

IAI : 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 information

DATA STRUCTURES USING C

DATA 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 information

Improved Software Testing Using McCabe IQ Coverage Analysis

Improved 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 information

Implementation of Recursively Enumerable Languages using Universal Turing Machine in JFLAP

Implementation 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 information

Efficient Multi Vendor services for Field Based Service

Efficient 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 information

Security Issues for the Semantic Web

Security 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 information

CS104: 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 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 information

A Comparison of Database Query Languages: SQL, SPARQL, CQL, DMX

A 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 information

Content Author's Reference and Cookbook

Content 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 information

TIBCO Spotfire Guided Analytics. Transferring Best Practice Analytics from Experts to Everyone

TIBCO 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 information

Unix Shell Scripts. Contents. 1 Introduction. Norman Matloff. July 30, 2008. 1 Introduction 1. 2 Invoking Shell Scripts 2

Unix 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 information

Information Retrieval Systems in XML Based Database A review

Information 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 information

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Objectives. 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 information

Natural Language to Relational Query by Using Parsing Compiler

Natural 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 information

Database Programming with PL/SQL: Learning Objectives

Database 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 information

CHAPTER 2 DATABASE MANAGEMENT SYSTEM AND SECURITY

CHAPTER 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 information

COMPUTER SCIENCE. Paper 1 (THEORY)

COMPUTER 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 information

Semantic Search in Portals using Ontologies

Semantic 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 information

Introduction to IR Systems: Supporting Boolean Text Search. Information Retrieval. IR vs. DBMS. Chapter 27, Part A

Introduction 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 information

COMPUTER SCIENCE (5651) Test at a Glance

COMPUTER 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 information

CS420: Operating Systems OS Services & System Calls

CS420: 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 information

Introduction to Data Structures

Introduction 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 information

About the HealthStream Learning Center

About 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 information

AN INTELLIGENT TUTORING SYSTEM FOR LEARNING DESIGN PATTERNS

AN 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