* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Data Structure for Language Processing
Survey
Document related concepts
Transcript
Lecture by: Prof. Pooja Vaishnav Language Processor implementations are highly influenced by the kind of storage structure used for program variables and data. Managing Language requires allocating and managing the memory used by the program in static or dynamic environments. Implementation of suitable data structure becomes critical in designing and executing the system programs. The Program behavior depends on the search and allocation structures, the language support and their features such as external reference, recursion etc. Vital operations: Search and Allocation Choice of Data Structure: The design of runtime and storage management system is greatly influenced by the nature of source language. The structure and composition of source language commands the requirements of the language processor, takes up the job of code generation and allocates memory for the program objects that have their own logical address space Choice of Data Structure: Nature of Data Structure ▪ Linear or non linear ▪ Linear data structure involves linear data elements arrangements ▪ Search efficiency is considered by requirement of contiguous memory allocations for the elements ▪ Sometimes designer may compelled to overestimate the memory requirements of the linear data structure in order to ensure that later on memory requirements would not expand. ▪ This often leads to wastage of memory. ▪ Easy Access ▪ Implemented as Arrays or Linked Lists Choice of Data Structure: Nonlinear data structure are the alternatives Uses pointer implementations to access elements Need not occupy contiguous memory locations More flexible in allocation and availability of space Lower search efficiency Interleaved memory locations Choice of Data Structure: Purpose of Data Structure ▪ Whether Search data structure or Allocation Data Structure ▪ Search Data Structure: ▪ Provides efficient search ▪ Maintain attribute information ▪ Include table and sequential organization, binary search organization, hash tables, linked lists, tree structure Choice of Data Structure: Purpose of Data Structure ▪ Whether Search data structure or Allocation Data Structure ▪ Allocation Data Structure: ▪ Include stack and heap organizations ▪ Not required the search operation and address of the memory Language Processors uses both, search and allocation data structure. Choice of Data Structure: Lifetime of Data Structure ▪ Whether it is used during language process or the target program execution ▪ For ex., a data structure used during a language process would have the scope till that process only. Also called as search structure Designed and used for its search efficiency during language processing Set of entries, with each encompassing the information concerning one entity Maintains attribute information about different entities defined and used in the source program Entry will be done only once but can be searched many times Primarily created to store table of information Mainly created and used during analysis phase of program Target program rarely use this data structure Used for Symbol Table implementation Characterized by ‘key’, special symbol field containing name of entity to assist search operation Entry: set of fields referred to as record Entry contains two parts: Value in fixed part determines the information to be stored in the variable part Fixed (tag): Symbol, class type, length, dimension information, number of parameters, their addresses, type of returned value, length of returned value, statement number Variable : name, class, statement number Fixed length entry enable use of homogeneous linear data structures eg. Arrays, they may contain records having identical format Suffers from inefficient use of memory usage Variable length entry leads to compact organization with no memory wastage Fixed length Entry Variable length entry More access efficiency Less access efficiency Less memory efficiency More memory efficiency Combining the functionality of two: Hybrid Entry Format: Fixed Part Pointer Length Variable Part Kind of data structure, which is used in language processing as both, search and allocation data structures Fixed (Tag ) Part Variant Part Procedure Variable Address of Parameter List, Count of Parameters Type, Length, Dimension Information Label Statement Number Function Length of returned value, type of returned value, number of parentheses and their addresses Insert Search Delete Predict entry ‘e’ in the search data structure at which symbol symb is stored 2. Let symbe be the symbol found at eth entry . Compare symbe with symb. a. If a match between the two is found, exit with success. b. Else go to the next step. 3. Repeat steps 1 and 2 till all entries are evaluated or concluded that the symbol does not exist in the search data structure 1. Table Organization Sequential Search Organization Table Organization Sequential Search Organization Occupied entries Free Entries Physical Deletion Logical Active/ Deleted Records Binary Search Organization Search based on relational operators Entry number must not change after adding record Hash Table Organization Hash function is used for the mapping of a key value and the slot where that value belongs to the hash table Hash function takes any key value from the collection and computes on the integer value from it in the range of slot names, between 0 and m-1.