999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

從“元宇宙”的視角思考程序語法

2022-01-15 00:48:23陳凱
中國信息技術教育 2022年1期
關鍵詞:符號規則結構

陳凱

維特根斯坦有一個著名的且引發了廣泛討論的論斷:“世界是所有事實的總和,而不是所有事物的總和。”這句話可能離普通人的日常經驗有一些距離,當人們看待世界的時候,往往自然而然地傾向于把事物進行分解:從某個物體還原到分子,再還原到原子,進而到各種基本粒子,于是可能覺得這整個世界就是由這些基本粒子組成的。一些哲學家覺得這樣看待世界的方式是不全面的,世界上的事物之間是有著普遍聯系的,當談論事物的時候,實際上總是無法割裂事物之間的關系來談論事物本身。這里不考慮哲學家們各不相同的世界觀,若撇開現實世界的情況,將目光集中在所謂的“元宇宙”上,那么,“元宇宙”中的世界的特征的確與維特根斯坦所說的“事實的總和”有相當程度的契合。想象一下,某人在“元宇宙”中喝咖啡,這個過程中咖啡的實體實際是不存在的,咖啡的味道可能是一系列信息對你頭腦神經元的沖擊,也就是說,只有喝咖啡這件事存在而已。

“元宇宙”是一個在極短時間里就火爆起來的詞語,它其實指的是一種與人腦高度融合的虛擬世界(而不只是把腦袋罩在一個產生立體影像和聲音的頭盔里),這讓人聯想起電影《黑客帝國》《頭號玩家》,或動畫片《刀劍神域》之類。當前,“元宇宙”尚未進入到日常生活中,但不妨以“元宇宙”的視角來看待許多事實,如程序語言的語法為何是當前所看到的樣子?

什么是“元宇宙”的視角?“元(meta)”這個字本身有著自我指涉的意味,如元數學是用數學的技術來研究數學本身,元數據是用數據來描述數據,元規則是思考如何制定規則去制定某個規則。然而,“元宇宙”不能簡單理解為“用宇宙的方法來描述宇宙”,“元宇宙”的“元”更接近于“元編程”的“元”,對照在編程過程中對編程行為本身的理解和改變的“元編程”,那么“元宇宙”其實就是在虛擬空間的體驗中理解和改變虛擬空間自身。“元”的概念提示了信息技術學科教學中一種獨特的“真實情境”,那就是以我們所使用的各種信息技術工具(尤其是編程工具)本身為情境,自反性地去思考它們何以如此,并且將會如此。

● 積木式編程環境里的事物和關系

當目光凝視在編程本身,而不是用編程的語句解決某個現實問題的時候,就會由這種凝視產生出具有自反性特征的思考。本文主要圍繞積木式編程環境中的積木組裝與日常所用的以文字、符號組成的編程語句這兩者間的差異來展開思考。

積木式編程環境中提供了各種各樣形狀的零件,如果僅僅是將它們分散地拖拽到編輯空間中,那么它們只是看上去存在著,卻沒有任何意義,除非這些積木能被合理地相互拼接起來,這樣,每一塊積木似乎就有了特定的價值。這讓人想起了“意義即存在”的哲學議題,至少在積木式編程環境中,那些未被合理組裝到一起而是散落在編輯空間中的積木塊,就直接被忽略掉了。一段合理的、表達程序代碼的組裝積木圖形是一系列表達事物和表達關系的積木拼接嵌合而成,沒有事物的關系與沒有關系的事物,都是無法用來正確描述出某個功能的。

盡管存在很多種積木式編程平臺,但它們的使用方法是大同小異的。以下活動應當在學生們對積木式編程環境有初步了解和應用后開展,希望學生們不要過多糾結于積木組裝后的實際用途,而以純粹拼圖的方式來審視每一塊積木自身的形狀,審視積木之間的拼接關系,并在一些方面開展實驗并作總結:

哪些拼圖可以用在語句起始?

哪些拼圖可以和上面或下面的語句連接?

哪些拼圖可以嵌入到其他拼圖中去?哪些總是必須嵌入到其他拼圖中?

哪些拼圖既可以嵌入到其他拼圖中,也可以在其中嵌入其他拼圖?

哪些拼圖的縱向寬度會發生變化?為什么這種變化是必須的?

……

積木拼接的形式是需要考慮的重點。與借由鍵盤輸入文字、符號的形式來編程的方式對比,積木式編程實現了對語句的輸入行為的較為嚴格限定,這樣就大大提高了編程初學者完成任務的成功率。如圖1所示,如果說一段普通的用文字、符號的形式寫就的程序代碼表達了某一系列的計算機的計算行為,那么積木式編程環境中組裝成功的積木就是對某段用文字、符號的形式寫就的程序代碼的表達,也就是一種表達的表達。正是這種二階的表達對表達的方式進行了限定。

