1. Homepage
  2. Coding
  3. CS 321: Programming Languages - Homework 2: Functions, Errors, Conditionals, Predicate and Multiplication

CS 321: Programming Languages - Homework 2: Functions, Errors, Conditionals, Predicate and Multiplication

Chat with a Specialist
NorthwesternCS321COMPSCI321Programming LanguagesRacketFunctionsConditionals

CS 321: Programming Languages — Homework 2 Assignment Writing Service

1 Functions with Multiple Arguments (with Deferred Substitutions) Assignment Writing Service

Start with the f1WAE interpreter for deferred substitution, and extend the implementation to support any number of arguments to a function (including zero), and any number of arguments (including zero) in a function application: Assignment Writing Service

<FunDef> = {deffun {<id> <id>*} <fnWAE>}
<fnWAE> = <num>
        | {+ <fnWAE> <fnWAE>}
        | {- <fnWAE> <fnWAE>}
        | {with {<id> <fnWAE>} <fnWAE>}
        | <id>
        | {<id> <fnWAE>*}

As with homework 1, you must change the f1WAE datatype, and you must thus provide a parse func- tion that produces values of your modified f1WAE datatype. It must accept a quoted expression and pro- duce an fnWAE value. Similarly, you must provide a parse-defn function to parse definitions. Assignment Writing Service

See homework 1 for details on these functions.
You must also provide an
interp-expr function with signature: Assignment Writing Service

fnWAE (listof FunDef) -> Number
This function should be a very simple wrapper for your interp function, which our tests will call on the Assignment Writing Service

results of your parsers. If yours is more than a few lines (one line is possible), you may be overthinking it. Assignment Writing Service

2 Errors Assignment Writing Service

Your interpreter and parser must obey the formats and precedence rules described in homework 1. Otherwise, assume that the input to your parser is a well-formed program. Assignment Writing Service

3 Conditionals Assignment Writing Service

Add if0, a conditional expression. It has three subexpressions: <fnWAE> = ... Assignment Writing Service

        | {if0 <fnWAE> <fnWAE> <fnWAE>}

Evaluating an if0 expression evaluates the first subexpression; if it produces 0, then the result of the entire expression is the result of the second subexpression. Otherwise, the result is the result of the third subexpression. Assignment Writing Service

Examples: Assignment Writing Service

  (test (interp-expr (parse '{if0 0 1 2}) '()) 1)
  (test (interp-expr (parse '{if0 1 2 3}) '()) 3)

4 Negative predicate Assignment Writing Service

Implement, in the fnWAE language (without any extensions, i.e., you cannot add new kinds of expressions to the language or to your interpreter), a predicate neg? that determines if an integer is negative. That is, write a defun like this one that can be passed to your parse function and then used with your interp function (with a suitable <fnWAE> expression that calls it): Assignment Writing Service

{deffun {neg? x} ...}

It must return either 0 (if the input is negative), or 1 (if not). The number 0 is not itself considered negative. Assignment Writing Service

5 Multiplication on integers Assignment Writing Service

As you did in the previous problem, implement (in the fnWAE language without any extensions), a function mult that computes the product of two integers. Assignment Writing Service

{deffun {mult x y} ...}

6 Handin instructions Assignment Writing Service

Provide definitions for parse, parse-defn, and interp-expr, as above.
Provide a PLAI-level definition of
mult-and-neg-deffuns that is bound to a list of (unparsed) def- Assignment Writing Service

funs that contains both neg? and mult as well as any helper functions you need: Assignment Writing Service

(define mult-and-neg-deffuns (list `{deffun {neg? x} ...} Assignment Writing Service

`{deffun {mult x y} ...}
; other deffuns okay, too, for your helpers )) Assignment Writing Service

Do not leave in any unused code (i.e., no subst). Tests for the above functions (or helpers you may use along the way) are fine, though. Assignment Writing Service

Have the 8 rules from the Provost’s website (see the homework 0 for more details).
Submit your code via Canvas.
Your submission must include your test cases; submissions without test cases will not get any credit.
Assignment Writing Service

7 Grading Assignment Writing Service

To receive a grade of on the way (1), your submission must correctly implement multiple argument functions and if0. Assignment Writing Service

Assignment Writing Service

To receive a grade of got it (3), your submission must in addition correctly implement neg? and mult. Submissions which do not achieve on the way criteria will receive a grade of not yet (0). Assignment Writing Service

联系辅导老师!
私密保护
WeChat 微信
Northwestern代写,CS321代写,COMPSCI321代写,Programming Languages代写,Racket代写,Functions代写,Conditionals代写,Northwestern代编,CS321代编,COMPSCI321代编,Programming Languages代编,Racket代编,Functions代编,Conditionals代编,Northwestern代考,CS321代考,COMPSCI321代考,Programming Languages代考,Racket代考,Functions代考,Conditionals代考,Northwestern代做,CS321代做,COMPSCI321代做,Programming Languages代做,Racket代做,Functions代做,Conditionals代做,Northwesternhelp,CS321help,COMPSCI321help,Programming Languageshelp,Rackethelp,Functionshelp,Conditionalshelp,Northwestern作业代写,CS321作业代写,COMPSCI321作业代写,Programming Languages作业代写,Racket作业代写,Functions作业代写,Conditionals作业代写,Northwestern编程代写,CS321编程代写,COMPSCI321编程代写,Programming Languages编程代写,Racket编程代写,Functions编程代写,Conditionals编程代写,Northwestern作业答案,CS321作业答案,COMPSCI321作业答案,Programming Languages作业答案,Racket作业答案,Functions作业答案,Conditionals作业答案,