logo Use CA10RAM to get 10%* Discount.
Order Nowlogo
(5/5)

Obligations are fundamental rules shared by all subjects. They are non-negotiable and to not apply them means to face sanctions. Therefore, do not hesitate to ask for explanations if you do not understand one of these rule

INSTRUCTIONS TO CANDIDATES
ANSWER ALL QUESTIONS

Obligations

Obligations are fundamental rules shared by all subjects. They are non-negotiable and to not apply them means to face sanctions. Therefore, do not hesitate to ask for explanations if you do not under- stand one of these rules. 

Obligation #0: Cheating, as well as sharing source code, tests, test tools or coding-style correction tools is strictly forbidden and penalized by not being graded, being flagged as a cheater and reported to the academic staff.

Obligation #1: If you do not submit your work before the deadline, it will not be graded.

Obligation #2: Your submission repository must be clean. Except for special cases, which (if any) are

explicitely mentioned in this document, an unclean repository may contain:

  • binary files;1

  • files with inappropriate privileges;

  • forbidden files: *~, *.swp, *.o, *.a, *.so, *.class, *.log, *.core, ;

  • a file tree that does not follow our specifications (see ??). Obligation #3: All your files must be encoded in ASCII or UTF-8 without

Obligation #4: When examples demonstrate the use of an output format, you must follow it scrupu- lously.

Obligation #5: Your code must compile with the flags:

|CFLAGS|

Advice

▷ Read the whole subject.

▷ If the slightest project-related problem arise, you can get in touch with the assistants.

Post to the dedicated newsgroup (with the appropriate tag) for questions about this document, or send a ticket to <assistants@tickets.assistants.epita.fr> otherwise.

▷ In examples, 42sh$ is our prompt: use it as a reference point.

▷ Do not wait for the last minute to start your project!

1If an executable file is required, please provide its sources only. We will compile it ourselves.

Project data

Instructors:

 

Dedicated newsgroup:

assistants.projets with [BIS]

Members per team:

 

1     LibBistro

 

Files to submit:

  • ./src/bignum.hh

  • ./src/base.hh

  • ./src/ast-node.hh

  • ./src/ast-factory.hh

  • ./src/main.cc

  • ./src/scan-bistro.ll

  • ./src/parse-bistro.yy

  • ./src/parse-driver.hh

  • ./src/parse-driver.cc

  • ./src/*

Provided files:

  • ./src/bignum.hh

  • ./src/base.hh

  • ./src/ast-node.hh

 

  • ./src/ast-factory.hh

  • ./src/main.cc

  • ./src/scan-bistro.ll

  • ./src/parse-bistro.yy

  • ./src/parse-driver.hh

  • ./src/parse-driver.cc

  • ./libbistro-example.cc

  • ./Makefile

2     Instructions

 

LibBistro is a new implementation of the legendary Bistromathique project of EPITA. It is an amazing project that will test your skills in C++ and optimization. It is also the perfect opportunity to make use of the knowledge and skills you learned during this week.

Read through the whole subject before starting, to have a better idea of what is expected of you.

3     Description

3.1  Introduction

 

From the original Bistromathique (Hitchhiker’s Guide to the Galaxy):

The Bistromathique Drive is a wonderful new method of crossing vast interstellar distances without all that dangerous mucking about with Improbability Factors.

Bistromathique itself is simply a revolutionary new way of understanding the behaviour  of numbers. Just as Einstein observed that time was not absolute but depended on the observer’s movement in space, and that space was not absolute, but depended on the ob- server’s movement in time, so it is now realized that numbers are not absolute, but depend on the observer’s movement in restaurants.

The first non-absolute number is the number of people for whom the table is reserved. This will vary during the course of the first three telephone calls to the restaurant, and then bear no apparent relation to the number of people who actually turn up, or to the number of people who subsequently join them after the show/match/party/gig, or to the number of people who leave when they see who else has turned up.

The second non-absolute number is the given time of arrival, which is now known to be one of the most bizarre of mathematical concepts, a recipriversexcluson, a number whose existence can only be defined as being anything other than itself. In other words, the given time of arrival is the one moment of time at which it is impossible that any member of the party will arrive. Recipriversexclusons now play a vital part in many branches of maths, including statistics and accountancy and also form the basic equations used to engineer the Somebody Else’s Problem field.

 

The third and most mysterious piece of non-absoluteness of all lies in the relationship between the number of items on the bill, the cost of each item, the number of people at the table, and what they are each prepared to pay for. (The number of people who have actually brought any money is only a sub-phenomenon in this field.)

 

3.2  Objective

 

You have to implement a library for integer arithmetic computation, in any base, with arbitrary precision (as many digits as necessary).

The main objective is to have the correct result.

Another objective is to have the correct result fast, however do keep in mind that performance comes second to correctness: it is ill-advised to start optimizing before the features work properly and are both thoroughly tested and well documented. There is no point in having only one feature, regardless of its optimization, especially if the given result is not always reliable.

The library is made to be as generic as possible; everything is templated. You will be provided with some headers, defining an interface. Your code must respect this interface, but also work with any class respecting this interface!

The goal of this project is to evaluate your C++ programming skills, and your assimilation of the notions seen this week. It will involve smart pointers, templates, containers, inheritance, overloading, etc…

 

3.3  What you must turn in

 

The first part of the project is the header-only library, entirely templated and generic. This is what will be most thoroughly tested, and this is where you must spend the most time.

However, there will also be a binary file to build, in order to test your project’s performance. This will be a specific use case of your library, and can make assumptions to enable further optimizations.

 

(5/5)
Attachments:

Related Questions

. Introgramming & Unix Fall 2018, CRN 44882, Oakland University Homework Assignment 6 - Using Arrays and Functions in C

DescriptionIn this final assignment, the students will demonstrate their ability to apply two ma

. The standard path finding involves finding the (shortest) path from an origin to a destination, typically on a map. This is an

Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t

. Develop a program to emulate a purchase transaction at a retail store. This program will have two classes, a LineItem class and a Transaction class. The LineItem class will represent an individual

Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th

. SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of Sea Ports. Here are the classes and their instance variables we wish to define:

1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of

. Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of Sea Ports. Here are the classes and their instance variables we wish to define:

1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of

Ask This Question To Be Solved By Our ExpertsGet A+ Grade Solution Guaranteed

expert
Um e HaniScience

932 Answers

Hire Me
expert
Muhammad Ali HaiderFinance

683 Answers

Hire Me
expert
Husnain SaeedComputer science

691 Answers

Hire Me
expert
Atharva PatilComputer science

659 Answers

Hire Me
April
January
February
March
April
May
June
July
August
September
October
November
December
2025
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
SunMonTueWedThuFriSat
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
00:00
00:30
01:00
01:30
02:00
02:30
03:00
03:30
04:00
04:30
05:00
05:30
06:00
06:30
07:00
07:30
08:00
08:30
09:00
09:30
10:00
10:30
11:00
11:30
12:00
12:30
13:00
13:30
14:00
14:30
15:00
15:30
16:00
16:30
17:00
17:30
18:00
18:30
19:00
19:30
20:00
20:30
21:00
21:30
22:00
22:30
23:00
23:30