在拼接積木的過程中,有兩個方向不同的問題值得更深入地思考:其一,是否編程者想要描述的合理的功能,都能夠被這些積木拼出來?其二,任意采用積木拼接出來的圖形,都能對應某個合理的功能嗎?類似這樣的問題,就是元編程問題。

● 形式結構的生成和檢驗

從積木式編程的體驗中帶來的一個啟發是,可以通過限定性的規則來約束語句的結構。這個思想可以遷移到其他編程環境中,對于借由鍵盤輸入文字、符號的形式來編程的大部分環境,可以鼓勵學生們自行創設限定性規則來實現某種拼接游戲,并檢驗其可行性,圖2是其中的一個例子。

以下是拼接規則:所有非字母符號和數字的符號不能當作最左面第一塊積木;等于號后可以接括號;當相鄰左右括號內部無物時,可以在其中放置其他積木,但必須滿足要么兩側都是同類型括號相連,要么兩側都是括號與井號相連的形式;拼接完成后刪除井號和句號,并試著運行代碼。

如果只通過復制和粘貼來產生語句(除了數字需要通過鍵盤輸入),則上述實驗其實模擬了積木式編程產生賦值語句的方法。例如,先放置:

a=

接下來可以放置帶括號的積木:

a=()

接下來可以往括號內放置數字:

