Question 1)a) How human readability and machine readability affects the popularity of programming languages?
b) Describe the following language design principles
i) Expressiveness
ii) Simplicity
iii) Consistency with accepted notations
iv) Orthogonality
Question 2)a) What is ambiguity? How it can be removed?
b) Define symbol table? Describe how symbol table is maintained for ‘structure’ data structure
c) Give box and circle representation for variables and constants
Question 3)a) Define the following terms
i) Type checking
ii) type system
iii) weakly typed language
iv) type inference
b) What is type conversion? Describe with example
c) What is short circuit evaluation? Describe with example
Question 4)a) Write recursive and tail recursive code in C for the following
i) Nth Fibonacci number
ii) Sum of integers from I to J 2M
b) Explain different forms of implementing interfaces in JAVA?
c) In JAVA when do we declare a class or method as final?
Question 5)a) Write LISP/Scheme code for
i) Appending a list
ii) Reversing a list
b) Describe the process of resolution and unification in logic programming.
Question 6) Write brief notes on:
a) Horn clauses in logic programming
b) complete algebraic specification for stack and queue
c) Advantages of static type checking
d) Parameter passing mechanisms