ayushnoori commited on
Commit
9e9341f
ยท
unverified ยท
1 Parent(s): 4dbf6ae

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +12 -2
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.