国产人妻人伦精品_欧美一区二区三区图_亚洲欧洲久久_日韩美女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 豆包網頁版入口 目錄網 排行網

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

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

    国产人妻人伦精品_欧美一区二区三区图_亚洲欧洲久久_日韩美女av在线免费观看
    久久国产精品亚洲| 免费观看国产成人| 国产精品成人观看视频国产奇米| 久久99精品久久久久久久久久| 国产福利久久| 九色综合日本| 久久精品国产一区| 国产精品久久精品视| 精品久久久久av| 亚洲最大福利视频网| 亚洲一区二区三区四区中文| 天堂精品视频| 色阁综合av| 欧洲精品在线视频| 国产在线视频欧美| 99三级在线| 久久精品99国产| 久久天堂av综合合色| 精品国产一区二区三区四区精华| 精品国产乱码一区二区三区四区| 欧美激情国产精品| 亚洲精品高清视频| 日韩欧美在线一区二区| 美女被啪啪一区二区| 成人福利网站在线观看| 神马国产精品影院av| 精品久久久久久一区二区里番 | 国产麻花豆剧传媒精品mv在线| 国产女人18毛片水18精品| 久久久欧美一区二区| 国产精品免费一区二区三区 | 国产欧美日韩综合一区在线观看| 国产欧亚日韩视频| 97精品国产97久久久久久春色 | 国产精品av在线播放 | 日本久久久久久久久| 黄色网在线视频| 99在线视频首页| 久久久久久久久一区二区| 欧美成人一区二区三区电影| 亚洲 自拍 另类小说综合图区| 日韩av一级大片| 国产视频999| 日韩在线视频线视频免费网站| 美女av一区二区三区| 日本高清久久天堂| 成人免费视频91| 国产精品精品久久久| 日日噜噜噜夜夜爽爽| 国产精品永久在线| 国产精品视频永久免费播放| 亚洲一区二区在线看| 黄色高清视频网站| 久久一区二区三区av| 久久久久久91| 蜜桃免费区二区三区| 日韩中文字幕网站| 亚洲高清乱码| 国产精品直播网红| 国产精品嫩草影院久久久| 午夜精品久久久久久久99黑人| 精品午夜一区二区| 国产精品天天av精麻传媒| 日韩高清国产一区在线观看 | 国产精品视频成人| 日韩精品欧美一区二区三区| 高清亚洲成在人网站天堂| 国产精品免费一区二区三区| 日本一区高清不卡| 国产精品一区二区女厕厕| 国产精品二区在线观看| 欧美亚洲视频在线看网址| 国产高清精品一区二区三区| 亚洲一区二区三区精品视频| 国产精选久久久久久| 麻豆成人在线看| 黄色网页免费在线观看| 久久久久无码国产精品一区| 岛国一区二区三区高清视频| 91九色综合久久| 亚洲福利av在线| 91久久精品久久国产性色也91| 欧美激情视频在线免费观看 欧美视频免费一| 激情小说综合区| 精品国产依人香蕉在线精品| 欧美一区免费视频| 久久久久www| 国产中文欧美精品| 免费av在线一区| 99热成人精品热久久66| 亚洲18私人小影院| 久久久99爱| 欧美专区国产专区| 国产精品免费网站| 国产偷人视频免费| 综合久久国产| 久久综合精品一区| 日韩国产欧美精品| 国产精品欧美一区二区| 明星裸体视频一区二区| 国产精品欧美在线| 国产人妻互换一区二区| 中文字幕黄色大片| 久久久影院一区二区三区| 日本福利视频导航| 国产精品美女呻吟| 成人欧美一区二区三区黑人| 电影午夜精品一区二区三区| 国产厕所精品在线观看| 精品999在线观看| 欧美激情一级精品国产| 久久人人看视频| 欧美日韩在线播放一区二区| 国产精品高潮粉嫩av| 狠狠色噜噜狠狠狠狠色吗综合| 久久福利网址导航| 久久久一本二本三本| 欧美无砖专区免费| 伊人久久大香线蕉午夜av| 久久99久久久久久| 国产欧美日韩精品专区| 日韩欧美亚洲精品| 精品国产乱码久久久久软件| 久久久久久国产精品mv| 黄色91av| 肉大捧一出免费观看网站在线播放 | 久久精品国产电影| 国产区日韩欧美| 午夜精品久久久久久久男人的天堂 | 久久久伊人欧美| 精品视频免费观看| 午夜免费久久久久| 国产精品裸体一区二区三区| 成人美女免费网站视频| 欧美一区在线直播| 亚洲中文字幕无码不卡电影| 久久精彩免费视频| 91久久在线视频| 欧美精品久久久久久久自慰| 中文字幕久久综合| 国产成人精品综合| 69**夜色精品国产69乱| 国产亚洲欧美一区二区| 人禽交欧美网站免费| 中文字幕中文字幕在线中一区高清 | 国产原创中文在线观看| 热re99久久精品国产99热| 亚洲一区 在线播放| 国产精品久久色| 69av视频在线播放| 国产乱码精品一区二区三区日韩精品 | 亚洲综合在线中文字幕| 国产精品国产三级国产aⅴ9色| 成人免费在线网| 日本精品va在线观看| 欧美日韩成人网| 国产精品久久久久久久天堂| 国产脚交av在线一区二区| 国产精品一区久久| 精品视频一区二区三区四区| 日本精品免费视频| 亚洲精品欧美一区二区三区| 欧美成人免费一级人片100| 久久精品青青大伊人av| 深夜福利一区二区| 久久久国内精品| 97国产在线播放| 国产精品自拍网| 热久久免费国产视频| 日产精品高清视频免费| 午夜欧美大片免费观看| 亚洲综合中文字幕在线| 欧美激情一区二区三区高清视频| 久久伊人色综合| 国产精品二区三区| 国产精品九九九| 国产精品电影网| 超碰91人人草人人干| 久久成人国产精品| 久久夜精品香蕉| 精品国产一二三四区| 国产精品无码专区av在线播放| 久久久久免费网| 久久另类ts人妖一区二区| 国产精品99久久久久久久久久久久| 成人精品网站在线观看| 成 年 人 黄 色 大 片大 全| 成人久久久久久久| 99精品国产高清一区二区| av观看免费在线| 91免费看片网站| 国产精品99久久久久久白浆小说| 99久热re在线精品视频| 69av在线视频| 久久久久久有精品国产| 久久久国产91| 精品九九九九| 亚洲黄色成人久久久| 午夜精品一区二区三区四区 | 国产欧美中文字幕|