精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

當你在糾結學Python還是Java時,大二學生已經開始造編程語言了!

開發 開發工具
我在之前的文章中說過多次,大學生在校期間應該去搞定那些基礎知識,因為大學生沒有工作的壓力,有大塊的時間,基礎知識相對枯燥,要想有成就感,可以做一些簡單的系統,例如一個簡單的編程語言,一個有基本功能的OS......

 導讀

我在之前的文章中說過多次,大學生在校期間應該去搞定那些基礎知識,因為大學生沒有工作的壓力,有大塊的時間,基礎知識相對枯燥,要想有成就感,可以做一些簡單的系統,例如一個簡單的編程語言,一個有基本功能的OS......

楊韜是我的知識星球“碼農翻身”的一個大學生,他在星球提到做了一個簡單的編程語言解釋器,我建議他把過程給寫出來, 就是這篇文章了。

[[257924]]

下文的“我”就是楊韜。

為什么要自己寫一個解釋器?

從大學開始學習編程, 現在已經快兩年了, 接觸了不少的編程語言。最開始入門學了C語言; 后來想寫安卓軟件, 學了Java; 接著接觸后臺開發,學了Python; 后面又陸續地接觸Go, Dart, C++。 仔細算算, 已經接觸過6門語言了!

但是仔細想想我似乎又什么也沒有學到,過年回家的時候, 遇到一個對計算機很感興趣的四年級的小朋友(ps: 小朋友會寫一點點python, html, 現在的小孩也太強了), 問了我諸如計算機上面的程序是怎么跑起來的, 代碼是怎么運行這種看似很基礎的問題, 可悲的是我居然對這些問題似懂非懂, 不能給小朋友很清楚地解釋出來。

我都不好意思說自己是學計算機的了, 居然連這些基礎的問題都沒有搞清楚。 這是促使我去深入學習編譯原理, 計算機組成原理和操作系統這些基礎知識的重要原因。

學習編譯原理最簡單的方法(對我來說)大概是自己實現一門編程語言, 雖然費時費力, 不過能對整個過程有個清晰的了解。

另外一個重要原因是有一種想要自己寫一門語言的沖動。 尤其是在學了這么多門語言之后就會萌生出這樣的念頭。不同的語言有不同的讓我喜歡的特性: Python有漂亮簡潔的語法, 靜態語言Go實現了像動態語言一樣的鴨子類型的接口, Dart有很多語法糖和方便的異步… (當然這些特性是仁者見仁, 智者見智的)。

但是又不能找到一門語言,具備所有自己喜歡的特性, 那就自己寫一個好了,可以把自己喜歡的特性都加上。

學習的過程

學校的編譯原理的課程安排在了大三, 我還沒有學過, 所以一切都是從0開始。 我先看了前橋和彌寫的《自制編程語言》一書, 這本書的實戰性很強, 沒有介紹太多的理論知識, 而是直接教你怎么寫編程語言。

我從這本書中了解了寫一門編程語言的大致過程和大致的思路。 不過書中的很多解釋不夠充分, 對于完全沒有接觸過編譯技術的人來說還是有點費解(也可能是我自己理解能力不夠好)。

我也是在自己了解了大致思路后就開始自己嘗試寫, 然后再回過頭來看書, 看作者提供的源代碼, 才能比較好地了解作者是在干嘛。

還有一些書中內容介紹的不夠充分, 比如yacc和lex的使用。 這種工具畢竟比較流行, 網上找找別人寫的博客多看看, 自己再多嘗試就能很好地掌握。

因為更喜歡在實戰中學習, 所以前期只是了解了大致思路沒有特別深入的學習理論知識, 就直接開始碼代碼了。 在具體實現的過程中遇到問題, 再去看書或是網上尋找答案。

設計和實現

我選擇寫一個動態語言的解釋器, 而不是靜態語言的編譯器。

之所以要寫解釋器, 不是因為我更偏好動態語言, 其實相比而言我更喜歡靜態語言。 真正的原因是, 我覺得這只是***次嘗試, 很多東西都不會, 肯定會寫得很爛的,不如先就寫動態語言, 等真正學得比較好了, 再回過頭來寫一門自己喜歡的語言。

