Spaces:
Running
Running
Update README.md
Browse files
README.md
CHANGED
@@ -21,7 +21,7 @@ Synthesize(inputs, outputs):
|
|
21 |
|
22 |
## ๐จ๐ฝโ๐ป Project Description
|
23 |
|
24 |
-
Here, we implement the non-ML subset of BUSTLE, the algorithm proposed by Odena *et al.* (2021). That is, we implement bottom-up enumerative search for simple compound expressions, excluding conditionals, recursion and loops.
|
25 |
|
26 |
To run the program, run `synthesis.py` with the following arguments:
|
27 |
```
|
@@ -58,6 +58,12 @@ The most important data structure in this implementation is the abstract syntax
|
|
58 |
|
59 |
At program evaluation time, the AST is evaluated from the bottom up. That is, the operands are evaluated first, and then the operator is evaluated on the operands. This is implemented in the `evaluate` method of the `OperatorNode` class. In the case of integers, variable inputs are represented by the `IntegerVariable` class in `arithmetic.py`. When input is not `None`, input type checking and validation is performed by the `evaluate` function in this class.
|
60 |
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
## ๐ฎ Virtual Environment
|
62 |
|
63 |
To create a virtual environment, run:
|
@@ -81,6 +87,10 @@ source setup_jupyter.sh
|
|
81 |
|
82 |
I thank [Tyler Holloway](mailto:tylerholloway@g.harvard.edu), teaching fellow in CS252R, for her guidance in completing this implementation of bottom-up enumerative program synthesis.
|
83 |
|
|
|
|
|
|
|
|
|
84 |
## ๐ References
|
85 |
|
86 |
-
1. Odena, A. *et al.* BUSTLE: Bottom-Up Program Synthesis Through Learning-Guided Exploration. in *9th International Conference on Learning Representations*; 2021 May 3-7; Austria.
|
|
|
21 |
|
22 |
## ๐จ๐ฝโ๐ป Project Description
|
23 |
|
24 |
+
Here, we implement the non-ML subset of BUSTLE, the algorithm proposed by [Odena *et al.* (2021)](https://arxiv.org/abs/2007.14381). That is, we implement bottom-up enumerative search for simple compound expressions, excluding conditionals, recursion and loops.
|
25 |
|
26 |
To run the program, run `synthesis.py` with the following arguments:
|
27 |
```
|
|
|
58 |
|
59 |
At program evaluation time, the AST is evaluated from the bottom up. That is, the operands are evaluated first, and then the operator is evaluated on the operands. This is implemented in the `evaluate` method of the `OperatorNode` class. In the case of integers, variable inputs are represented by the `IntegerVariable` class in `arithmetic.py`. When input is not `None`, input type checking and validation is performed by the `evaluate` function in this class.
|
60 |
|
61 |
+
The pseudocode for the bottom-up synthesis algorithm is reproduced below from [Odena *et al.* (2021)](https://arxiv.org/abs/2007.14381):
|
62 |
+
|
63 |
+
<img width="1494" alt="image" src="https://github.com/ayushnoori/program-synthesis/assets/43010710/117e7797-11af-4b72-b5f4-dda95eb2260f">
|
64 |
+
|
65 |
+
Note that we do not consider the lines colored in blue (*i.e.*, lines 4, 16, and 17). For details on machine learning-guided bottom-up search, please see the [BUSTLE paper](https://arxiv.org/abs/2007.14381).
|
66 |
+
|
67 |
## ๐ฎ Virtual Environment
|
68 |
|
69 |
To create a virtual environment, run:
|
|
|
87 |
|
88 |
I thank [Tyler Holloway](mailto:tylerholloway@g.harvard.edu), teaching fellow in CS252R, for her guidance in completing this implementation of bottom-up enumerative program synthesis.
|
89 |
|
90 |
+
## ๐ซ Contact
|
91 |
+
|
92 |
+
Any questions? Please feel free to reach out to Ayush Noori at [anoori@college.harvard.edu](mailto:anoori@college.harvard.edu).
|
93 |
+
|
94 |
## ๐ References
|
95 |
|
96 |
+
1. Odena, A. *et al.* [BUSTLE: Bottom-Up Program Synthesis Through Learning-Guided Exploration.](https://arxiv.org/abs/2007.14381) in *9th International Conference on Learning Representations*; 2021 May 3-7; Austria.
|