Parsing tree programing assignment | Computer Science homework help

Parsing tree programing assignment

Similar to the parsing tree example in class,  computer science there is not much usefulness in parsing and evaluating statements without an operator. Therefore, it is safe to assume that any input to your parsing tree will contain an operator.

Examples of valid inputs are:

  • ( T AND F )
  • ( ( T OR M_0.3 ) AND P_0.8 )
  • ( P_0.9 OR M_0.4 )

Example of inputs that are not expected (and that you don’t need to account for):

Also, if you haven’t started, and want a clean slate to start with, use this skeleton code in MS Teams: mp_parse.py (Links to an external site.)

What is the assignment?

  • To implement functions to build, evaluate, and print expressions using our (made-up) maybe-probably logic

What to hand in?

  • One (and only one) *.py file should be handed in. All your checks, unit tests should be inside of this file (similar to last assignment).
  • Note that your program should be able to be run at console/terminal (e.g. $ python your_file.py). If it does not, then the execution portion of the assignment will be 0.
  • Also note that you do not need to hand in binarytree.py nor stack.py; and you do *not* need to copy them into your file. Just import them. (For Peer Reviewers, ensure you put the code you will review in the same directory as

What needs to be done? 

The primary tasks in this fourth assignment are to implement the following three functions.

1. buildMPLogicParseTree(s) – this function should take a string as input (e.g. s=”( T OR P_0.9 )”) and should return the binary tree representing the parse tree as described in class

2. evaluateMPLogicParseTree(t) – this function should take a binary tree as input and should return a T or an F that is based on the on the input statement

3. printMPLogicExpression(t) – this function should take a binary tree as input and should return the string that looks like the original string (perhaps with extra parentheses)

4. create some examples of how your functions work (inside of def main()), and test that each of the functions works correctly (using unittest)

Note: Those exact function names above should be used. If those name are not used 10pts will be automatically deducted.

Also:

  • you should use the file parsetree.py for inspiration (located in MS Teams -> General -> Files -> Code); note: that file is for building entirely different types of parse trees so only parts of it will be relevant to this assignment
  • you will also want to download the files binarytree.py and stack.py, and import them from your *.py file (all three files will need to exist in the same directory/folder)
  • as with the last assignment, your *.py file will be run through a test script

When you submit your assignment, it will be graded in large part based on whether it successfully runs when using different input strings. The tests will roughy look like the following:

pt = buildMPLogicParseTree('( ( T AND F ) OR M_0.3 )')
ans = evaluateMPLogicParseTree(pt)
exp = printMPLogicExpression(pt)
# pt, ans, and exp will all be checked to ensure they are correct

Again, several different input strings will be also be tested.

When an M_x or P_x is present then the test will confirm that your tree evaluates to the correct average.

For example, the above input string will evaluate to T roughly 30% of the time.

What does maybe-probably logic look like again, exactly?

The symbols of our maybe-probably Boolean logic are:

  • T – denotes True
  • F – denotes False
  • M_x is a maybe symboled that evaluates to true with probability x, 0.0 <= x <= 0.75 Ø
  • P_x is a probably symbol that evaluates to true w/ probability x, 0.75 <= x < 1.0 Ø
  • AND, OR – the two operators (note, these are binary operators)
  • (, ) – parentheses are to be used in the same way as with the parse tree.py example we saw in class

Some additional examples of statements in this language are:

  • ( T AND F ) a should evaluate to F for False
  • ( T OR F ) a should evaluate to T for False
  • ( M_0.7 ) a should evaluate to T for True 70% of the time
  • ( M_0.9 ) invalid since parameter x is greater than 0.75!!
  • ( ( P_0.8 AND T ) OR ( M_0.25 ) ) a should evaluate to true 85% of the time

As with other assignments, the final code should be your own work. However, discussing the general approach, or specific Python issues/functions, with others (e.g. on MSU Discord server), is acceptable, and encouraged! Of course, don’t hesitate to ask questions in MS Teams, by email, and in class. Again, note that the tree should include x, and that M_x or P_x terms should evaluate only inside of the evaluate function.

Calculate the price of your order

Select your paper details and see how much our professional writing services will cost.

We`ll send you the first draft for approval by at
Price: $36
  • Freebies
  • Format
  • Formatting (MLA, APA, Chicago, custom, etc.)
  • Title page & bibliography
  • 24/7 customer support
  • Amendments to your paper when they are needed
  • Chat with your writer
  • 275 word/double-spaced page
  • 12 point Arial/Times New Roman
  • Double, single, and custom spacing
  • We care about originality

    Our custom human-written papers from top essay writers are always free from plagiarism.

  • We protect your privacy

    Your data and payment info stay secured every time you get our help from an essay writer.

  • You control your money

    Your money is safe with us. If your plans change, you can get it sent back to your card.

How it works

  1. 1
    You give us the details
    Complete a brief order form to tell us what kind of paper you need.
  2. 2
    We find you a top writer
    One of the best experts in your discipline starts working on your essay.
  3. 3
    You get the paper done
    Enjoy writing that meets your demands and high academic standards!

Samples from our advanced writers

Check out some essay pieces from our best essay writers before your place an order. They will help you better understand what our service can do for you.

Get your own paper from top experts

Order now

Perks of our essay writing service

We offer more than just hand-crafted papers customized for you. Here are more of our greatest perks.

  • Swift delivery
    Our writing service can deliver your short and urgent papers in just 4 hours!
  • Professional touch
    We find you a pro writer who knows all the ins and outs of your subject.
  • Easy order placing/tracking
    Create a new order and check on its progress at any time in your dashboard.
  • Help with any kind of paper
    Need a PhD thesis, research project, or a two-page essay? For you, we can do it all.
  • Experts in 80+ subjects
    Our pro writers can help you with anything, from nursing to business studies.
  • Calculations and code
    We also do math, write code, and solve problems in 30+ STEM disciplines.

Frequently asked questions

Get instant answers to the questions that students ask most often.

See full FAQ
    See full FAQ

    Take your studies to the next level with our experienced specialists

    Chat
    Chat
    Hello, we are online 24/7. Leave a message we will reply instantly