正式開始寫代碼前, 我還要給這門語言取個名字,雖然只是個練手的項目, 不過還是得有個名字吧。 取名字還正不是一件容易得事, 就像給函數或者類取一個恰如其分的名字一樣。

聽說恰當的函數名或類名還能反應整個項目的設計是否合理, 邏輯清晰, 語言的名字似乎并沒有這樣的意義。

我腦袋里閃過的***個名字是Cactus(仙人球, 仙人掌)。 我覺得很喜歡這個名字, 就把Cactus暫時留個我要寫的靜態語言了(希望我真的會寫, 沒有白留)。 仙人球是植物(正好是靜態的), 同樣帶刺的動物是刺猬(Hedgehog)。 動物是動態的, 正好符合我要寫的動態語言, 于是就叫Hedgehog了。

前面提到了lex和yacc, 我在自己寫的編程語言里面也使用了這兩個工具做詞法分析和語法分析。 既然是自己要寫一門語言為什么還要用別的工具呢? 當然不能以”不重復造輪子”作為借口, 我就是為了造輪子才想要自己寫編程語言的, 真正的目的是為了簡單。

前面提到我把這當作一個練手的項目, 為了熟悉整個過程, 我把簡單作為了整個過程的一個原則,很多地方我可以想到更優但更加復雜的實現方式, 但是大多數仍然采用了最簡單最能保持整個項目邏輯清晰的實現方式。 我更多的目的是為了了解整體過程, 整體結構, 所以局部就盡量保持簡單了吧(當然比較懶也是重要原因)。

當然后續詞法分析和語法分析肯定會自己實現一下, 畢竟這算是編譯器或者解釋器的前端, 也很重要的。

解釋器是用C語言寫的。 之前從來沒有用C語言寫過這么大的項目(雖然到目前一共也就2千多行的代碼), 這次也讓我學會了很多C語言的高級用法。 比如 :

  1. void (*func)(void) 

是一個返回值為空, 參數為空的函數指針;

  1. void (*signal(int signo,void(*func)(int)))(int); 

是一個返回值為函數指針, 參數為(int signo,void(*func)(int)), (一個int, 一個函數指針)的函數, 其中函數名為signal。

之所以用函數指針, 是為了用C語言寫面向對象, 最開始我完全是使用面向過程, 只是簡單的通過不同文件實現簡單的封裝。

后來越寫越大, 就出現各種問題, 比如頭文件交叉引用引起編譯器報錯。 還有很多地方用面向對象可以更好地實現, 比如要處理表達式的創建和求值, 如果能有一個表達式的接口, 就能利用多態的好處, 不需要再寫一個巨大的switch, case語句, 使用枚舉來判斷不同的表達式, 調用不同的函數。

我聽說限制程序員的不是編程語言而是編程思維, C語言當然也可以寫面向對象, 數據可以封裝在結構體中, 再給結構體加上函數指針就實現了類的方法。

多態也可以通過自己實現虛函數表, 在對象初始化時把函數指針指向不同的函數就實現了。 大多數的面向對象的特性都有相應的方法實現, 只不過是語法上不如原生支持面向對象的語言簡單罷了。

還有一些問題是關于這門語言本身的設計問題:

(1) for, if這類的語句中變量的作用域問題

一開始我設計的是Java, C++一樣的, for, if的代碼塊中聲明的變量, 它作用域只存在于整個代碼塊中。 后來想到了這是一門弱類型的動態語言, 獨立的運行環境也沒什么特別的用處, 于是就改成了和Python一樣: 這種代碼塊都沒有獨立的運行環境。

(2) 把函數看成什么的問題。

比如Java這種純粹面向對象的語言, 函數只能是對象的方法。 我這里是把函數作為一種基礎數據類型, 像字符串一樣, 可以直接用于傳參, 賦值。

畢竟這是自己的編程語言,可以把它設計成自己喜歡的樣子, 所以大多數的設計都是根據自己的想法, 自己覺得怎么合理就怎么來(當然不是天馬行空地胡亂設計, 而是根據自己地實際經驗選擇合理的設計吧)。

當然最開始寫一門編程語言的時候,有很多地方不知道怎么設計才合理, 這個時候我就參考自己學過的編程語言, 想想它為什么要采用這種設計, 出于怎樣的考慮。

