Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

PYTHON 1 Introduction This assignment explores parsing strings and working with files in Python. Students shall work individually to create a program that scans a

PYTHON

image text in transcribed

image text in transcribed

image text in transcribed

image text in transcribed

image text in transcribed

1 Introduction This assignment explores parsing strings and working with files in Python. Students shall work individually to create a program that scans a Java source file for unbalanced parentheses, brackets, and braces. After completing this exercise, students will: Know how to interact with the terminal window and gain familiarity with essential Unix commands we will use throughout the semester Create text files and folders on a remote file system through text com- mands and output redirection Develop a Python 3 application in a Unix environment Transfer the completed Python script to a remote server through a secure shell Demonstrate competence opening and saving files on a file system through source code 2 Requirements Each student shall generate a single Python source file named balanced.py. This Python script shall open the Java source file specified in the com- mand line argument provided at run-time, strip it of comments and save the comment-free version in a new file. The Python program shall then verify the Java source file meets the rudimentary syntax requirements for balanced parentheses, brackets, and braces. That is, every opening punctu- ation requires matching closing punctuation. A left curly-bracket requires a right curly-bracket for balance. For this assignment, the symbols that require balancing are: {, (, and [ // Student Name: // CS320 Programming Languages public class Driver { Driver (String [] args) { if( args.length > 0) System.out.println(args [0]); public static void main(String [] args) { // Ignore the { in the comment new Driver(args); System.out.println("Complete. ({["); Figure 1: A valid, balanced Java input file. // Student Name: // CS320 Programming Languages public class Driver { Driver(String [] args) { if( args.length > 0) System.out.println(args[0]); Figure 2: An unbalanced Java input file, for it misses a closing curly-bracket. 2.1 Comments The delivered solution shall ignore the symbols if they appear in a comment. Recall that you may comment out a line of code by either using the // symbol sequence or by starting a older, c-style multi-line comment using /* and */. Before balancing the source file, the student's Python script shall strip the specified input Java file of all its comments. It shall then save the comment-free version of the input file using the same name as the input file but with .nocom as the file extension. 2.2 Quotations Developers frequently use these symbols in strings to display to the user. For purposes of balancing, the student's solution must ignore opening and closing symbols if they appear inside a string quotation. 2.3 Data Structures The Stack abstract data type helps solve these type of balancing problems. Python lists support key stack operations, and they are built-in to the lan- guage. Students should use the list based stack in their solution. Students may use any other built-in data structures they require in their design. 2.4 File System Each student shall connect to the edoras university server using the class account information provided by the class instructor. Students must use the exact class account assigned to them for this class. Other courses issue edoras accounts, but those accounts remain inaccessible to the instructor of this class. Students may connect to this server through the ssh program or any other shell interface (i.e. XWin-32 or PuTTY). Students will need to transfer any local work to this server during the turn-in process, so understanding the difference between a secure shell and the secure copy operation will become significant. Shell scripts developed directly on the Edoras server may skip the secure copy process. Once connected to the university server, students must create the appro- priate directories and data files used by the program. Using the appropriate Unix commands, create a new directory named assign in the account's home directory. Recall Unix folder names are case-sensitive. Then, inside this new directory, create a sub-directory named lab1. 3 Delivery B Students must submit a physical copy of the delivered as- signment (i.e., printout) at the start of the lecture on the due date. After the delivery time listed on this prompt, an automated script will collect and copy the contents of every student's assign/lab1 directory to a private folder for test and grading. Consequently, all required files must exist in the specified location. The directory and file names must precisely match those in the requirements. In addition to the electronic submission, students must submit a physical printout of their source code at the start of class on the due date. Students may freely develop the application on their personal computer or other machines, but they must copy their work to the Edoras server prior to delivery. Additionally, the script must run on the remote server. Testing remains vital. | Point Value | Requirement File System: balanced.py exists on the Edoras server in the correct location with valid student name information Python Application: Reads in the command- line argument when launched Python Application: Strips comments from source file and saves in .nocom Python Application: Ignores symbols inside a string literal Python Application: Correctly identifies bal- anced source files and displays the result to the user Python Application: Coding style (e.g., variable names, flow, use of globals, no magic numbers, etc ...) Figure 3: The Grading Rubric 1 Introduction This assignment explores parsing strings and working with files in Python. Students shall work individually to create a program that scans a Java source file for unbalanced parentheses, brackets, and braces. After completing this exercise, students will: Know how to interact with the terminal window and gain familiarity with essential Unix commands we will use throughout the semester Create text files and folders on a remote file system through text com- mands and output redirection Develop a Python 3 application in a Unix environment Transfer the completed Python script to a remote server through a secure shell Demonstrate competence opening and saving files on a file system through source code 2 Requirements Each student shall generate a single Python source file named balanced.py. This Python script shall open the Java source file specified in the com- mand line argument provided at run-time, strip it of comments and save the comment-free version in a new file. The Python program shall then verify the Java source file meets the rudimentary syntax requirements for balanced parentheses, brackets, and braces. That is, every opening punctu- ation requires matching closing punctuation. A left curly-bracket requires a right curly-bracket for balance. For this assignment, the symbols that require balancing are: {, (, and [ // Student Name: // CS320 Programming Languages public class Driver { Driver (String [] args) { if( args.length > 0) System.out.println(args [0]); public static void main(String [] args) { // Ignore the { in the comment new Driver(args); System.out.println("Complete. ({["); Figure 1: A valid, balanced Java input file. // Student Name: // CS320 Programming Languages public class Driver { Driver(String [] args) { if( args.length > 0) System.out.println(args[0]); Figure 2: An unbalanced Java input file, for it misses a closing curly-bracket. 2.1 Comments The delivered solution shall ignore the symbols if they appear in a comment. Recall that you may comment out a line of code by either using the // symbol sequence or by starting a older, c-style multi-line comment using /* and */. Before balancing the source file, the student's Python script shall strip the specified input Java file of all its comments. It shall then save the comment-free version of the input file using the same name as the input file but with .nocom as the file extension. 2.2 Quotations Developers frequently use these symbols in strings to display to the user. For purposes of balancing, the student's solution must ignore opening and closing symbols if they appear inside a string quotation. 2.3 Data Structures The Stack abstract data type helps solve these type of balancing problems. Python lists support key stack operations, and they are built-in to the lan- guage. Students should use the list based stack in their solution. Students may use any other built-in data structures they require in their design. 2.4 File System Each student shall connect to the edoras university server using the class account information provided by the class instructor. Students must use the exact class account assigned to them for this class. Other courses issue edoras accounts, but those accounts remain inaccessible to the instructor of this class. Students may connect to this server through the ssh program or any other shell interface (i.e. XWin-32 or PuTTY). Students will need to transfer any local work to this server during the turn-in process, so understanding the difference between a secure shell and the secure copy operation will become significant. Shell scripts developed directly on the Edoras server may skip the secure copy process. Once connected to the university server, students must create the appro- priate directories and data files used by the program. Using the appropriate Unix commands, create a new directory named assign in the account's home directory. Recall Unix folder names are case-sensitive. Then, inside this new directory, create a sub-directory named lab1. 3 Delivery B Students must submit a physical copy of the delivered as- signment (i.e., printout) at the start of the lecture on the due date. After the delivery time listed on this prompt, an automated script will collect and copy the contents of every student's assign/lab1 directory to a private folder for test and grading. Consequently, all required files must exist in the specified location. The directory and file names must precisely match those in the requirements. In addition to the electronic submission, students must submit a physical printout of their source code at the start of class on the due date. Students may freely develop the application on their personal computer or other machines, but they must copy their work to the Edoras server prior to delivery. Additionally, the script must run on the remote server. Testing remains vital. | Point Value | Requirement File System: balanced.py exists on the Edoras server in the correct location with valid student name information Python Application: Reads in the command- line argument when launched Python Application: Strips comments from source file and saves in .nocom Python Application: Ignores symbols inside a string literal Python Application: Correctly identifies bal- anced source files and displays the result to the user Python Application: Coding style (e.g., variable names, flow, use of globals, no magic numbers, etc ...) Figure 3: The Grading Rubric

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Object Databases The Essentials

Authors: Mary E. S. Loomis

1st Edition

020156341X, 978-0201563412

More Books

Students also viewed these Databases questions

Question

List the components of the strategic management process. page 72

Answered: 1 week ago