Skip to content
ELO edited this page May 3, 2024 · 12 revisions

The Steppable Wiki

Welcome to the Steppable wiki!

Repository Stats

Frequently Asked Questions (FAQ)

How does it work?

We found that there is no better nor simpler method of writing a step-by-step solver than imitating how a human would solve it. So we wrote a parser that converts the input into a tree, and then we wrote a calculator that solves the tree step by step. Finally, the reporter shows the steps and results to the user in a human-readable format.

Currently, only the calculator and the reporter are implemented, with very limited functionality. Here is a list of what we are planning to implement next (and in the near future):

  • Parser
  • Calculator and reporter (all the major functions)
    • Comparison of integers and decimal
    • Addition of integers and decimals
    • Subtraction of integers and decimals
    • Multiplication of integers and decimals
    • Powers of integers
    • Division of integers and decimals
    • Addition of fractions
    • Subtraction of fractions
    • Multiplication of fractions
    • Simplification of fractions
    • Division of fractions
    • API for numbers
    • API for fractions
    • Conversion between fractions and decimals
    • Expansion of polynomials
    • Factoring of polynomials

The parser is the most difficult part of the project, so we will start with the calculator and reporter first. When implemented, it will probably call the calculator(s) (which is/are compiled into executable format together with the reporter) and then show the result to the user.

What is this?

This project attempts to make a CAS that solves problems like a human does. It even adds, subtracts, multiplies, and divides using the column method. This is because we believe that a CAS should be able to solve problems step by step, so that the user can understand how the problem is solved.

What this is not?

This is not a CAS intended for high-performance computing. This is because the basic arithmetic operations are much more time-consuming than the plain old +, -, *, and / (around 10 times slower). The amount of coding needed for high-performance computing would take a considerable amount of time to design, program and debug. We may try it after we this CAS is fully functional.

Why another CAS?

Out of this list, we could not find a CAS that is:

  • Free and open source
  • Solves step by step
  • Runs even without internet connection
  • Has no external dependencies (including BigNum libraries)

How to contribute?

Welcome to our project! We are glad that you are interested in contributing to our project. Please make a pull request in order to contribute to the project, and we will review it as soon as possible. But most importantly above all, we hope you will enjoy using this project and have fun coding !

Contents

Project Release:

Please expect the project to be functional before 2028.

Contents

Introduction

Contributing

Building

Development

API Documentation

Others

  • Performance - Some benchmarks of Steppable for reference
  • Status - Status of Steppable, at a glance
Clone this wiki locally