日韩精品一区二区三区高清_久久国产热这里只有精品8_天天做爽夜夜做爽_一本岛在免费一二三区

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

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++編程語言
  • 無相關信息
    合肥生活資訊

    合肥圖文信息
    急尋熱仿真分析?代做熱仿真服務+熱設計優化
    急尋熱仿真分析?代做熱仿真服務+熱設計優化
    出評 開團工具
    出評 開團工具
    挖掘機濾芯提升發動機性能
    挖掘機濾芯提升發動機性能
    海信羅馬假日洗衣機亮相AWE  復古美學與現代科技完美結合
    海信羅馬假日洗衣機亮相AWE 復古美學與現代
    合肥機場巴士4號線
    合肥機場巴士4號線
    合肥機場巴士3號線
    合肥機場巴士3號線
    合肥機場巴士2號線
    合肥機場巴士2號線
    合肥機場巴士1號線
    合肥機場巴士1號線
  • 短信驗證碼 酒店vi設計 deepseek 幣安下載 AI生圖 AI寫作 aippt AI生成PPT 阿里商辦

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

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

    日韩精品一区二区三区高清_久久国产热这里只有精品8_天天做爽夜夜做爽_一本岛在免费一二三区

      <em id="rw4ev"></em>

        <tr id="rw4ev"></tr>

        <nav id="rw4ev"></nav>
        <strike id="rw4ev"><pre id="rw4ev"></pre></strike>
        在线观看日韩www视频免费| 一本色道久久综合亚洲精品不卡| 亚洲国产精品ⅴa在线观看| 亚洲伦理精品| 亚洲欧美成人综合| 国产欧美成人| 一区二区三区av| 欧美视频在线播放| 欧美黄色一级视频| 欧美三级午夜理伦三级中视频| 国产精品美女主播在线观看纯欲| 久久久久久久一区二区三区| 欧美a一区二区| 欧美有码在线观看视频| 国产真实乱子伦精品视频| 欧美精品观看| 久久久久99精品国产片| 亚洲欧美一区二区三区极速播放| 欧美日韩综合另类| 性做久久久久久| 国产一区观看| 亚洲国产精品久久精品怡红院| 精品动漫一区二区| 亚洲综合精品自拍| 久久成人综合网| 亚洲国产人成综合网站| 伊人一区二区三区久久精品| 欧美日韩亚洲免费| 黄色成人在线网站| 91久久久一线二线三线品牌| 91久久久亚洲精品| 国产丝袜美腿一区二区三区| 在线播放中文一区| 欧美一级艳片视频免费观看| 欧美日本不卡高清| 久久久人成影片一区二区三区观看| 久久精品亚洲精品国产欧美kt∨| 日韩五码在线| 久久嫩草精品久久久久| 久久免费国产精品1| 亚洲精品久久| 欧美激情综合网| 久久久久久久久伊人| 国产一区二区三区久久悠悠色av| 欧美日韩高清在线一区| 男同欧美伦乱| 蜜桃精品久久久久久久免费影院| 久久精品亚洲国产奇米99| 国语自产精品视频在线看8查询8| 欧美性猛片xxxx免费看久爱| 国内精品久久久久久影视8| 亚洲夜晚福利在线观看| 午夜精品美女久久久久av福利| 国产欧美精品国产国产专区| 欧美国产视频在线| 国产精品护士白丝一区av| 国产精品成人一区二区三区夜夜夜| 欧美一区二视频| 欧美一区二区播放| 亚洲夜间福利| 在线播放亚洲一区| 一本久道综合久久精品| 欧美性一区二区| 亚洲激情成人网| 一区二区三区四区五区在线| 99国产成+人+综合+亚洲欧美| 免播放器亚洲一区| 午夜国产精品视频免费体验区| 国产精品欧美风情| 亚洲区第一页| 免费久久99精品国产自在现线| 国产精品久久激情| 亚洲欧洲在线观看| 在线免费一区三区| 欧美成熟视频| 国产日韩精品一区二区浪潮av| 亚洲一区在线观看免费观看电影高清| 国产精品一区二区你懂得| 欧美精品激情| 欧美专区日韩专区| 亚洲欧美中文日韩在线| 欧美午夜大胆人体| 亚洲老司机av| 久久午夜羞羞影院免费观看| 国产原创一区二区| 欧美日韩精品二区第二页| 国产亚洲综合在线| 亚洲电影免费观看高清完整版在线观看| 欧美—级a级欧美特级ar全黄| av72成人在线| 亚洲经典自拍| 亚洲国产免费| 亚洲一区二区在线视频| 韩日精品视频一区| 国产精品久久久久久久久久妞妞| 最新国产拍偷乱拍精品| 香蕉久久夜色| 久久精品国产一区二区电影| 欧美精品国产精品| 亚洲欧美综合v| 狠狠色2019综合网| 国产性猛交xxxx免费看久久| 免费成人网www| 性色av一区二区三区在线观看| 国内揄拍国内精品久久| 免费在线成人av| 国产乱码精品一区二区三区不卡| 欧美一区三区三区高中清蜜桃| 99精品欧美一区二区三区综合在线| 一区二区三区在线观看欧美| 国产精品视频一区二区三区| 国产日韩成人精品| 国内精品久久久久影院优| 一本大道久久a久久精品综合| 国产精品视频xxxx| 亚洲片在线资源| 免费久久99精品国产自在现线| 久久精品免费观看| 欧美日韩亚洲一区| 欧美激情第三页| 欧美性做爰毛片| 欧美特黄a级高清免费大片a级| 欧美日韩不卡一区| 欧美人与性禽动交情品| 欧美色精品在线视频| 影音先锋日韩精品| 国产日韩欧美一区二区三区在线观看| 亚洲日本aⅴ片在线观看香蕉| 最新高清无码专区| 亚洲中字黄色| 午夜精品久久久久久久白皮肤| 欧美夜福利tv在线| 国产精品av一区二区| 影音先锋另类| 国产在线播精品第三| 中国成人黄色视屏| 国产亚洲欧美色| 激情校园亚洲| 国产精品一区久久| 国产色综合网| 亚洲一区二区三区中文字幕| 欧美日韩综合久久| 亚洲人体影院| 久久国产精品久久久| 亚洲精品久久久久久一区二区| 亚洲欧美日韩精品久久| 国产精品海角社区在线观看| 亚洲欧洲另类| 欧美精品一区二区三| 午夜久久久久久久久久一区二区| 国产精品人人做人人爽| 一区二区三区视频观看| 欧美特黄一级大片| 国产精品免费久久久久久| 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲午夜91| 牛夜精品久久久久久久99黑人| 欧美日本一区二区高清播放视频| 国产亚洲人成a一在线v站| 欧美成人精品| 亚洲视频在线一区观看| 极品裸体白嫩激情啪啪国产精品| 欧美亚男人的天堂| 一区二区三区精品视频在线观看|