lisp代写 ITECH5403 Assignment 2 – Parallel Implementations

ITECH5403 – Comparative Programming Languages School of Science, Engineering and Information Technology

ITECH5403 – Assignment 2 – Parallel Implementations

Due Date: 4pm, Friday of Week 11

This assignmentwilltestyourskillsinprogrammingapplicationstospecificationina numberof different programminglanguages,andisworth20%ofyournon-invigilated(typeA)marksforthiscourse.

Assignment Overview

Youaretaskedwithcreatinga programfora pizzashop –however,asthisisa comparativelanguagescourse, you will be creating the same application in the following programming languages:

  •   C,
  •   Python,
  •   Java and
  •   Lisp.

    Asyouimplementtheapplicationineachlanguage,youshouldkeepnotes onthefeatures ofthelanguages used,whichyoufounduseful,aswellasanyissuesor complicationswhicharoseduetothecomplexityorlack of any language features. A brief discussion based on these programming features for each individual languageaccompanyingeachimplementationisrequired.Finally,a comparativeoverviewofthelanguages highlightingapplicabilitybasedonyourexperienceinthedesign,implementationanddebugging ofyour code is also required.

    Ifyouforeseeorencounteranycomplications,youmayopttoimplementorincorporateadditional language features which may be lacking, i.e. data structures. This can be done via:

  •   Your own i mpl ementa ti on,
  •   Through libraries, or
  •   Viatheincorporationofexistingsourcecode.YoucanusecodefoundontheInternet,butuseofany

    existing code must be referenced. Program Specification

    Users may order one or more pizzas, where each pizza may be either: small, medium or large.

    Small pizzas cost $5, medium pizzas cost $8 and large pizzas cost $12.

    Allpizzascomeonatomatobase(forourpizzashop,thiswillbetheonlyoption),andwill havethetopping cheesebydefault,atnoextracost.Usersmaychooseuptoamaximumoffouradditionaltoppings (bringing thetotaltofive)fromthefollowinglist,whereeachtoppingaddsanadditional $1tothepriceofthepizza:

     Bacon,
     Olives,
     Ham,
     Mushrooms,

CRICOS Provider No. 00103D Page 1 of 4

ITECH5403 – Comparative Programming Languages School of Science, Engineering and Information Technology

  •   Pineapple,
  •   Salami,
  •   Anchovies.

    A pizza order consists of an order for one or more pizzas, where each pizza has a size, and may optionally include a list of up to four additional toppings.

    Each pizza order must be marked as either to be collected or to be delivered.
    If the pizza is to be collected then the order requires a name and a phone number to be valid.

    If the pizza is to be delivered then a name, phone number and address are required to be valid. In addition, if the order total is less than $30 then an $8 delivery fee is added to the total.

    The application must be error tolerant and capable of accepting keyboard input to store a number of pizza orders in memory (they do not have to be persisted to file), as well as displaying an order summary which include details of all orders, including:

    •   The details of each pizza in the order,
    •   The total cost of the order, and
    •   The name, phone number and (if required) address of the person who made the order.

      Suggested Development Environments

      Codeblocks for C ’99

      Code::Bl ocks can be downloaded from: http://www.codeblocks.org/downloads/binaries
      Tocreatea newCprojectis:Whenyoucreatea project,chooseFile|NewandthenConsoleApplication,and

      thenchooseC astheprogramminglanguage. IDLE for Python

      Python,includingtheIDLEdevelopmentenvironmentcanbedownloadedfrom: https ://www.python.org/downloads/

      Eclipse for Java 7 or Java 8

      Eclipsemaybefreelydownloadedfrom:http://www.eclipse.org/downloads/

      EclipsedoesnotcomewiththeJavaJDK,whichmustthedownloaded separatelyfrom: http://www.ora cle.com/technetwork/java/javase/downloads/index.html

      EnsurethatyourEclipsetypeandJavatypematch–i.e.32-bitJavafor32-bitEclipse,or 64-bitJavafor 64-bit Eclipse.Ifyoumixandmatchitwon’twork.

      GNU CLisp for Common Lisp

      CLISP 2.49 can be sourced from: http://sourceforge.net/projects/clisp/files/latest/download Any good text editor would be suitable for writing the source code.

CRICOS Provider No. 00103D Page 2 of 4

ITECH5403 – Comparative Programming Languages School of Science, Engineering and Information Technology

Additional Documentation – Language Suitability Report

The design of each programming language incorporates a number of decisions about the language which makeitmoreor lesssuitablefor giventasks.Duringyourimplementationofthepizza programineachofthe languagesyoushouldmakenotesaboutthelanguagefeatures whichexistordonotexist,andwhichhave therefore made program development easier or more difficult.

Wherea languagehasnotprovidedafeaturewhichwouldhavebeenusefultotheimplementationofthe program, or where the complexity of using a language feature has been high youshouldremark upon it and brieflydiscussa mechanismor featureofanotherlanguagewhichwouldhavemadedevelopmenteasier.

After completingtheapplicationinalllanguages(orasmanyasyoucan),discussthecomparativeeaseof implementationintermsofthedesign,implementationanddebuggingforeachprogramminglanguage, includinghowrobustnessissues wereaddressed.

Submission and Marking Process

Youmustsupplyyourprogramsourcecodefilesandlanguagesuitabilityreportdocumentationinas single compressed archive called:

ITECH5403_Assignment_2_<YOUR-NAME>_<YOUR-STUDENT-ID>.zip

You may supply your programming language suitability report in either Word or LibreOffice/OpenOffice format in which the document can be edited – no proprietary Mac specific formats, please.

Assignmentswillbemarkedonthebasis offulfilmentoftherequirements andthequalityofthework. In addition to the marking criteria, marks may be deducted for failure to comply with the assignment requirements, including (but not limited to):

  •   Incomplete implementation(s), and
  •   Incomplete submissions (e.g. missing files), and
  •   Poor spelling and grammar.

    Submityourassignment(allprogramsourcefilesplusyourdiscussiondocument)totheAssignment2 Upload location on Moodle before the deadline of Friday of Week 11 at 4pm.

    The mark distribution for this assignment is explained on the next page.

CRICOS Provider No. 00103D Page 3 of 4

ITECH5403 – Comparative Programming Languages School of Science, Engineering and Information Technology

Assignment 2 – Parallel Implementations Student name: Student ID:

Requirement

Weight

Mark

Implementation of the pizza shop program in the C programming language. Areas of note include:

  • –  Use of data structures,
  • –  Robust input handling which does not cause program termination if provided with bad

    data (i.e. program expects a number, gets given alphanumerical data). Discussion on implementation:

– Language features, issues and suitability.

15 5

Implementation of the pizza shop program in the Python programming language. Areas of note include:

  • –  Python Standard library,
  • –  List mechanisms, Discussion on implementation:

– Language features, issues and suitability

15 5

Implementation of the pizza shop program in the Java programming language. Areas of note include:

  • –  Object orientation mechanism / method calls,
  • –  Error handling
  • –  Standard Java libraries

    Discussion on implementation

– Language features, issues and suitability

15 5

Implementation of the pizza shop program in the Lisp programming language. Areas of note include the Lisp:

  • –  Use of recursion
  • –  lists
  • –  Inbuilt data structures

    Discussion on implementation

– Language features, issues and suitability

15 5

Documentation and discussion of the comparative ease of implementation (design / implement / debug) in each programming language, including how robustness issues were addressed.

15

Spelling and grammar

5

Assignment mark total

/ 100

Contribution to unit mark (out of 20%)

%

Comments:

CRICOS Provider No. 00103D

Page 4 of 4