a=(#12#)

到這里,就不再有繼續拼接的可能了。將井號刪除后,得到賦值語句a=(12)。

在a=()這一步后也可以放置其他積木,如:

a=(()*())

只要相鄰左右括號是空的,就可以繼續按規則放置,如:

a=((#3#)*(()+()))

……

通過這樣的方式能得到規范的賦值語句。這樣,就能體驗到形式在結構生成中的作用。

換一種角度,假設積木式編程里的積木并沒有設定這些規則,而是允許隨意拼接,那怎樣才能知道,拼接后的哪一些圖案是合理的?如果說,先前的問題是怎么限定規則,使得拼接過程必然生成合法的語句,而現在的問題是,怎么設定規則,使得在任意生成的語句的集合中,檢驗哪些語句符合規則而留存,哪些不符合規則而被過濾掉。

這個問題涉及形式文法的檢驗,撇開相關專業知識,可利用網絡上現成的工具來做直觀的實驗。網站http://web.stanford.edu/class/archive/cs/cs103/cs103.1156/tools/cfg/上提供有一個形式文法的檢驗機,如圖3所示。這里舉兩個簡單的例子,如有下面的生成規則:

S →SD | a | b | c | d

D→| a | b | c | d | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

這兩條規則說明這一類變量名需要以a或b或c或d開頭,后面可以跟上a或b或c或d,也可以跟上某個數字符號,長度不限。很容易利用這個工具檢驗某個符號串是否符合以上的文法規則。規則中,“ε”符號表示空,“|”符號表示或,大寫字母表示可被其他大寫字母、小寫字母或數字替代。

而如圖4所示的這些規則,就能生成合法的賦值語句,為了避免過于復雜,這里沒有考慮括號的使用。

可以僅像對待一個智力玩具那樣對待這個形式文法檢驗工具,將任意的符號組合而成的字符串都交由這個工具進行檢驗,如果字符串被接受,那就說明這個字符串是通過預設的規則合法地產生出來的。

● 規則與自相似

審視積木式編程環境中的積木組裝方式,可以清晰地看出復雜的結構是如何借助重復和嵌套的模式生成的。運算表達式里嵌套的運算表達式、雙分支結構里的雙分支結構、循環結構里的循環結構等,都具有自相似的特點,如圖5所示。

在Python中,分支或循環結構中語句塊的縮進,首要的目的當然是為了能夠正確解析代碼。在教學中,可以強調這種縮進來產生一種具有自相似結構的圖形化美感。如下頁圖6所示,這段拼接而成的代碼,展現了分支結構語句具有創設自相似結構迷宮的可能性。

如下頁圖7、圖8所示,下面這段代碼的作用,是通過輸入布爾值來實現將二進制編碼轉換為十進制數字的功能,顯然,僅有的這幾行代碼只能轉換一位二進制數字,通過自相似的拼接,它就能擴展自己的功能,處理更多位二進制的數字。拼接的規則也很簡單,就是將“#begin”和“#end”中的所有內容,復制粘貼到只有“#”的區域。這個自相似的拼接游戲可以反復進行下去。

在拼接過程中,每一個基本的語句塊都是簡單的,拼接過程也是簡單的。但最終拼接而成的代碼,卻有著能讓旁觀者仿佛陷入迷宮的繁雜結構,這其實也是對現實世界運作規律的一種隱喻。最具有濃厚的自相似特征的程序語言大概就是LISP之類的表處理語言,所有的表達式都是以括號括起的函數名和數據的形式呈現的,圖9就是一個用與非邏輯來實現異或邏輯的LISP代碼。

這種風格的代碼似乎并不是為人類閱讀準備的,但正是這種仿佛強迫癥一樣的自相似結構,為一個按照程序代碼運行的計算機器能夠在運行代碼過程中改寫自身的代碼提供了方便。LISP的出現曾經是人工智能研究里程中的一座高峰,它展現了依靠極少的運算符和極其簡單的結構來實現復雜運算的能力,與自然世界的復雜事物的構成方式具有某種程度的相似性。但運行LISP程序的計算機器,仍然與人的思維能力相去甚遠。在這里,回顧本文開始時提出的問題,如果說“元宇宙”是在虛擬空間的體驗中理解和改變虛擬空間自身,那么LISP等表處理語言的能力已經為實現這樣的理想提供了某種保證。但若要問“元宇宙”能否具有在虛擬的宇宙中理解和改變現實中的宇宙的能力,這個問題的答案卻還十分模糊。

本文從積木式編程的特征談論到普通程序語言中的自相似結構,再談論到具有嚴格自相似特點的LISP語言,從歷史的時間軸看,這是從現今向過往的回溯,從認識的深度看,這是從現象到本質的還原。

猜你喜歡
符號規則結構
撐竿跳規則的制定
《形而上學》△卷的結構和位置
哲學評論(2021年2期)2021-08-22 01:53:34
學符號,比多少
幼兒園(2021年6期)2021-07-28 07:42:14
數獨的規則和演變
“+”“-”符號的由來
論結構
中華詩詞(2019年7期)2019-11-25 01:43:04
讓規則不規則
Coco薇(2017年11期)2018-01-03 20:59:57
變符號
TPP反腐敗規則對我國的啟示
論《日出》的結構
主站蜘蛛池模板: 国产成人禁片在线观看| 国产免费久久精品99re丫丫一| 欧美精品v欧洲精品| 亚洲成人一区二区三区| 九色综合伊人久久富二代| 日韩高清成人| 999精品视频在线| 久久精品国产亚洲麻豆| 免费全部高H视频无码无遮掩| 欧美成人免费一区在线播放| 一区二区在线视频免费观看| 国产产在线精品亚洲aavv| 亚洲欧美日韩中文字幕一区二区三区| 精品久久久无码专区中文字幕| 国产91视频免费观看| 国产免费观看av大片的网站| 中文无码精品A∨在线观看不卡 | 亚洲国产午夜精华无码福利| 欧洲在线免费视频| 国产一区成人| 国产激爽爽爽大片在线观看| 精品三级网站| 欧美日韩亚洲国产| 中文字幕色站| 色综合久久久久8天国| 老司机午夜精品视频你懂的| 波多野结衣中文字幕久久| 国产精品美女免费视频大全| 国产在线八区| 日韩精品毛片人妻AV不卡| 精品国产免费第一区二区三区日韩| 亚洲国产精品成人久久综合影院| 99re精彩视频| 免费观看精品视频999| 操美女免费网站| 欧美成人免费午夜全| 欧美性久久久久| 99热这里只有精品在线观看| 伊人天堂网| 国产一二视频| 蜜桃视频一区二区| 九九热精品免费视频| 狠狠v日韩v欧美v| 欧美亚洲第一页| 99久久精品视香蕉蕉| 毛片免费观看视频| 久久久久久国产精品mv| 国产一区二区丝袜高跟鞋| 亚洲欧洲美色一区二区三区| 午夜视频免费试看| 丁香六月综合网| 久久毛片免费基地| 午夜视频免费一区二区在线看| 日韩无码视频播放| 人人爽人人爽人人片| 狠狠操夜夜爽| 久久人人97超碰人人澡爱香蕉| 视频二区中文无码| 国产美女精品人人做人人爽| 思思热在线视频精品| 色丁丁毛片在线观看| 国产成人三级| 亚洲天天更新| 国产精品理论片| 亚洲婷婷六月| 欧美国产在线看| 在线欧美日韩| 亚洲,国产,日韩,综合一区 | 二级特黄绝大片免费视频大片| 亚洲伊人天堂| 久久不卡国产精品无码| 午夜无码一区二区三区在线app| 国产91小视频在线观看| 国产自在自线午夜精品视频| 天天视频在线91频| 欧美综合激情| 欧美97色| 熟妇丰满人妻| 久久久国产精品无码专区| 国产精品成人一区二区不卡| 日本免费一区视频| 久青草网站|