99爱在线视频这里只有精品_窝窝午夜看片成人精品_日韩精品久久久毛片一区二区_亚洲一区二区久久

合肥生活安徽新聞合肥交通合肥房產(chǎn)生活服務(wù)合肥教育合肥招聘合肥旅游文化藝術(shù)合肥美食合肥地圖合肥社保合肥醫(yī)院企業(yè)服務(wù)合肥法律

CMPT 489代做、Program Synthesis編程設(shè)計(jì)代寫(xiě)

時(shí)間:2023-12-07  來(lái)源:合肥網(wǎng)hfw.cc  作者:hfw.cc 我要糾錯(cuò)



CMPT 489 / 980 Program Synthesis
Final Project
Phase I is due by 11:59pm PT on Wednesday Nov 8, 2023. Phase II is due by 11:59pm PT on Tuesday
Dec 5, 2023. Please submit them to Canvas on time. No late submission is accepted.
Requirements:
• This project must be your own work. No collaboration is permitted.
• The programming language of this project is Java 11.
• You can learn the code on slides and start from it.
• You can use third-party libraries but not existing synthesizers. However, you can implement the
algorithms in existing synthesizers by yourself.
1 Problem Description
Consider the following context-free grammar G
E ::= Ite(B, E, E) | Add(E, E) | Multiply(E, E) | x | y | z | 1 | 2 | 3
B ::= Lt(E, E) | Eq(E, E) | And(B, B) | Or(B, B) | Not(B)
x, y, z ∈ Variables 1, 2, 3 ∈ Constants
Here, E is the start symbol. E and B are non-terminals; all other symbols are terminals. The meaning
of terminal symbols are self-explanatory. Specifically, Ite is the if-then-else operator. Add is the addition
(+) operator. Multiply is the multiplication (∗) operator. x, y, z are integer variables. 1, 2, 3 are integer
constants. Lt is the less-than (<) operator. Eq is the equals (==) operator. And is the logical conjunction
(&&). Or is the logical disjunction (||). Not is the logical negation (!).
In this project, you need to write an example-based program synthesizer in Java. Specifically, the
synthesizer takes as input a list of input-output examples and the context-free grammar G and produces
as output an implementation of f(x, y, z) in the language of G such that f(x, y, z) is consistent with the
provided examples. You can assume f only uses three variables x, y, z, and all their types are Int. The return
type of f is also Int. If the synthesis succeeds, your program should print the program, e.g., Add(Add(y,
z), x), to the console. Otherwise, if the synthesis fails, the program should print null.
2 Codebase
A codebase is provided as the starting point. It contains the basic framework for the synthesizer. Details
are explained as follows.
Package synth.cfg
This package defines the data structure for the context-free grammar (CFG). It has the following classes
• Symbol. An abstract class for symbols in the CFG.
• Terminal. A subclass of Symbol that corresponds to terminals in the CFG.
• NonTerminal. A subclass of Symbol that corresponds to non-terminals in the CFG.
1
• Production. A class for productions in the CFG. A production is of the form
ReturnSymbol ::= Operator(ArgSymbol, ..., ArgSymbol)
• CFG. A class for representing the CFG. The most important method is getProductions, which takes
as input a non-terminal symbol N and returns as output a list of all productions with N being the
left-hand-side of the production.
Package synth.core
This package contains the classes for synthesizers, examples, programs, and interpreters.
• ASTNode. A class for general Abstract Syntax Tree (AST) nodes. The symbol fields corresponds to
the symbol in the CFG. The children field corresponds to the children nodes.
• Program. A class for representing a program. It only has one field root, which is the root node of the
corresponding AST.
• Example. A class that defines the data structure of an example. The input field is a map from variable
names to their values. The output field is the output value.
• Interpreter. A class that defines an interpreter of the language of G. The most important method
is the static method evaluate, which takes as input a program and an environment and returns as
output the evaluation result. The environment is essentially a map from variable names to their values,
just like the input field of Example. Concrete examples on how to use Interpreter.evaluate are
provided in the test class synth.core.InterpreterTests.
• ISynthesizer. An interface that defines the input and output of a synthesizer. The inputs are a CFG
and a list of examples. The output is a program.
• TopDownEnumSynthesizer. A top-down enumerative synthesizer that implements the ISynthesizer
interface. You need to implement this class.
Package synth.util
This package contains the utility classes and methods.
• FileUtils. A class for file operations. The readLinesFromFile static method reads a file into a list
of strings, where each line of the file is a string.
• Parser. A class for parsing the examples. The parseAnExample static method parses text of the form
“x=a, y=b, z=c -> d” to an object of class Example. The parseAllExamples static method parses
a list of examples from a list of strings, where each string corresponds to an example. It ignores empty
strings.
Class synth.Main
The main class of the framework. It has two methods.
• main. It is the entry of the program. It takes one command-line argument args[0] for the path to
the examples file.
• buildCFG. It builds the CFG G in Section 1.
Tests
JUnit tests are provided in the src/test directory. You are welcome to add more!
• synth.core.InterpreterTests. It contains several unit tests for the interpreter, which is also helpful
for understanding the usage of the interpreter.
2
Other Files
• pom.xml. The configuration file for Maven.
• examples.txt. A sample examples file.
3 Compilation and Execution
Compilation. This codebase uses the Maven build system. Suppose you enter the Synth directory, the
project can be easily compiled with one command
$ mvn package
Then you should be able to see the message “BUILD SUCCESS”. A directory called target will be created
and a jar file called synth-1.0.jar will be generated inside the target.
Execution. In the Synth directory, you can execute the program using the following command (use ;
instead of : in Windows)
$ java -cp lib:target/synth-1.0.jar synth.Main <path-to-examples-file>
where <path-to-examples-file> is the path to the examples file. For example, you can run
$ java -cp lib:target/synth-1.0.jar synth.Main examples.txt
You will see a runtime exception with message “To be implemented”, because the synthesizer is not implemented yet. After you finish implementing the synthesizer, you should see something like (not unique)
Add(Add(y, z), x)
4 Phase I
In Phase I, you need to implement a top-down enumerative synthesizer in synth.core.TopDownEnumSynthesizer.
Deliverable
A zip file called Phase1 Firstname Lastname.zip that contains at least the followings:
• The entire Synth directory. You can change existing code if you want, but please make sure the project
can be compiled and executed as explained in Section 3.
• A short report (**2 pages) called Phase1 Firstname Lastname.pdf that explains the design choices,
features, tests, issues (if any), and anything else that you want to explain about your program.
5 Phase II
In Phase II, you can implement any synthesis algorithm that improves the performance of the synthesizer on
the same problem. You also need to create a small benchmark set and evaluate your algorithm
over the benchmarks.
A zip file called Phase2 Firstname Lastname.zip that contains at least the followings:
• The entire Synth directory. You can change existing code if you want, but please make sure the project
can be compiled and executed as explained in Section 3.
• A long report (5-6 pages) called Phase2 Firstname Lastname.pdf that explains the algorithms,
benchmarks, evaluation results, design choices, features, tests, issues (if any), and anything else
that you want to explain about your program.
請(qǐng)加QQ:99515681 或郵箱:99515681@qq.com   WX:codehelp

