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

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

COMP4233代做、代寫Python/Java程序
COMP4233代做、代寫Python/Java程序

時間:2025-06-04  來源:合肥網hfw.cc  作者:hfw.cc 我要糾錯



COMP4233 25S
Programming Assignment
Introduction
In Lecture 11, we implement an integer calculator, which consists of 
- int : the only data type for integers
- + : binary operator for integer addition
- * : binary operator for integer multiplication
- ( ) : parentheses for force parsing
- parser and evaluator of the expressions in this language.
In Lab 11, we extend the language by let expression, identifiers and its evaluator in the 
substitution model. This upgrade implements a naming system for the language.
Syntax
In this programming assignment, you need to further extend the language with following 
features.
1. if … then … else … : the “if” expression, which can branch computations under 
some conditions.
2. fun … -> … : function definitions, which can also be with let to name them.
To make if statement work properly, we also need 
3. a new data type bool, the guard in if;
4. constants in bool are either true or false;
5. Boolean binary operator ^, boolean conjunction;
6. bool can be constructed from the relational operator <=, integer “less or equal to”.
We want to add a little bit more complex structure into our language, which are
7. a new data type list with only one constant list [] – the empty list; and
8. lists can be constructed by binary operator ::, which is right associative.
Combining everything above, the entire grammar is
<prog> -> <expr> EOF
<expr> -> int
 | <expr> + <expr>
 | <expr> * <expr>
 | ( <expr> )
 | id
 | let id = <expr> in <expr>
 | fun id -> <expr>
 | <expr> <expr>
 | if <expr> then <expr> else <expr>
 | bool
 | <expr> <= <expr>
 | <expr> ^ <expr>
 | []
 | <expr> :: <expr>
