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

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

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號線
  • 短信驗證碼 豆包 幣安下載 AI生圖 目錄網

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

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

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

          9000px;">

                久久久av毛片精品| 久久影视一区二区| 亚洲成av人片在线| 成人免费视频在线观看| 欧美三级电影精品| 欧美人妇做爰xxxⅹ性高电影| 91美女蜜桃在线| 五月综合激情婷婷六月色窝| 亚洲猫色日本管| 亚洲激情自拍视频| 亚洲一区二区av电影| 五月激情综合婷婷| 午夜成人在线视频| 免费久久99精品国产| 亚洲国产三级在线| 亚洲一区二区三区四区五区中文| 亚洲成人动漫在线免费观看| 麻豆91在线观看| 国产精品一级黄| 欧美亚洲动漫另类| 日韩欧美综合在线| 精品卡一卡二卡三卡四在线| 国产精品国产三级国产aⅴ原创 | 91伊人久久大香线蕉| 色爱区综合激月婷婷| 欧美精品精品一区| 日韩一区二区免费在线电影| 精品久久久久久久久久久久久久久 | 91麻豆产精品久久久久久| 成人久久久精品乱码一区二区三区| 毛片不卡一区二区| 色综合久久久久网| 久久久久久久久岛国免费| 亚洲精品国久久99热| www.在线成人| 国产日韩成人精品| 久久99久久久久久久久久久| 欧美日韩精品一区二区三区| 国产女同互慰高潮91漫画| 韩国理伦片一区二区三区在线播放| 国产精品一二三区在线| 欧美日韩一区二区三区视频| 中文字幕在线观看一区| 韩国女主播成人在线| 欧美亚洲动漫制服丝袜| 1024亚洲合集| 日本久久一区二区三区| 一区二区三区在线视频观看58| 精品一区在线看| 欧美日韩中文精品| 日本不卡1234视频| 日韩一区二区视频在线观看| 奇米色777欧美一区二区| 欧美一级欧美三级| 日韩国产欧美在线视频| 欧美精品v国产精品v日韩精品| 日韩欧美国产精品一区| 婷婷亚洲久悠悠色悠在线播放| 91九色最新地址| 日韩影院精彩在线| 久久久国产一区二区三区四区小说| 日本欧美肥老太交大片| 91香蕉视频污在线| 亚洲精品乱码久久久久久日本蜜臀| 在线观看一区二区精品视频| 午夜精品一区二区三区电影天堂| 欧美日韩国产高清一区二区三区| 美脚の诱脚舐め脚责91 | 亚洲午夜视频在线| 91精品国产综合久久蜜臀 | 有坂深雪av一区二区精品| 在线播放/欧美激情| 极品美女销魂一区二区三区 | 亚洲午夜精品网| 色综合视频一区二区三区高清| 亚洲欧洲综合另类| zzijzzij亚洲日本少妇熟睡| 精品一区二区免费在线观看| 一级女性全黄久久生活片免费| 久久久国产精品午夜一区ai换脸| 日韩一二三区视频| 69堂精品视频| 欧美一区二区三区视频在线| 欧美日韩一区二区三区不卡| 欧美在线观看18| 色中色一区二区| 欧美老女人第四色| 欧美一二三区精品| 91精品国产色综合久久| 日韩一区二区三区在线观看| 久久嫩草精品久久久精品一| 欧美草草影院在线视频| 不卡一区二区中文字幕| 精品视频在线免费| 91精品国产综合久久精品麻豆| 欧美一级欧美三级在线观看| 久久久精品国产免费观看同学| 91精品国产色综合久久不卡蜜臀 | 国产在线一区观看| 另类调教123区| 久久成人免费电影| 色香色香欲天天天影视综合网| 欧美日韩在线直播| 欧美日韩国产经典色站一区二区三区 | 久久国产剧场电影| 精品在线视频一区| 粉嫩av一区二区三区粉嫩| 成人高清在线视频| 欧美午夜精品理论片a级按摩| 欧美三级日韩三级| 国产精品每日更新在线播放网址| 亚洲午夜精品17c| 国产成人精品亚洲午夜麻豆| 欧美日韩精品系列| 中文字幕一区二区三区在线不卡| 日韩精品1区2区3区| 懂色av中文一区二区三区| 欧美日韩精品一区二区在线播放 | 久久精品国产久精国产| 欧美私模裸体表演在线观看| 国产视频一区二区在线| 蜜臀av性久久久久蜜臀aⅴ| 91一区二区在线| 久久蜜桃av一区二区天堂| 亚洲123区在线观看| av激情成人网| 亚洲男人的天堂网| 99热精品一区二区| 国产精品系列在线| 国产精品一区二区果冻传媒| 51精品视频一区二区三区| 亚洲免费大片在线观看| 99精品视频在线播放观看| 久久久久久毛片| 日韩精品高清不卡| 欧美日韩日日骚| 亚洲成人精品一区| 欧美肥妇free| 日本系列欧美系列| 欧美一区二区在线看| 免费看精品久久片| 精品91自产拍在线观看一区| 久久国产综合精品| 久久先锋影音av| 99久久精品国产网站| 国产精品久久免费看| 在线看日韩精品电影| 欧美日本一区二区| 亚洲一区二区美女| 欧美美女视频在线观看| 日日欢夜夜爽一区| 精品国产91洋老外米糕| 国产激情一区二区三区| 中文字幕av一区 二区| 国产精品18久久久久| 欧美韩日一区二区三区四区| 不卡的av电影| 精品国产乱码久久久久久免费| 911精品产国品一二三产区| 亚洲精品免费一二三区| 99在线视频精品| 免费成人在线网站| 欧美日韩日本视频| 国产一区二区在线影院| 欧美大片顶级少妇| 男女视频一区二区| 中文字幕在线观看一区二区| 91在线你懂得| 国产91综合一区在线观看| 国产精品毛片久久久久久| 亚洲欧美经典视频| 日韩精品一区二区在线观看| 亚洲国产精品精华液网站| wwwwww.欧美系列| 免费av成人在线| 久久精品日产第一区二区三区高清版| 国产美女娇喘av呻吟久久| 日本一区二区在线不卡| 91麻豆精品久久久久蜜臀| 日本在线播放一区二区三区| 波多野结衣亚洲一区| 国产91丝袜在线播放| 亚洲欧美国产三级| 99久久久久久| 成人三级在线视频| 亚洲影视在线播放| 国产丝袜欧美中文另类| 欧美一区二区三区喷汁尤物| 一本大道久久a久久综合| 国产成人日日夜夜| 一区二区三区在线观看动漫| www久久精品| 色婷婷激情一区二区三区| 奇米影视在线99精品| 亚洲男人电影天堂| 国产人成一区二区三区影院| 国产免费观看久久| 2023国产一二三区日本精品2022| 91精品国产入口在线| 91精品国产品国语在线不卡|