Divide-by-zero errors often catch developers off guard*. They can happen due to division by zero (e.g., 1/0) or mod by zero (e.g., 1%0). The goal of this assignment is to design and implement a static analysis that prevents divide-by-zero errors. When you submit your completed assignment, please indicate how many hours it took to complete. This will not factor into your grade. * https://github.com/search?q=divide+by+zero&type=Issues ============================================================================== Part 1: Give an abstract interpretation that catches possible divide-by-zero errors statically. You do not need to give transfer functions for every integer operation; addition, multiplication, and division will suffice. Think carefully about your choices; the design space is quite large! You may assume that (1) we only care about integers (not floating-point values) and (2) overflow does not happen. Briefly contrast your design to an alternative you chose. Name one way in which your design is better than the alternative, and one way in which it is worse. Submit your writeup to Canvas. ============================================================================== Part 2: Implement your design (or a simplified version of it, as stated above) for integer division in Java. You can find skeleton code and detailed instructions here: https://github.com/kelloggm/div-by-zero-checker/blob/master/INSTRUCTIONS.md Please fork this repository, and submit a link to your forked repository, which contains your implemented analysis, to Canvas. ============================================================================== end.