Build a hash table using chaining as the collision resolution technique

已关闭 已发布的 Oct 27, 2015 货到付款
已关闭 货到付款

Program Specification:

Build a hash table using chaining as the collision resolution technique. Insertions into the hash table will correspond to declarations of variables and values in a program, searches will be requests for the value of a variable. Some variables will be local and have a narrow scope while some variables will be global.

The program will take input from a file, another program written in the omnipotent programming language BORG (Bionicly Omnipotent Resistance Grinders) and generate output from this program.

The BORG language has the following commands (keywords):

1. START-FINISH blocks. Indicating different scopes.

2. COM - Single line comments: Text should be ignored if on the same line

3. VAR varName – Variable Declaration, adds “varName” to the hash table.

4. variable = expression – Assignment statements, ie GEORGE = 122. Find GEORGE in the hash table and assign 122 to it.

5. ++ - increment operator, syntax: VARIABLE ++

6. -- - decrement operator, syntax: VARIABLE --

7. expressions, expressions are limited to unary and binary arithmetic, or variable names

8. supported operators: + - / * % ^ (plus, minus, divide, multiple, modulo, exponent)

9. PRINT – syntax PRINT expression. If the expression is a variable, and this variable is not in scope, then an error message indicating unknown variable x at line number y. The value printed if there is a variable in scope should be the variable with the closest scope.

10. Errors – other than the print statements, our interpreter will not be responsible for detecting errors, syntax errors should be disregarded if encountered, assume that the source file is correct.

Our hash function: sum the ordinal values of the characters of the variable multiplied by their position in the string (1-indexing), then taking the modulo by TABLESIZE.

ie. The variable ABC = (65 * 1 + 66 * 2 + 67 * 3) % TABLESIZE

All tokens are separated by one space or a new line.

Output: for this assignment, run your interpreter on this sample source program as well as a program of your own, and turn it the output from both, as well as the source code from your BORG program as well as source code of the assignment and its executable. Zip is good.

Each student may implement one additional feature to the language, such as adding if, methods, more capable print statements. Only one student may implement a given extension to the language, and each extension must first be cleared with me.

数据库编程 Java

项目ID: #8779717

关于项目

5个方案 远程项目 活跃的Dec 3, 2015

有5名威客正在参与此工作的竞标,均价$128/小时

it2051229

Hi, I have read your initial requirement and I would like to do this project if given the opportunity. Let me know if you are interested so I can start. Thanks.

$30USD 在1天里
(1105条评论)
7.7
anuragiitk

I am an IITK graduate, 9 year experienced software professional and I have got top notch developers in my team, who have got experience across a span of technologies. The members in my team have worked with top notch t 更多

$105USD 在1天里
(24条评论)
5.6
ahmsak

Hello Sir... I am a computer science tutor, I teach (among others) Compilers and Algorithms. I have done many projects like this, and written many interpreters and compilers. Please contact me for more details when 更多

$250 USD 在2天内
(14条评论)
4.2
mauatai

I am working as Technical Project Lead in one of the US based MNC at Chicago. I have total 11 years of exp in Java/J2EE, MySQL, WebService and Mongo. I have developed and consumed lot of WebServices for customers li 更多

$25USD 在1天里
(2条评论)
1.3