python 嵌入式解释器 python 的解释器种类以及相关特点
淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】
Python是一种解释型编程语言,它的编译原理、实现逻辑和内在哲学与其他编程语言有所不同。在本文中,我将通过具体实例分模块讲解Python的编译原理、实现逻辑和内在哲学。
解释器的是由一个编译器和一个虚拟机构成。编译器中的语法分析器将词法分析器生成的token序列转换为抽象语法树(AST)。例如,对于以下代码:
x=2 + 3
语法分析器将生成如下AST:
Assignment
? ? left=Name(x)
? ? right=Add
? ? ? ? left=Constant(2)
? ? ? ? right=Constant(3)
这个AST表示一个赋值语句,其中左侧是一个名称(x),右侧是一个加法表达式,加法表达式由两个常量(2和3)相加组成。语法分析器负责将token序列转换为AST。
编译器分析语法后,以AST将源代码转换成字节码文件,而虚拟机负责执行字节码。所以,解释型语言其实也有编译过程,只不过这个编译过程并不是直接生成目标代码,而是先转述为中间代码(字节码),然后再通过虚拟机来逐行解释执行字节码
对于以下代码:
x=2 + 3
print(x)
解释器会执行以下操作:
解析AST并将其转换为可执行代码
执行代码,将2和3相加,并将结果存储在变量x中
调用print函数,打印x的值(5)
编译器是Python解释器的核心组件。它将AST转换为可执行代码并执行它。
Python编译器的实现逻辑与编译解释过程密切相关。编译器将源代码转换为字节码或机器码,而虚拟机则执行这些字节码或机器码。Python编译器的实现逻辑可以通过以下实例来说明:
假设有如下Python代码:
a=3
b=4
c=a + b
print(c)
Python编译器会首先将这段代码解析成抽象语法树。然后,编译器将抽象语法树转换为字节码:
?1? ? ? ? ? ?0 LOAD_CONST? ? ? ? ? ? ? ?0 (3)
? ? ? ? ? ? ?2 STORE_NAME? ? ? ? ? ? ? ?0 (a)
?2? ? ? ? ? ?4 LOAD_CONST? ? ? ? ? ? ? ?1 (4)
? ? ? ? ? ? ?6 STORE_NAME? ? ? ? ? ? ? ?1 (b)
?3? ? ? ? ? ?8 LOAD_NAME? ? ? ? ? ? ? ? 0 (a)
? ? ? ? ? ? 10 LOAD_NAME? ? ? ? ? ? ? ? 1 (b)
? ? ? ? ? ? 12 BINARY_ADD
? ? ? ? ? ? 14 STORE_NAME? ? ? ? ? ? ? ?2 (c)
?4? ? ? ? ? 16 LOAD_NAME? ? ? ? ? ? ? ? 3 (print)
? ? ? ? ? ? 18 LOAD_NAME? ? ? ? ? ? ? ? 2 (c)
? ? ? ? ? ? 20 CALL_FUNCTION? ? ? ? ? ? 1
? ? ? ? ? ? 22 POP_TOP
? ? ? ? ? ? 24 LOAD_CONST? ? ? ? ? ? ? ?2 (None)
? ? ? ? ? ? 26 RETURN_VALUE
字节码包含了一系列的指令和操作数,这些指令和操作数描述了程序的逻辑。在这个例子中,字节码的第一行指令是LOAD_CONST,它将常量0(即数字3)加载到栈顶。接下来,STORE_NAME指令将栈顶元素(即数字3)存储在变量a中。这个过程会重复进行,直到所有的代码都被转换为字节码。
然后,虚拟机会执行这些字节码。在这个例子中,虚拟机会执行LOAD_CONST指令,将数字3加载到栈顶,然后执行STORE_NAME指令,将数字3存储在变量a中。然后,虚拟机会执行LOAD_CONST指令,将数字4加载到栈顶,然后执行STORE_NAME指令,将数字4存储在变量b中。接下来,虚拟机会执行LOAD_NAME指令,将变量a的值加载到栈顶,然后执行LOAD_NAME指令,将变量b的值加载到栈顶,然后执行BINARY_ADD指令,将栈顶的两个数相加,并将结果存储在栈顶。然后,虚拟机会执行STORE_NAME指令,将栈顶的值存储在变量c中。最后,虚拟机会执行LOAD_NAME指令,将变量print的值加载到栈顶,然后执行LOAD_NAME指令,将变量c的值加载到栈顶,然后执行CALL_FUNCTION指令,调用print函数,将栈顶的值作为参数传递给print函数。最后,虚拟机会执行POP_TOP指令,将栈顶的值弹出,然后执行LOAD_CONST指令,将None(即空值)加载到栈顶,然后执行RETURN_VALUE指令,返回None。
在执行代码时,Python会执行一系列的字节码指令,这些指令被称为Python虚拟机指令。虚拟机指令是Python编译器生成的可执行代码的基本单元。
在这个过程中,编译器和虚拟机密切配合,共同完成了将源代码转换为可执行的字节码并执行的任务。编译器负责将源代码解析为抽象语法树,并将抽象语法树转换为字节码。而虚拟机则负责执行字节码,并根据指令和操作数的指示,完成程序的逻辑。这种分离的方式,使得Python具有了很好的灵活性和扩展性。可以通过修改编译器和虚拟机来改变Python的行为,从而实现各种功能和特性。
Python的内在哲学可以归纳为以下几个原则:
显式胜于隐式:Python鼓励程序员编写清晰易懂的代码,并且对隐式行为进行限制。
简洁优于复杂:Python鼓励使用简洁的语法和代码风格来提高代码的可读性和可维护性。
可读性至上:Python鼓励使用易于理解和自然的代码风格,以便其他程序员可以轻松理解和修改代码。
一致性是关键:Python鼓励使用一致的编码风格和规范,以便所有程序员都可以编写易于理解和维护的代码。
Python的内在哲学强调代码的可读性和简洁性,使得Python成为一种广泛使用的编程语言。Python也有着强大的标准库和生态系统,可以轻松地实现各种任务和应用。
由ChatGPT生成
OpenAI鍙戝竷GPT-4锛涚洰鍓嶆渶瀹屾暣鐨凜hatGPT璧勬簮搴擄紱涓枃鐗堟彁绀鸿瘝宸ョ▼鎸囧崡锛汚I棰犺鎾浣撻獙锛汣hatGPT寮曞彂10澶ц亴涓氬嵄鏈?| ShowMeAI鏃ユ姤
openai gpt,openai gpt-3,opengpg,openai gpt4榄骞荤棣e涔板箍锛澶ч浣跨ㄤAIGC?/h2>ユュ杈 | 浜у宸ュ蜂琛涓搴ㄥぇ | А 硅虫敞璇璁烘锛
e涔绁绾у箍锛榄骞荤棣 璁茶堪浜涓跺涔ㄧ棣濂濡涔锛涓骞讳濂濡浜ㄣ?/p>
骞垮朵澶ч浣跨ㄤ Stable Diffusion锛缁?D涓瀹锛灏烘涓杩琛浜瀹缇锛甯稿锛
OpenAI缁浜甯GPT-4涓涓浠AI璇瑷妯″锛惧杈?/h2>娉ㄦ缁锛婚涓锛涔缁婚间ㄥ~
OpenAI 瀹e姝eㄥ GPT-4锛Generati【【微信】】rmer 4锛棰璁缁㈡ā?4锛杩AI璇瑷妯″绯诲涓颁骇锛涓 ChatGPT ?New Bing 绛搴ㄧ搴渚?/p>
GPT-4 涓涓?strong>澶妯℃澶у璇瑷妯″锛ュ?strong>惧?/strong>杈ワ?strong>浠ユ褰㈠杈?/strong>锛锛涔 OpenAI ╁娣卞害瀛涔伴绋纰界?GPT-4 瀵逛璁稿板烘澶姣浜虹被宸锛浣瀹ㄥ绉浣颁涓瀛藉?benchmark 涓锛宸茶〃板哄浜虹被稿姘村钩?/p>
荤ヨ达GPT-4 藉瑙e惧锛锋瓒绾у杩ㄧ藉锛骞朵瑙e冲伴鹃棰纭搴浠や汉?/strong>OpenAI 婕绀轰?GPT-4 涓浣跨ㄥ烘锛
- 杈ヤ寮姊撅瑙i句腑姣涓ㄥ绗瑰ㄥ
- 瀵瑰捐〃涓版杩琛浣锛骞惰烘ㄧ杩绋缁
- 瑙h璇棰锛杩琛姣杈澶板杩绠骞剁鸿$杩绋?/li>
- 哄剧涓瀵诲父涔澶?/li>
- 璇昏烘杩琛荤锛骞跺绛充涓ヨ圭缁棰
- 瑙i瀛剧锛瑙f瀛涓姣诲璁?/li>
- 瑙i璁藉烘极
灏界″藉己澶э浣 GPT-4 涓╂ GPT 妯″锋镐技灞э崇缁涓绗浜瀹姝ゅ浠朵瀹ㄥ?/p>
村璇缁淇℃瑙ュ?GPT-4 Technical Report
Snipd 涓娆剧瑰濂界ㄧ瀹㈠锛灏杩骞存NLP锛惰瑷澶锛搴ㄥ颁浜у涓锛ㄥぇ抽涓绮惧瀹浣淇℃锛瓒绾у浜淇℃峰搴锛渚浜杩涔棰瑕瀹㈡跺浣楠锛浜у浣跨ㄨ捣ワ浜瑰澶锛涓昏濡涓锛?/p>
-
Auto-Summery 鸿芥瑕蹇浜瑙d涓瀹㈢瀹规讹ゆ宸辨磋叮?/p>
-
Auto-Highlights 鸿界簿?瑕规荤锛逛究蹇浜瑙f瀹㈢瑕广?/p>
-
Auto-Chapters 鸿界褰浼缁姣ㄧ瀛骞跺绔锛浠ュ府╀瑙f瀹㈠瀹癸骞跺揩瀹浣版磋叮ㄥ
-
Auto-Snips 鸿界璁瑕瑰?snipd 锛搴ㄥ氨浼ㄦ涓ㄥ瀹硅癸绗璁般?/p>
-
瀵煎哄版颁浠g绗璁板锛渚濡?ReadwiseObsidianLogseq锛瀛ㄦ煎绾锛涔浠ュ浜娈佃ㄧ Snipd 缃椤碉瀛ㄦ荤澹伴崇娈点?/p>
ChatGPT寮?0澶ц涓辨恒缁辫稿锛娑充姣芥宠薄瑕寸?/h2>村浣缁瑰 【【邮箱】】锛?a href="https://link.juejin.cn?target=https%3A%2F%2Fwww.weibo.com%2F6526109246%2【【微信】】" target="_blank" title="https://www.weibo.com/6526109246/【【微信】】" ref="nofollow noopener noreferrer">寰@yiqin_fu
ChatGPT 涓浠涓堕达宸茬ㄥ涓璧蜂宸ㄦ氮锛璁╂浠颁颁杞芥с浣?ChatGPT 浼瀵逛浜涓插伙ㄥ冲ㄥ浠d?/p>
Business Insider 杩涓棰涓涓浜哄+瀵硅锛轰楂辩?10 绫诲伐浣娓?/p>
-
宸ヤ锛缂璁$虹搴杞浠跺伐绋甯版甯锛?/strong>绋搴杞浠跺浜哄版甯戒琚AI浠c界惰$虹绋姹寰澶х斤浣ㄤ涔灏ワChatGPT绛灏澶ч濉琛ョ┖姐?/p>
-
濯浣宸ヤ锛骞垮瀹瑰浣浣伴伙翠釜濯浣宸ヤ锛d骞垮浣伴诲浠讳娑瀹瑰浣瑙诧戒?ChatGPT 绛寮虹褰卞?/p>
-
娉寰琛涓宸ヤ锛寰甯╃娉寰╃锛涓濯浣瑙蹭凤娉寰琛涓宸ヤ锛濡寰甯╃娉寰╃锛璐璐f澶ч淇℃锛跺杩娉寰绠ユ瑙涔浣垮舵浜娑?/p>
-
甯虹绌跺?/strong>甯虹绌跺甯璐璐f堕版锛ㄨ浜版涓纭瀹瓒匡跺╃ㄤ浠扮涓瑗挎ヨ捐℃ラ娲诲锛冲ㄥ惧箍?/p>
-
甯ㄥ藉扮甯藉ㄦ蹇瀛╃ ChatGPT 浣寮讹磋轰ChatGPT 宸茬浠ヨ交惧版璇句锛?/p>
-
宸ヤ锛甯涓浜鸿储¢【锛甯虹绌跺甯甯涓浜鸿储¢【浠ュ涓浜洪棰绛瑕浣澶ч版宸ヤ锛戒颁汉宸ユ鸿界褰卞?/p>
-
浜ゆ?/strong>灏琛浜瑙蹭藉浜遍╀涓?/p>
-
骞抽㈣捐″?/strong>DALL-E锛涓绉藉ㄥ绉惧浜哄伐鸿藉伐凤惧舰璁捐¤涓娼ㄩ瑕?/p>
-
浼璁″?/strong>浼璁¢甯歌瑙涓轰涓绋冲涓锛浣琛涓姝eㄩ涓撮┿?/p>
-
瀹㈡锋′汉绉绌跺 Gartner 2022骞寸涓椤圭绌堕娴锛?027骞达澶╂哄ㄤ汉灏涓哄ぇ绾25%哥涓昏瀹㈡锋℃ChatGPT 稿虫浼杩绉瓒裤锛冲@Szhans锛?/p>
缁骞冲板瑕澶撮ㄥ浣锛ㄦョ浜у璐ㄦ楂瀹广锛跺AI琛烘涓涓绉瀹癸冲浠ヤ负涓ㄦ风涓瀹广?/p>
瀹瑰瑰ヨ达灏辨缁浠讹瀵逛UI/UX璁捐℃ヨ达灏辨design system锛瀵逛澹颁ヨ达灏辨虫锛瀵逛绘ヨ达灏辨椋笺?/p>
AI瓒寮猴骞冲伴瑕澶撮ㄥ浣瓒灏杩瀵瑰熬ㄥ浣ヨ存芥朵唬锛浠浠藉寰?/p>
浣杩芥濂界朵唬锛涓杩灏卞ュ锛浜轰汉藉浠ョAI浣ヨ楂瀹广浠ュ浣藉瀛诲撅板ㄥAI浠ョ存ュ烘极荤冲ㄧ汇靛奖?/p>
涓浣藉浠ヨ娆℃惧ぇ涓涓绾?/strong>?寰@Easy
AI娴娼涓瀹瑰浣锛灏缁涓娆℃风娣姹帮涓 AIGC 藉琚版捣婊╀?a href="https://link.juejin.cn?target=https%3A%2F%2Fm.okjike.com%2ForiginalPosts%2F638c6bb9c3f4e245defdec37" target="_blank" title="https://m.okjike.com/originalPosts/638c6bb9c3f4e245defdec37" ref="nofollow noopener noreferrer">冲@Szhans ?2023 冲 AIGC 澶х褰锛绗浜锛涓姹讳涓浜浣濡浣浣跨 AI 宸ュ风?/p>
ChatGPT寰澶浜虹ㄩ浜锛杩浣跨?ChatGPT 姝g‘濮垮?/h2>
- 璁AI荤伙跺璁chatGPT璁叉浜?@灏妤Plidezus
- 璁GoogleChatGPT榻椋浠?@wong2
- 璇ChatGPT缁瀹㈠绾 @RogerZhu
- 璁ChatGPT 渚AI缁汇绀鸿?@姝歌
- 宸ヤ澶灏浼琚夸唬?@涓绾?/li>
- 哄瀹圭板涓?@Carita缂╀?/li>
- 濡浣璁AI灏棰 @MasterXDai
- GOT 甯ョ浣娴?@ExcitedCosmos
- 涓涓瑕版蹇碉 Prompts Engineering @?AwakenAI
- 濡浣寤哄杩ヤ涓?DAO @VION_WILLIAMS
涓や釜娴琛璇璁ょワ?/strong>
绗涓涓璇璁ょワ瀹褰涓涓澶╂哄ㄤ汉杩楂浼颁?ChatGPT锛涓哄涓涓浠ヨ澶╀负㈢淇℃澶宸ュ凤澶╁杈ヨ烘娈碉澶淇℃?/p>
绗浜涓璇璁ょユ璁や?ChatGPT 浣涓轰涓璇瑷妯″锛规璇姹虹扮棰澶淇℃锛涔灏辨茬缁楠锛瀹骞朵瑙id璇杩涓璁ょュㄥ涓瀵圭锛浣杩涔璇翠浣浼GPT藉?/p>
跺浣浠ョGPT寰澶浜锛
- 缂绋
- 浠ラ绛褰㈠瀛涔涓ㄧヨ?/li>
- ㄤ腑辨涔撮璐ㄩ缈昏
- 绔淇瑰村伴
- 规浣剧存ュ绔?/li>
- 璇
- 甯浣跺璐╂琛璁″ヨ韩璁″
- 渚涔澶х翰灏璇村ф骞垮绛绛妗?/li>
- т璁惧瑙锛渚瀹㈡锋
- 荤涓绡绔瑕
- ?/li>
AI 板寮变浜虹浠峰艰╁ぇ浜浜虹浠峰硷充浣涔浣跨ㄥ?/strong> 浜存ヤ氦缁?AI 锛杞寮辫涓遍╃寮哄跨娉锛AI褰浣涓涓╂涓涓椹鹃┒浣宸卞缁℃у舵锛AI 浣ㄦ甯浣村ソ哄ゆ?/p> 绠ヨ达AI 瀵逛浣ㄦ涓涓锛?/strong> AI借╀村浣瀹渚锛浣╂规锛瀹渚淇℃锛浣哄锛瀹渚瑙锛浣垮崇?strong>浣杩浠戒浠峰间ㄤ淇℃瓒筹翠ㄤ璇娉姝g‘锛ㄤ瀹浣颁浣椋笺浣瑙瑙浣娲瑙浣瀹瑰浣虹ゆ浣挎涓烘ゆ挎璐d换?/strong> 寰@绂归?/strong> Full ChatGPT Prompts + Resources ヨ ㄧ@Barsee 浜锛 700 AI宸ュ枫娴瑙ㄦ浠躲缃绔寤哄伐枫绡 ChatGPT 骞茶揣璧甯镐赴瀵璧婧骞舵缁缁存や腑~ 绀哄伐绋涓绉稿硅扮瀛绉锛ㄤ寮浼绀猴浠ユ颁娇ㄨ瑷妯″锛LM锛杩琛绉搴ㄥ绌朵富棰绀哄伐绋芥╀村ソ扮瑙eぇ璇瑷妯″锛LLM锛藉灞с?/p> 板?LLMs 寮楂搴虫敞锛寤轰杩涓?扮绀哄伐绋锛朵?strong>浜涓绀哄伐绋稿崇拌烘璁插骇璧宸ュ凤寮浜涓濂虫绀哄伐绋锛骞跺ㄥ轰绯诲娣卞ユ绋锛?/strong> 寰涓娉锛涔娆㈣虫?ShowMeAI锛浠灏缁璺杩锛?/p> 璁插骇?宸茬甯浜涓绡涓烘?灏剁璁插骇锛渚浜绀烘搴ㄥ宸ュ风ㄩ㈡杩般?/p> ?寮浜涓濂虫绀哄伐绋锛骞朵ㄤ瀹涓?/p> Datasets Blog, Guides, Tutorials and Other Readings ?瑰 ユュ锛璁㈤璇棰?#ShowMeAIユ锛涓瑙AI棰灞娌匡浣板灞轰锛 ?瑰 浜у宸ュ蜂琛涓搴ㄥぇ锛涓璧峰ㄤ俊娴娼捐捣ュэ?/p>
Full ChatGPT Prompts + Resources瀹村 ChatGPT 璧婧搴?/h2>
Prompt Engineering绀鸿宸ョ-涓?/h2>