掃一掃在手機(jī)打開(kāi)當(dāng)前頁(yè)
  • 上一篇:CS 202代寫(xiě)、代做Operating Systems設(shè)計(jì)
  • 下一篇:CPT109程序代做、代寫(xiě)C/C++編程語(yǔ)言
  • 無(wú)相關(guān)信息
    合肥生活資訊

    合肥圖文信息
    2025年10月份更新拼多多改銷(xiāo)助手小象助手多多出評(píng)軟件
    2025年10月份更新拼多多改銷(xiāo)助手小象助手多
    有限元分析 CAE仿真分析服務(wù)-企業(yè)/產(chǎn)品研發(fā)/客戶要求/設(shè)計(jì)優(yōu)化
    有限元分析 CAE仿真分析服務(wù)-企業(yè)/產(chǎn)品研發(fā)
    急尋熱仿真分析?代做熱仿真服務(wù)+熱設(shè)計(jì)優(yōu)化
    急尋熱仿真分析?代做熱仿真服務(wù)+熱設(shè)計(jì)優(yōu)化
    出評(píng) 開(kāi)團(tuán)工具
    出評(píng) 開(kāi)團(tuán)工具
    挖掘機(jī)濾芯提升發(fā)動(dòng)機(jī)性能
    挖掘機(jī)濾芯提升發(fā)動(dòng)機(jī)性能
    海信羅馬假日洗衣機(jī)亮相AWE  復(fù)古美學(xué)與現(xiàn)代科技完美結(jié)合
    海信羅馬假日洗衣機(jī)亮相AWE 復(fù)古美學(xué)與現(xiàn)代
    合肥機(jī)場(chǎng)巴士4號(hào)線
    合肥機(jī)場(chǎng)巴士4號(hào)線
    合肥機(jī)場(chǎng)巴士3號(hào)線
    合肥機(jī)場(chǎng)巴士3號(hào)線
  • 短信驗(yàn)證碼 目錄網(wǎng) 排行網(wǎng)

    關(guān)于我們 | 打賞支持 | 廣告服務(wù) | 聯(lián)系我們 | 網(wǎng)站地圖 | 免責(zé)聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 hfw.cc Inc. All Rights Reserved. 合肥網(wǎng) 版權(quán)所有
    ICP備06013414號(hào)-3 公安備 42010502001045

    99爱在线视频这里只有精品_窝窝午夜看片成人精品_日韩精品久久久毛片一区二区_亚洲一区二区久久

          9000px;">

                国产性生活视频| 色婷婷av一区二区三| 国产精品成人国产乱| 国产欧美日韩成人| 久久精品人妻一区二区三区| 免费在线观看黄色小视频| 日本中文在线视频| 最近中文字幕无免费| 91香蕉视频免费看| 国产美女免费网站| 日本国产一级片| 中文字幕男人天堂| 国产精品久久久视频| 久久国产在线视频| 一起草在线视频| www色com| 日本成人免费在线观看| 中文字幕一区二区三区人妻四季| 91精品在线视频观看| 精品国产乱码一区二区三| 日韩精品人妻中文字幕| 亚洲男人天堂av在线| 国产精品视频中文字幕| 日本亚洲色大成网站www久久| 中文字幕网站在线观看| 国产精品久久久毛片| 日本免费网站在线观看| 亚洲欧美手机在线| 久久精品性爱视频| 中文字幕 国产精品| 国产suv精品一区二区33| 欧美一区二区三区网站| 亚洲少妇久久久| 久久精品性爱视频| 亚洲天堂777| 精品视频在线观看免费| 中文字幕色网站| 精品国产视频一区二区三区| 亚洲av熟女高潮一区二区| 精品夜夜澡人妻无码av| 波多野结衣一区二区在线| 久久只有这里有精品| 中文字幕一区二区人妻视频| 一二三四在线观看视频| 国产视频一区二区三区四区五区| 少妇高潮久久久| 国产精品久久久久久久妇| 日韩在线免费观看av| 成人免费视频国产免费| 手机av在线免费| 国产精品探花视频| 亚洲第一精品在线观看| 精品99久久久久成人网站免费| 亚洲911精品成人18网站| 国产综合视频在线| 亚洲视频在线a| 日韩av手机在线免费观看| 国产3p在线播放| 亚洲va天堂va欧美ⅴa在线| 国产一级黄色录像| 亚洲精品电影院| 人成免费在线视频| 国产精品视频久久久久久久| 在线观看岛国av| 老司机福利在线观看| www.黄色一片| 在线免费观看av的网站| 人妻体体内射精一区二区| 国产aⅴ爽av久久久久| 中文字幕网站在线观看| 日本高清www| 国产又粗又长视频| 97免费观看视频| 一区二区三区四区五区| 人妻aⅴ无码一区二区三区| 国产精品一区二区黑人巨大| 亚洲免费av一区| 天天干,夜夜爽| 欧美日韩综合在线观看| 国精产品视频一二二区| av中文字幕网址| 亚洲欧美自偷自拍| 一区二区不卡视频在线观看| 欧洲av一区二区三区| 国模无码一区二区三区| 国产精品色综合| 波多野结衣久久久久| 亚洲精品视频久久久| 天天综合网久久综合网| 人妻无码中文字幕免费视频蜜桃| 国产又黄又粗又硬| 国产裸体永久免费无遮挡| 97伦伦午夜电影理伦片| 亚洲无人区码一码二码三码| 在线亚洲欧美日韩| 一区二区三区在线免费观看视频 | 欧美日韩中文视频| 国产在线观看免费视频今夜| 丰满岳乱妇一区二区| 99成人精品视频| av av在线| www.久久com| www.色婷婷.com| 国产a级免费视频| 懂色av蜜臀av粉嫩av分享吧| 99久久国产免费| 国产三级在线观看视频| 欧美肉大捧一进一出免费视频| 特黄aaaaaaaaa真人毛片| 中文区中文字幕免费看| 国产成人av免费| 人人干人人视频| 亚洲欧美自偷自拍| 久久精品国产亚洲av高清色欲| 五月综合色婷婷| 国产波霸爆乳一区二区| 欧美日韩综合一区二区| 亚洲视频在线播放免费| 精品无码人妻一区二区三区| 无码日韩精品一区二区| 成人午夜视频在线播放| 青娱乐国产精品视频| 亚洲伊人成人网| 男人午夜免费视频| 亚洲日本中文字幕在线| 久久久久久av无码免费看大片| 在线观看亚洲一区二区| 红桃视频一区二区三区免费 | 亚洲xxx在线观看| 国产精品人人爽人人爽| 天堂在线视频免费观看| 国产精品1区2区3区4区| 天堂av在线网站| 国产欧美激情视频| 在线看成人av| 久久久男人的天堂| 亚洲午夜久久久久久久国产| 久久中文字幕无码| 99视频只有精品| 天堂在线一区二区三区| 国产精品久久久久久成人| 亚欧洲精品在线视频| 国精产品一区一区二区三区mba| 在线观看免费中文字幕| 精品人妻无码一区二区性色 | 久久国产精品波多野结衣| 亚洲天堂伊人网| 欧美黑人精品一区二区不卡| aa片在线观看视频在线播放| 天天操天天摸天天舔| 国产一级淫片a| 亚洲综合成人av| 天堂网在线观看视频| 国产探花在线免费观看| 亚洲国产日韩在线观看| 牛夜精品久久久久久久| 国产精品-色哟哟| 亚洲欧美另类日本| 日本一区二区在线免费观看| 国产嫩bbwbbw高潮| 伊人久久一区二区三区| 欧美 日韩 成人| 国产微拍精品一区| 亚洲一区中文字幕在线| 午夜精品久久久久久久96蜜桃| 九一精品久久久| 国产黑丝一区二区| 亚洲人成人无码网www国产| 久久精品国产亚洲av久 | 国产又黄又嫩又滑又白| 亚洲av人人澡人人爽人人夜夜| 国产大尺度视频| 视频二区在线观看| 91久久国产综合| 久久这里只精品| www.五月婷| 亚洲成人一级片| 久久国产精品波多野结衣av| 亚洲国产精品免费在线观看| 美女网站视频黄色| 成人av一区二区三区在线观看| 色哟哟精品视频| 黄色激情小视频| √资源天堂中文在线| 天天插天天射天天干| 狠狠人妻久久久久久综合蜜桃 | 五月天婷婷亚洲| 狠狠人妻久久久久久| 91pony九色| 四虎国产精品免费| 精品少妇一区二区三区免费观| 亚洲精品乱码久久久久久蜜桃图片| 男人操女人下面视频| 操她视频在线观看| 在线免费观看日韩av| 欧美一区二区三区爽爽爽| 国产无人区码熟妇毛片多| 亚洲欧美另类动漫| 午夜av中文字幕| 日本一二区免费|