国产人妻人伦精品_欧美一区二区三区图_亚洲欧洲久久_日韩美女av在线免费观看

合肥生活安徽新聞合肥交通合肥房產生活服務合肥教育合肥招聘合肥旅游文化藝術合肥美食合肥地圖合肥社保合肥醫院企業服務合肥法律

CMPT 489代做、Program Synthesis編程設計代寫

時間:2023-12-07  來源:合肥網hfw.cc  作者:hfw.cc 我要糾錯



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.
請加QQ:99515681 或郵箱:99515681@qq.com   WX:codehelp

掃一掃在手機打開當前頁
  • 上一篇:CS 202代寫、代做Operating Systems設計
  • 下一篇:CPT109程序代做、代寫C/C++編程語言
  • 無相關信息
    合肥生活資訊

    合肥圖文信息
    流體仿真外包多少錢_專業CFD分析代做_友商科技CAE仿真
    流體仿真外包多少錢_專業CFD分析代做_友商科
    CAE仿真分析代做公司 CFD流體仿真服務 管路流場仿真外包
    CAE仿真分析代做公司 CFD流體仿真服務 管路
    流體CFD仿真分析_代做咨詢服務_Fluent 仿真技術服務
    流體CFD仿真分析_代做咨詢服務_Fluent 仿真
    結構仿真分析服務_CAE代做咨詢外包_剛強度疲勞振動
    結構仿真分析服務_CAE代做咨詢外包_剛強度疲
    流體cfd仿真分析服務 7類仿真分析代做服務40個行業
    流體cfd仿真分析服務 7類仿真分析代做服務4
    超全面的拼多多電商運營技巧,多多開團助手,多多出評軟件徽y1698861
    超全面的拼多多電商運營技巧,多多開團助手
    CAE有限元仿真分析團隊,2026仿真代做咨詢服務平臺
    CAE有限元仿真分析團隊,2026仿真代做咨詢服
    釘釘簽到打卡位置修改神器,2026怎么修改定位在范圍內
    釘釘簽到打卡位置修改神器,2026怎么修改定
  • 短信驗證碼 寵物飼養 十大衛浴品牌排行 suno 豆包網頁版入口 wps 目錄網 排行網

    關于我們 | 打賞支持 | 廣告服務 | 聯系我們 | 網站地圖 | 免責聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 hfw.cc Inc. All Rights Reserved. 合肥網 版權所有
    ICP備06013414號-3 公安備 42010502001045

    国产人妻人伦精品_欧美一区二区三区图_亚洲欧洲久久_日韩美女av在线免费观看
    国产成人精品视频ⅴa片软件竹菊| 欧美精品www在线观看| 国内精品视频一区二区三区| 欧美最猛性xxxxx(亚洲精品)| 日韩av大片免费看| 日韩经典在线视频| 日本成人精品在线| 欧美在线一二三区| 男人舔女人下面高潮视频| 日韩精品一区二区三区电影| 日韩欧美精品一区二区| 欧美一区二区影视| 激情视频一区二区| 蜜桃成人在线| 国产亚洲综合视频| 国产乱码一区| 91成人免费观看| 久久久亚洲国产天美传媒修理工| 久久亚洲国产成人精品无码区| 久久综合色一本| 久久久久亚洲av无码专区喷水| 久久久久一区二区| 久久伊人免费视频| 亚洲精品日韩激情在线电影| 日本一区二区三区精品视频| 日韩美女av在线免费观看| 男人天堂手机在线视频| 国产日韩一区二区在线| 国产欧美日韩伦理| 91高潮精品免费porn| 久久久久欧美| 欧美成aaa人片在线观看蜜臀| 中文字幕人成一区| 日本在线观看一区二区| 欧美牲交a欧美牲交| 国产美女久久精品| 国产精品com| 国产精品成人观看视频国产奇米 | 日韩在线视频一区| 国产精品久久久久久久免费大片| 欧美精品国产精品日韩精品| 亚洲bt天天射| 国语自产精品视频在线看一大j8| av免费观看网| 久久国内精品一国内精品| 国产精品黄页免费高清在线观看 | 色综合久久悠悠| 日本不卡高字幕在线2019| 国产在线青青草| 国产福利精品视频| 九色成人免费视频| 日韩欧美视频第二区| 国产男女猛烈无遮挡91| 日韩中文字幕在线观看| 亚洲一区二区三区乱码| 欧美成人精品欧美一级乱| 77777亚洲午夜久久多人| 久久亚洲国产精品| 欧美与黑人午夜性猛交久久久| av电影一区二区三区| 国产精品区免费视频| 日韩一级在线免费观看| 国产日韩精品入口| 久久视频国产精品免费视频在线| 色中色综合成人| 国产女主播av| 国产精品你懂得| 天天综合中文字幕| 精品无人区一区二区三区竹菊| 久久99精品久久久久久久青青日本| 九九热这里只有精品6| 欧美日韩午夜爽爽| 久久国产精品一区二区三区四区| 亚洲精品免费网站| 国产一级二级三级精品| 国产成人久久精品| 日韩精品另类天天更新| 91免费精品视频| 久久99久久99精品免观看粉嫩| 欧美日韩国产精品一区二区 | 国产在线精品日韩| 日韩在线资源网| 日日噜噜噜夜夜爽爽| 99国产在线视频| 精品乱码一区二区三区| 国产熟女高潮视频| 精品国产乱码久久久久久108 | 天天夜碰日日摸日日澡性色av| 国产免费xxx| 国产aaa免费视频| 国产制服91一区二区三区制服| 国产精品欧美久久| 欧美大香线蕉线伊人久久国产精品| 久久久久久久久久久久久国产| 亚洲国产日韩欧美| 97成人精品视频在线观看| 亚洲永久免费观看| 91精品国产91久久久久青草| 少妇人妻互换不带套| 国产成人福利网站| 全黄性性激高免费视频| 国产精品视频网址| 狠狠干 狠狠操| 国产精品高潮视频| 国产欧美一区二区| 亚洲在线欧美| 久99久在线| 激情六月天婷婷| 九九热r在线视频精品| 白白操在线视频| 视频一区二区三区在线观看| 国产精品69久久久| 日韩亚洲欧美一区二区| 久久精品国亚洲| 国产日韩在线看| 亚洲 欧美 综合 另类 中字| 国产a级黄色大片| 热久久这里只有精品| 国产精品日日摸夜夜添夜夜av| 免费人成在线观看视频播放| 伊人天天久久大香线蕉av色| 69久久夜色精品国产69乱青草| 日韩免费在线看| 国产精品黄色影片导航在线观看| 国产精品一区二区欧美| 色播五月综合| 国产精品视频自在线| 国产美女久久精品香蕉69| 亚洲高清在线观看一区| 日韩在线免费视频观看| 国产亚洲欧美另类一区二区三区| 亚洲高清在线观看一区| 深夜福利日韩在线看| 国产欧美日韩最新| 日本精品va在线观看| 精品免费日产一区一区三区免费 | 成人久久18免费网站图片| 日韩中文字幕在线免费| 国产精品入口尤物| 国产精品亚洲网站| 日韩免费av在线| 欧美日韩福利电影| 日韩在线欧美在线| 国产精品一区二区电影| 欧美中文字幕在线观看| 亚洲va久久久噜噜噜| 久久亚洲电影天堂| 色狠狠av一区二区三区香蕉蜜桃| 丰满少妇大力进入| 激情视频综合网| 日本a级片电影一区二区| 中文字幕日韩精品久久| 国产精品旅馆在线| 久久国产精品99久久久久久丝袜| 国产欧美精品va在线观看| 日韩毛片在线免费看| 亚洲精品一区二区三| 国产999在线观看| 国产精品久久久久不卡| 深夜精品寂寞黄网站在线观看| www.欧美黄色| 国产日韩欧美二区| 黄色一级视频在线播放| 日本欧洲国产一区二区| 亚洲福利av在线| 亚洲午夜精品久久久中文影院av| 国产精品高潮呻吟视频| 久久精品成人一区二区三区| 国产成人a亚洲精品| 99热国产免费| 国产乱码一区| 国产伦精品一区二区三区在线| 免费观看国产成人| 激情图片qvod| 男人天堂新网址| 欧美日韩激情视频在线观看| 日本不卡一区二区三区在线观看| 亚洲高清资源综合久久精品| 免费av一区二区| 欧美另类69精品久久久久9999| 国产精品久久久久久久久久尿| 久久精品视频亚洲| 国产精品视频不卡| 国产精品国产三级国产专区51| 国产精品日日摸夜夜添夜夜av| 国产成人一二三区| 国产成人在线小视频| 国产不卡精品视男人的天堂| 久久综合一区| 久久久人人爽| 国产超级av在线| 久久久久中文字幕2018| 国产av熟女一区二区三区| 91精品视频播放| 久久男人的天堂| 久久久久免费精品| 国产精品无码专区av在线播放| 国产精品三级久久久久久电影| 国产精品美乳在线观看| 国产精品美女av|