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;">

                欧美军同video69gay| 91丨porny丨蝌蚪视频| 亚洲激情成人在线| 国产欧美日韩精品一区| 日韩欧美亚洲国产另类 | 在线免费观看日本欧美| 91麻豆蜜桃一区二区三区| 国产乱子伦视频一区二区三区 | 色呦呦国产精品| www.av亚洲| 色哟哟国产精品| aaa国产一区| 97精品视频在线观看自产线路二| 99久久99久久综合| 91老师国产黑色丝袜在线| 波多野结衣在线aⅴ中文字幕不卡| 国产不卡免费视频| av中文字幕在线不卡| 色婷婷综合久色| 欧美日韩三级一区| 日韩欧美色综合网站| 欧美α欧美αv大片| 亚洲国产成人午夜在线一区| 中文字幕亚洲视频| 亚洲国产视频一区| 日韩精品免费视频人成| 国产在线精品一区在线观看麻豆| 国产成a人无v码亚洲福利| heyzo一本久久综合| 日本精品免费观看高清观看| 欧美午夜不卡在线观看免费| 日韩欧美国产电影| 综合久久综合久久| 老司机午夜精品| 91在线小视频| 日韩三级视频在线看| 国产精品护士白丝一区av| 午夜欧美电影在线观看| 国产成人一级电影| 在线观看一区二区视频| 国产午夜久久久久| 午夜精品福利在线| 不卡区在线中文字幕| 在线不卡a资源高清| 中文字幕一区二| 精品一区二区三区日韩| 91麻豆福利精品推荐| 日韩精品中文字幕一区 | 日韩视频在线观看一区二区| **网站欧美大片在线观看| 日韩激情视频在线观看| 91视频免费看| 国产日韩欧美一区二区三区乱码 | 欧美视频一区二区三区| 国产精品伦理一区二区| 狠狠网亚洲精品| 欧美系列在线观看| 自拍偷在线精品自拍偷无码专区 | 中文一区二区完整视频在线观看| 日日夜夜精品视频免费| 91丝袜高跟美女视频| 久久久另类综合| 狠狠色狠狠色综合日日91app| 欧美日韩一级片网站| 亚洲欧美日韩人成在线播放| 国产ts人妖一区二区| 精品欧美一区二区久久| 免费在线观看一区二区三区| 欧美日韩卡一卡二| 亚洲成人av在线电影| 欧美综合视频在线观看| 亚洲精品国产高清久久伦理二区| 丁香天五香天堂综合| 欧美激情一区二区三区不卡| 国产成人aaa| 日本一区二区综合亚洲| 高清国产一区二区| 国产亚洲成aⅴ人片在线观看 | 亚洲色图另类专区| jizzjizzjizz欧美| 18成人在线观看| 色哟哟一区二区三区| 中文字幕亚洲一区二区va在线| av资源站一区| 亚洲一区二区三区小说| 欧美日韩和欧美的一区二区| 爽爽淫人综合网网站| 日韩欧美激情在线| 麻豆精品国产91久久久久久| 精品国产乱码久久久久久免费| 老汉av免费一区二区三区| 欧美xingq一区二区| 国产乱色国产精品免费视频| 精品少妇一区二区三区免费观看| 国内精品国产成人国产三级粉色 | 久久精品免费在线观看| www.日韩在线| 亚洲免费在线观看视频| 欧美视频一区二区三区四区| 麻豆成人av在线| 国产午夜精品久久| 97久久超碰国产精品| 日韩中文字幕av电影| 久久奇米777| 91丨porny丨户外露出| 日本成人在线一区| 久久久久亚洲蜜桃| 91福利国产精品| 久久精品国产99久久6| 国产精品私房写真福利视频| 欧美日韩成人一区二区| 国产福利精品一区二区| 亚洲图片一区二区| 精品国产污网站| 色拍拍在线精品视频8848| 麻豆精品一二三| 亚洲人成在线播放网站岛国| 欧美精品免费视频| 成人一区二区三区视频在线观看| 一区av在线播放| 国产日韩综合av| 欧美军同video69gay| 大美女一区二区三区| 免费在线观看不卡| 中文字幕制服丝袜成人av| 91精品国产色综合久久不卡蜜臀 | 亚洲男同1069视频| 国产精品久久三区| 国产九色精品成人porny| 欧美日韩精品一区二区三区蜜桃| 欧美成人乱码一区二区三区| 精品福利一区二区三区免费视频| 欧美色精品天天在线观看视频| 精品欧美一区二区在线观看| 91免费视频观看| 国产suv一区二区三区88区| 亚洲一二三四久久| 国产精品卡一卡二| 久久午夜国产精品| 91精品国产色综合久久不卡电影| 99精品国产99久久久久久白柏| 久久精品国产亚洲一区二区三区| 亚洲国产日韩精品| 一区二区三区在线高清| 亚洲图片激情小说| 国产精品不卡在线观看| 国产三区在线成人av| 精品国产91乱码一区二区三区 | 麻豆91在线播放| 日韩精品色哟哟| 亚洲va天堂va国产va久| 一区二区三区成人在线视频| 亚洲免费av观看| 亚洲精品乱码久久久久久日本蜜臀 | 国产精品素人一区二区| 欧美精品一区二| 精品国产髙清在线看国产毛片| 色综合天天综合| 99久久精品免费看国产免费软件| 国产精品 日产精品 欧美精品| 国产成人免费在线观看不卡| 国产精品亚洲人在线观看| 成人免费视频一区二区| 99精品视频一区二区三区| 91丨九色丨黑人外教| 欧美在线看片a免费观看| 欧美日本在线观看| 日韩一区二区三区精品视频| 亚洲精品一区二区三区蜜桃下载| 精品久久久影院| 国产丝袜美腿一区二区三区| 国产精品三级av| 亚洲国产成人高清精品| 免费高清视频精品| 风流少妇一区二区| 色综合视频一区二区三区高清| 91网址在线看| 日韩丝袜美女视频| 国产精品私人影院| 亚洲午夜影视影院在线观看| 日本欧美在线看| 国产成人av电影免费在线观看| av亚洲精华国产精华精华| 欧美精品v国产精品v日韩精品| 日韩欧美另类在线| 亚洲欧美国产毛片在线| 五月激情丁香一区二区三区| 国产成人精品午夜视频免费 | 日韩精品亚洲一区二区三区免费| 久久精品国产色蜜蜜麻豆| eeuss影院一区二区三区| 8x8x8国产精品| 国产精品丝袜久久久久久app| 亚洲bt欧美bt精品777| 国产精品456露脸| 欧美日韩一区高清| 欧美激情资源网| 美女脱光内衣内裤视频久久网站| av中文字幕在线不卡| 亚洲精品一区二区在线观看|