這樣的思考, 讓我對之前學過的編程語言有有了更加深刻的認識, 可以說是受益匪淺吧。 我漸漸地也認識到編程語言的設計很多時候都是設計者編程思維的體現。

簡單地介紹一下Hedgehog

說了這么多, 是時候簡單地介紹一下我寫的這門編程語言了。目前還很簡陋, 后面再慢慢地完善它吧。

hedgehog 的多數設計和 python 比較相似, 無需聲明變量類型, if,for等語句沒有塊級作用域。

語法上又有點像 go 語言: if, for后面不需要(), 但是后面的代碼塊都必須加{};

沒有while, 不過有for condition {}來替代。 不過行尾必須加;這點和 go 不同。

大多數設計都是為了簡化實現方式, 比如必須加{}, ;是為了簡化語法的解析。

數據類型

  1. a = 10;  //int 
  2. b = 3.14;//float 
  3. c = true;//boolean 
  4. d = null;//null 
  5. s = "Hello, World!";//string 

控制語句

  1. a = 10; 
  2. if a > 10 { // `()` is not necessary. 
  3.     b = a+20; 
  4. } elsif a==10 { 
  5.     b = a+10; 
  6. else { 
  7.     b = a-10; 
  8. print(b); 

循環

  1. for i=0; i<10; i=i+1 { 
  2.     print(i); 
  3.     if i>=4 {break;} 
  4. i = 0; 
  5. for i<10 { 
  6.     if i<5 {continue;} 
  7.     print(i); 

函數

function也被看作一種值(基本數據類型), 不過目前還沒有對它實現垃圾回收, 所以直接以函數賦值或者其他操作會出現內存錯誤。

  1. // 模仿python首頁的函數 
  2. func fbi(n) { 
  3.     a, b = 0, 1; 
  4.     for a<n { 
  5.         print(a); 
  6.         a, b = b, a+b;//支持這種賦值方式 
  7.     } 
  8. fbi(100); 
  1. func factorial(n) { 
  2.     if n==0 {return 1;} 
  3.     return n*factorial(n-1); 
  4. print(factorial(5)); 

目前只實現了一個原生函數print。 print接收一個基本數據類型作為參數, 輸出并換行, 或者無參數, 直接換行。

運算符

大多數與c保持一致, 除了&, |。 因為沒有提供位運算的功能, 所以直接用這兩個符號表示邏輯與和邏輯或。

  1. b = 2; 
  2. a = 10; 
  3. if a>20 & b<10 { 
  4.     print("`b` is less than 10 and `a` is greater than 20"); 
  5. if a>20 | b<10 { 
  6.     print("`b` is less than 10 or `a` is greater than 20"); 

“What I cannot create, I do not understand。” 我喜歡這種從自己制作過程中學習的方式。 這種方式給了我一種踏實感, 讓我覺得自己是真地明白了整個過程,而不是僅僅記住了什么公式, 學會了調用新的API。

【本文為51CTO專欄作者“劉欣”的原創稿件,轉載請通過作者微信公眾號coderising獲取授權】

 

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2015-03-13 10:40:37

2020-08-07 07:39:19

編程語言JavaPython

2020-06-01 08:46:35

機器學習數學Python

2017-09-04 17:35:27

麻省理工學院細菌乳膠

2018-07-20 10:32:13

編程語言JavaPython

2017-02-24 14:05:14

AndroidMVCMVP

2019-04-22 09:58:25

C語言Web操作系統

2022-07-20 13:55:28

算法AI人工智能

2019-07-01 08:00:00

編程語言Java技術

2010-03-11 15:39:01

Python編程語言

2021-04-06 15:20:05

編程語言JavaIT

2021-01-13 14:55:54

JavaPython開發

2022-09-16 07:32:15

編程計算機命令

2017-02-07 09:37:46

2023-02-23 19:39:06

華為汽車業務

2020-06-05 08:31:29

編程語言RPython

2020-09-16 13:08:17

微信兒童版天眼查騰訊

2019-08-05 14:34:41

編程語言技術Java

2024-07-10 12:51:34

2021-09-18 14:59:58

語言PythonC語言
點贊
收藏

51CTO技術棧公眾號

一区二区三区亚洲变态调教大结局 | 亚洲一区二区在线播放相泽| 不卡一区二区三区四区五区| 国产91精品一区| 成人久久综合| 精品国产区一区| 国产v亚洲v天堂无码久久久| 怡红院av在线| 91老师国产黑色丝袜在线| 国产精品影片在线观看| 久久免费小视频| 日产精品一区二区| 日韩电影中文字幕| 无码国产精品一区二区高潮| 婷婷六月国产精品久久不卡| 亚洲综合另类小说| 亚洲免费精品视频| 性感美女一级片| 国产在线精品一区二区夜色 | 九九热只有精品| 国产午夜一区| 亚洲国产精品高清久久久| 97超碰人人爽| 3d欧美精品动漫xxxx无尽| 亚洲一区二区三区视频在线播放| 日韩国产高清一区| 天堂在线视频观看| 国产成人亚洲精品青草天美| 国产中文字幕91| 亚洲国产成人精品女人久久| 亚洲美女啪啪| 久久久视频精品| 中文字幕av播放| 日本一二区不卡| 亚洲欧美成人网| 女同性恋一区二区三区| 精品中文在线| 欧美高清性hdvideosex| 999精品网站| 五月天av在线| 欧美午夜影院在线视频| www..com日韩| 婷婷色在线播放| 亚洲女子a中天字幕| 最近看过的日韩成人| porn视频在线观看| 久久久777精品电影网影网| 精品日韩电影| 少妇高潮一区二区三区69| 懂色av中文字幕一区二区三区| 91免费看片在线| 国产视频手机在线| 国产福利一区二区三区视频在线 | 国产精品吊钟奶在线| 久久久久99精品成人片我成大片| 日韩午夜电影| 欧美亚州一区二区三区| 国产超碰人人爽人人做人人爱| 亚洲精品一级| 8x拔播拔播x8国产精品| 800av免费在线观看| 国产模特精品视频久久久久| 清纯唯美亚洲激情| 成人黄色三级视频| 精品一区免费av| 91丨九色丨国产| 免费观看成年人视频| 成人97人人超碰人人99| 久久综合入口| 97电影在线| 亚洲精品成人悠悠色影视| 成人毛片100部免费看| 久草在线视频资源| 欧美日韩免费在线观看| 欧美一级裸体视频| 大胆国模一区二区三区| 欧美mv和日韩mv国产网站| 2一3sex性hd| 国产欧美久久一区二区三区| 日韩在线免费av| 国产成人无码aa精品一区| 亚洲美女少妇无套啪啪呻吟| 国产成人精品免费久久久久| 国产一区二区三区视频免费观看 | 亚洲av无码国产精品久久| 国产一区二区三区日韩精品 | 国产精品99精品无码视| 亚洲欧美日韩精品一区二区| 国产精品网站视频| 人妻少妇精品无码专区| 国产欧美日韩另类一区| japanese在线播放| 成人开心激情| 精品欧美一区二区久久| 亚洲码无人客一区二区三区| 欧美在线视屏| 日本久久久久久久久久久| 国产视频第一页| 国产午夜精品在线观看| 欧美交换配乱吟粗大25p| 成人免费看黄| 精品少妇一区二区三区视频免付费| 五级黄高潮片90分钟视频| 欧美高清视频在线观看mv| 性色av一区二区三区红粉影视| 欧美高清69hd| 91小视频在线| 人人妻人人澡人人爽欧美一区| 欧美专区福利免费| 精品国产乱码久久久久久图片 | 性久久久久久久久久久| 日韩综合一区| 欧美一级视频一区二区| 精品人妻少妇嫩草av无码专区 | 青青草成人免费| 另类av一区二区| 国产精选一区二区| h片在线免费| 欧美日韩在线播放三区| 黄色国产在线观看| 好看的亚洲午夜视频在线| 国产精品一区二区女厕厕| 人成免费电影一二三区在线观看| 亚洲欧美激情插| 亚洲精品手机在线观看| 国内精品视频在线观看| 7m精品福利视频导航| 人妻少妇精品无码专区| 亚洲尤物视频在线| 中文字幕在线视频一区二区| 久久国产成人午夜av影院宅| 日韩美女视频免费看| 婷婷视频在线观看| 午夜精品福利久久久| 亚洲区 欧美区| 欧美在线免费一级片| 成人在线观看视频网站| 亚洲成人三级| 欧美日韩成人一区二区| 国产99在线 | 亚洲| 久久久久网站| 欧美日韩一区二区三区在线观看免 | 视频福利在线| 精品成人av一区| 日本五十肥熟交尾| 亚洲精品极品| 精品久久一区二区三区蜜桃| sis001亚洲原创区| 亚洲精品99久久久久中文字幕| 久久久精品一区二区涩爱| 国产盗摄视频一区二区三区| 992tv快乐视频| 日韩不卡在线视频| 欧美精品久久一区二区| 欧日韩在线视频| 欧美日韩国产色视频| 日韩网站在线播放| 久久一综合视频| 亚洲精品一区二区三区樱花| 精品69视频一区二区三区| 色小说视频一区| 国产尤物在线观看| 一区二区三区在线观看视频| 一级黄色片毛片| 9国产精品视频| 欧美在线日韩精品| 成人国产精品| 欧美成人免费网| 亚洲乱码国产乱码精品精软件| 亚洲第一综合色| 国产美女喷水视频| 免费观看一级特黄欧美大片| 欧美精品一区二区性色a+v| 日韩视频一二区| 97在线视频精品| 成人三级黄色免费网站| 7777精品久久久大香线蕉| 精品处破女学生| 久久日一线二线三线suv| 国产小视频精品| 欧美三级黄美女| 欧美午夜精品久久久久免费视| 久久免费资源| 久久久久久久久中文字幕| 国产中文字幕在线看| 777久久久精品| 国产九色在线播放九色| 自拍偷拍亚洲欧美日韩| av2014天堂网| 日本91福利区| 欧日韩免费视频| 日韩中文在线电影| 精品国产免费人成电影在线观...| 日本一区二区三区视频在线| 欧美另类交人妖| 同心难改在线观看| 91精品国产综合久久久蜜臀粉嫩 | 欧美三级三级三级爽爽爽| 欧美日韩精品在线观看视频| 国产欧美1区2区3区| 国产香蕉精品视频| 久久精品国产亚洲aⅴ| 男人用嘴添女人下身免费视频| 99精品电影| 欧美日韩在线观看一区| 91精品国产乱码久久久竹菊| 国产欧美日韩中文字幕| 天堂中文在线播放| 欧美国产日韩视频| 欧美成人三区| 亚洲最新视频在线| 天天摸天天碰天天爽天天弄| 欧美一区二区三区日韩| 亚洲精品国产精品乱码视色| 天天爽夜夜爽夜夜爽精品视频| 精品无码久久久久成人漫画| 国产欧美视频一区二区| 波多野结衣影院| 国产一区在线精品| 一级片视频免费观看| 噜噜噜躁狠狠躁狠狠精品视频 | 欧美日韩亚洲在线| 国产伦精品一区二区三区免费优势| 国产一区二区在线播放| 成人在线爆射| 欧洲亚洲在线视频| 美女高潮在线观看| 久久久女人电视剧免费播放下载| av在线免费播放| 久久精品久久精品亚洲人| jizz亚洲| 亚洲最新在线视频| 成人77777| 夜夜嗨av一区二区三区四区| 欧美女v视频| 亚洲欧美精品中文字幕在线| 午夜视频免费看| 日韩黄色高清视频| 免费理论片在线观看播放老| 日韩电影大全免费观看2023年上| 日本韩国在线观看| 精品成人佐山爱一区二区| 亚洲av少妇一区二区在线观看| 7799精品视频| 国产片高清在线观看| 91精品国产高清一区二区三区| 一区二区不卡视频在线观看| 欧美日韩国产另类一区| 91麻豆一区二区| 欧美一区二区在线视频| 国产福利资源在线| 日韩欧美亚洲国产另类| 亚洲精品成人区在线观看| 精品国产伦一区二区三区观看方式| 亚洲精品国产精品国| 欧美精品一区二区三区蜜臀| 欧美一区二区黄片| 国产视频久久久| av资源网站在线观看| 深夜福利日韩在线看| 免费av网站在线看| 欧美福利视频在线| 成人ssswww在线播放| 国产91在线播放九色快色| 日本精品在线一区| 91日本在线观看| 国产精品视屏| 欧美日韩电影一区二区| 日韩精品dvd| 欧美一区二区视频在线播放| 99精品视频网| 亚洲免费看av| 国产精品99久久久久久有的能看| av免费观看不卡| 久久久久国产免费免费| 国产农村妇女精品一区| 一区二区三区免费观看| 天天操天天操天天操天天| 欧美午夜精品久久久久久孕妇| 国产男男gay网站| 亚洲国产欧美一区二区三区久久| 春暖花开成人亚洲区| 欧美裸体xxxx极品少妇| 精品三级久久| 国产日本欧美一区| 美女呻吟一区| 亚洲一区二区三区免费看| 伊人久久亚洲影院| 91色国产在线| 成人v精品蜜桃久久一区| 女人黄色一级片| 亚欧色一区w666天堂| 中文资源在线播放| 亚洲国产精品高清久久久| 日本亚洲精品| 欧美最猛性xxxx| 日韩中文字幕在线一区| 日韩中文一区| 亚洲欧洲一区二区天堂久久| 五月天婷婷亚洲| 久久久久九九视频| 日本五十路女优| 6080日韩午夜伦伦午夜伦| 黄色在线网站| 欧美精品激情在线| 久久影院一区二区三区| 欧美亚洲丝袜| 亚洲国产二区| 欧美色图校园春色| 中文字幕精品三区| 婷婷激情五月网| 亚洲成人免费在线视频| 免费观看久久久久| 国产精品96久久久久久又黄又硬| 成人三级毛片| 免费观看黄色的网站| 热久久久久久久| 黄色工厂在线观看| 亚洲国产精品一区二区www在线| 国产有码在线观看| 中文字幕欧美在线| 欧美magnet| 久久综合九色欧美狠狠| 国产精品日本| 欧亚乱熟女一区二区在线| 一区二区三区日韩在线观看| 88av在线视频| 少妇精69xxtheporn| 香蕉久久免费电影| 欧美日韩国产精品一区二区| 在线亚洲精品| 日韩av手机在线播放| 污片在线观看一区二区| 免费观看黄色av| 色综合久久久久久中文网| 日本一区二区乱| 国产乱子伦精品视频| 另类小说一区二区三区| 黄色片网站在线播放| 欧美色图第一页| 日本高清中文字幕在线| 国产精品自拍小视频| 久久精品播放| 亚洲色图偷拍视频| 《视频一区视频二区| 国产美女主播在线观看| 欧美成在线观看| 成人搞黄视频| 亚洲 欧美 日韩 国产综合 在线| 99久久伊人精品| 波多野结衣视频网站| 亚洲精品资源在线| 成人在线黄色| 熟妇熟女乱妇乱女网站| 国产美女精品人人做人人爽| 青娱乐免费在线视频| 精品国产一区二区在线观看| 激情视频网站在线播放色| 欧美一区二区三区成人久久片 | 国产精品久久久久久久久久尿| 国内成人精品| 午夜影院免费观看视频| 亚洲午夜免费电影| 青青草在线播放| 国产精品久久一| 亚洲mv大片欧洲mv大片| 欧美激情 亚洲| 日韩欧美精品中文字幕| 日本综合在线| 成人av免费在线看| 亚洲男女自偷自拍| 免费黄色在线网址| 日韩无一区二区| 乡村艳史在线观看| 一区二区三区在线视频看| 国产福利一区二区| 日韩在线视频不卡| 久久久精品中文字幕| 国产乱人伦丫前精品视频| 冲田杏梨av在线| 亚洲一区欧美一区| 精品久久av| 97伦理在线四区| 夜夜夜久久久| 日韩三级久久久| 日韩精品欧美激情| 亚洲免费看片| 日韩少妇内射免费播放18禁裸乳| 国产精品色婷婷久久58| 成人午夜视频一区二区播放| 国产成人精品久久久| 欧美三级网页| 波多野结衣家庭教师在线观看| 精品国免费一区二区三区| 欧美特大特白屁股xxxx| 国产一区二区三区在线免费| 日本一区二区高清| 无码h黄肉3d动漫在线观看| 91精品国产综合久久香蕉最新版| 亚洲欧美大片|