Note that <expr> -> <expr> <expr> is the syntax for function application.
For the precedence of operators, we only specify + is lower than *. Others will be guaranteed 
by parentheses. For example, ambiguous expressions like fun a -> a 1 will be excluded 
from testcases. This expression has to be either fun a -> (a 1) or (fun a -> a) 1.
Typing
To make your life easy, type system is excluded from this project. Thus, expressions with 
type errors, like 1 + true are excluded from testcases.
Evaluation
The evaluation for operators simply follows their behaviors in mathematics. Students should 
understand them easily. But if a student insists true ^ true --> false, marks will be 
remove. Goliath does not want to argue.
The evaluation for let expression is implemented by substitution model and already given in 
Lab 11.
let <x> = v in <expr> --> <e>{v / <x>}
(let <x> = v in <expr>){v / <y>} -->
if <x> = <y> then (let <x> = <expr>)
else (let <x> = <expr>{v / <y>}
Students should figure out the substitutions for functions, function applications, and lists by 
themselves, which is interesting and not difficult. Furthermore, we also guarantee that 
function arguments are of distinct names. Expressions like let x = z in (fun z -> x)
are excluded from testcases. The following substitution is naïve and not correct.
let x = z in (fun z -> x)
 --> (fun z -> x) {z / x}
 --> fun z -> x {z / x}
 --> fun z -> z
 -/->
Output
To printout an AST, two functions string_of_val and string_of_bop are defined in 
main.ml. You can also apply these functions to see if your implementation works normally.
Example
Here is one example, 
let x=(fun a -> (if (a <= 1) then true else false)) in ((x 1) :: [])
is parsed into 
and evaluated as
let x=(fun a -> (if (a <= 1) then true else false)) in ((x 1) :: [])
--> ((x 1) :: []){fun a -> .. /x}
--> ((x 1){fun a -> .. /x} :: []{fun a -> .. /x}
--> ((x{fun a -> .. /x} 1{fun a -> .. /x}) :: []{fun a -> .. /x})
--> (((fun a -> ..) 1{fun a -> .. /x}) :: []{fun a -> .. /x})
--> (((fun a -> ..) 1) :: []{fun a -> .. /x})
--> (((fun a ->(if (a<=1) then true else false) 1) :: [])
--> ((if (a <= 1) then true else false){1/a} :: [])
--> ((if (a <= 1){1/a} then true{1/a} else false{1/a}) :: [])
--> ((if (a{1/a} <= 1{1/a}) then true{1/a} else false{1/a}) :: [])
--> ((if (1 <= 1{1/a}) then true{1/a} else false{1/a}) :: [])
--> ((if (1 <= 1) then true{1/a} else false{1/a}) :: [])
--> ((if true then true{1/a} else false{1/a}) :: [])
--> (true{1/a} :: [])
--> (true :: [])
-/-> 
Submission
ast.ml and lexer.mll are given in the package. You only need to implement 
parser.mly and main.ml. You don’t need to change anything else, including file names.
Grade distribution
- Submission 5%
- Compilation 5%
- parsing if statements 15%
- evaluating if statements 10%
- parsing functions and function applications 15%
- evaluating functions and function applications 10%
- parsing & evaluating relational operator <= 10%
- parsing & evaluating Boolean conjunction ^ 10%
- parsing lists 10%
- evaluating lists 10%
Select the features that you have implemented in check_list.md by [x].

請加QQ:99515681  郵箱:99515681@qq.com   WX:codinghelp

掃一掃在手機打開當前頁
  • 上一篇:代做159.342 、代寫Operating Systems 編程設計
  • 下一篇:代寫MIT203、代做SQL編程設計
  • 無相關信息
    合肥生活資訊

    合肥圖文信息
    流體仿真外包多少錢_專業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怎么修改定
  • 短信驗證碼 豆包網頁版入口 破天一劍 目錄網 排行網

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

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

    国产人妻人伦精品_欧美一区二区三区图_亚洲欧洲久久_日韩美女av在线免费观看
    国产中文字幕二区| 欧美在线一区二区三区四区| 亚洲午夜精品久久久久久人妖| 视频一区二区视频| 精品亚洲第一| 68精品国产免费久久久久久婷婷| 国产精品久久久久久久久久久不卡| 国产人妻人伦精品| 久久久久久网站| 欧美精品在线极品| 日韩精品一区二区在线视频| 国产日韩欧美中文在线播放| 久久免费视频观看| 一区二区三区久久网| 人人妻人人添人人爽欧美一区 | 国产精品男人爽免费视频1| 一区二区三区四区五区视频 | www.av一区视频| 国产精品无码av在线播放| 天堂资源在线亚洲资源| 国产精品香蕉国产| 久久好看免费视频| 日韩欧美在线电影| 国产精品91一区| 亚洲综合五月天| 国产主播精品在线| 国产高清不卡无码视频| 亚洲专区国产精品| 国产欧美韩日| 九九热精品视频| 国内精品二区| 成人a级免费视频| 久久国产精品久久久久久| 欧美一级日本a级v片| 国产免费一区二区三区在线观看| www.亚洲视频.com| 国产精品日韩欧美一区二区| 人人妻人人澡人人爽欧美一区| 久久久国内精品| 大j8黑人w巨大888a片| 99热在线国产| 宅男av一区二区三区| 国产欧美韩国高清| 久久久久久久av| 欧美日韩天天操| 久久九九精品99国产精品| 欧美中文字幕精品| 久久精品视频中文字幕| 亚洲最大av网| 国产精品永久入口久久久| 精品国产第一页| 水蜜桃亚洲一二三四在线| 久久人妻精品白浆国产| 五月天综合婷婷| 国产传媒欧美日韩| 日韩精品一区二区三区四区五区| 国产精品69精品一区二区三区| 亚洲在线视频观看| 99热亚洲精品| 性色av香蕉一区二区| 久久久999免费视频| 日本乱人伦a精品| 久久久www成人免费精品| 精品人妻一区二区三区四区在线| 国产精品国产亚洲精品看不卡15 | 官网99热精品| 欧美精品www在线观看| 国产免费裸体视频| 亚洲影院色在线观看免费| 91精品在线影院| 日韩av一区二区三区在线观看| 久久精品日韩精品| 欧美日韩一级在线| 欧美成人精品在线播放| 精品视频一区二区| 欧美日韩ab片| 不卡日韩av| 青青青青在线视频| 欧美黄网免费在线观看| 国产乱人伦真实精品视频| 中文字幕乱码一区二区三区| 久久香蕉视频网站| 欧美精品一区二区三区三州 | 黄色一级视频在线播放| 九九久久久久久久久激情| 91国产丝袜在线放| 美女被啪啪一区二区| 亚洲xxxx视频| 国产精品欧美亚洲777777| 国产精品自拍网| 日韩欧美精品一区二区三区经典| 久久精品一偷一偷国产| 国产精品亚洲a| 欧洲成人一区二区| 中文字幕日韩一区二区三区不卡| 久久久久国产精品视频| 麻豆亚洲一区| 日韩欧美一区二区在线观看| 久久天天躁狠狠躁夜夜躁2014 | 91国产视频在线播放| 欧美亚洲日本网站| 国产精品成人品| 久久这里只有精品23| 国内偷自视频区视频综合| 亚洲免费不卡| 久久久久久久久久久成人| 蜜桃视频成人| 日韩av成人在线观看| 久久久精品久久久| wwwwww欧美| 亚洲精品偷拍视频| 国产精品电影观看| 国产成人亚洲欧美| 91免费欧美精品| 美女一区视频| 日本高清久久一区二区三区| 久操成人在线视频| 国产精品区一区二区三含羞草| 久久久一本精品99久久精品| 国产日韩欧美中文在线播放| 日韩av大全| 亚洲精品乱码久久久久久自慰| 国产精品人人做人人爽| 国产成人精品免费视频| 成人伊人精品色xxxx视频| 欧美精品与人动性物交免费看| 日产国产精品精品a∨| 国产精品日韩欧美综合| 91精品网站| 国产精品亚洲第一区| 国内自拍中文字幕| 欧美日韩精品不卡| 日本高清久久一区二区三区| 亚洲女人毛片| 亚洲一二三区精品| 久热精品视频在线观看| www.欧美精品| 久久久久久国产三级电影| 久久久久狠狠高潮亚洲精品| 97免费视频在线| 成人av色在线观看| 国产精品一区视频网站| 精品91免费| 欧美成人高潮一二区在线看| 日韩色妇久久av| 日韩av不卡在线播放| 亚洲 欧洲 日韩| 色欲色香天天天综合网www| 亚洲一区二区三区精品在线观看 | 久久美女福利视频| 国内精品**久久毛片app| 精品一区日韩成人| 蜜桃久久影院| 国产一区二区三区精彩视频| 国产欧亚日韩视频| 高清一区二区三区视频| 国产剧情久久久久久| 国产精品一二三视频| 成人av男人的天堂| 91久久国产综合久久91精品网站| 91精品国产精品| 国产爆乳无码一区二区麻豆| 久久精品久久精品国产大片| 九九九久久久| 国产激情美女久久久久久吹潮| 久久久精品有限公司| 91精品国产高清| 国产xxxx振车| 国产精品丝袜久久久久久不卡 | 欧美日韩系列| 狠狠色噜噜狠狠色综合久| 国内视频一区| 国产精品午夜视频| 久久综合给合久久狠狠色| 久久99精品久久久久久久久久| 日韩中文字幕视频在线观看| 国产经典久久久| 久久久久久久免费视频| 久久视频这里只有精品| 欧美精品在线免费播放| 亚洲五月六月| 日本a视频在线观看| 欧美二区在线视频| 成人精品小视频| 久久av高潮av| 久久综合色影院| 亚洲精品在线免费| 青青青青草视频| 国产天堂视频在线观看| 91精品国产成人www| 久久久久五月天| 久久中国妇女中文字幕| 亚洲 国产 欧美一区| 欧美精品一区二区三区在线看午夜| 国产日韩在线精品av| 91精品国产91久久久久福利| 日韩中文在线中文网三级| 欧美激情伊人电影| 无码播放一区二区三区| 免费看国产一级片|