[問題] 應該用甚麼來識別語言?

看板Programming作者 (365)時間3年前 (2021/08/27 22:38), 編輯推噓16(20454)
留言78則, 19人參與, 3年前最新討論串1/1
想請問有在寫程式的大大一件事,你們都怎麼識別一門語言的? 因為今天我看一個yt教設計模式,他的代碼我看了一下,發現我自己是靠著 輸出句子的寫法是system.out.write.printf這樣,我才看出來。 可是感覺有點怪怪的:『一門語言的差異難道只是靠看它print怎麼寫嗎?』 而單靠著其他跡象,例如表頭的宣告、函數的寫法,來識別也是有點流於形式的感覺 Java: System.out Ojjective-c:Log@ C#: using System C++ : include <stdio> 、cin>> 、cout<< python:__def__ 這樣一來,一些文字特色比較不明顯的語言(Scala、Javascript、Lua、Haskell、rust) 好像無法一眼即知 應該怎麼看一個程式碼是用甚麼語言寫的? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.83.179.209 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1630075097.A.B1A.html

08/27 22:52, 3年前 , 1F
看副檔名,沒開玩笑
08/27 22:52, 1F

08/27 22:53, 3年前 , 2F
就算是流行的一些多語言IDE,大半情況也都
08/27 22:53, 2F

08/27 22:54, 3年前 , 3F
先看副檔名直接決定
08/27 22:54, 3F

08/27 22:59, 3年前 , 4F
雖然,根本上是根本不知道你問這個問題的
08/27 22:59, 4F

08/27 23:00, 3年前 , 5F
意義何在就是XD
08/27 23:00, 5F

08/27 23:08, 3年前 , 6F
你可以想想,你怎麼分辨英式英語跟美式英
08/27 23:08, 6F

08/27 23:08, 3年前 , 7F
語的?如果聽不到口音的情況下,你是不是
08/27 23:08, 7F

08/27 23:09, 3年前 , 8F
畢竟還是只能從慣用字細節裡面去區別
08/27 23:09, 8F

08/27 23:09, 3年前 , 9F
或是像日文各地方言,本來就沒有單一項絕
08/27 23:09, 9F

08/27 23:10, 3年前 , 10F
對識別特徵,可能A方言跟B方言差在X這個字
08/27 23:10, 10F

08/27 23:10, 3年前 , 11F
,但B方言跟C方言卻是X沒差Y才有差
08/27 23:10, 11F

08/28 01:25, 3年前 , 12F
如果只看for C/C++/C#/JavaScript 幾乎一樣
08/28 01:25, 12F

08/28 01:27, 3年前 , 13F
以前C++還沒有foreach
08/28 01:27, 13F

08/28 02:41, 3年前 , 14F
Javascript有差比較多啦,function定義函
08/28 02:41, 14F

08/28 02:41, 3年前 , 15F
數、用let或var宣告變數等等
08/28 02:41, 15F

08/28 02:44, 3年前 , 16F
說起來看副檔名也不是完美解就是了,若像
08/28 02:44, 16F

08/28 02:44, 3年前 , 17F
jinja2這種有時直接塞在.html裡面的情況XD
08/28 02:44, 17F

08/28 11:26, 3年前 , 18F
對,我意思就是跟二樓一樣,假設只
08/28 11:26, 18F

08/28 11:26, 3年前 , 19F
看代碼的話,可能很難區分,副檔名
08/28 11:26, 19F

08/28 11:26, 3年前 , 20F
直接解答了這樣看出來也沒意義。
08/28 11:26, 20F

08/28 18:31, 3年前 , 21F
你的問題自相矛盾了吧,演算法本來就是流
08/28 18:31, 21F

08/28 18:31, 3年前 , 22F
於形式的東西,難道演算法還要先考慮心
08/28 18:31, 22F

08/28 18:31, 3年前 , 23F
情或人際關係之後才能算嗎?
08/28 18:31, 23F

08/28 18:37, 3年前 , 24F
然後你應該要先定義你講的“語言”是包含
08/28 18:37, 24F

08/28 18:37, 3年前 , 25F
哪些語言的集合,如果有不同語言要加入
08/28 18:37, 25F

08/28 18:37, 3年前 , 26F
考慮,識別的演算法就可能要改變
08/28 18:37, 26F

08/28 18:40, 3年前 , 27F
要不然如果有一隻猴子隨便敲鍵盤,那他
08/28 18:40, 27F

08/28 18:40, 3年前 , 28F
打出的東西交給你你也拿來識別嗎?
08/28 18:40, 28F

08/28 20:33, 3年前 , 29F
二樓並沒有同意你的問題啊?有些語言確實
08/28 20:33, 29F

08/28 20:33, 3年前 , 30F
很像,但是這跟「為什麼要能一眼看出語言
08/28 20:33, 30F

08/28 20:34, 3年前 , 31F
」這個動機一點關係都沒有XD
08/28 20:34, 31F

08/28 20:34, 3年前 , 32F
副檔名直接看出來解答才是最有意義的,你
08/28 20:34, 32F

08/28 20:35, 3年前 , 33F
想要硬看code一眼看出哪個語言才是相對沒
08/28 20:35, 33F

08/28 20:35, 3年前 , 34F
意義的那邊
08/28 20:35, 34F

08/29 16:28, 3年前 , 35F
大 AI 時代,當然是全部丟進去 train
08/29 16:28, 35F

08/29 23:39, 3年前 , 36F
但是原Po想要「一眼即知」,train出來的
08/29 23:39, 36F

08/29 23:39, 3年前 , 37F
model高機率沒法給人用來一眼即知XD
08/29 23:39, 37F

08/30 00:17, 3年前 , 38F
然後還有 polyglot 這種東西
08/30 00:17, 38F

08/30 00:17, 3年前 , 39F
08/30 00:17, 39F

08/30 11:17, 3年前 , 40F
以前有人號稱他可以直接看16進位碼
08/30 11:17, 40F

08/30 11:17, 3年前 , 41F
知道是什麼CPU
08/30 11:17, 41F

09/02 22:22, 3年前 , 42F
比對副檔名跟保留字很難?
09/02 22:22, 42F

09/02 22:37, 3年前 , 43F
我會看副檔名猜是那個作業系統的可執行
09/02 22:37, 43F

09/02 22:37, 3年前 , 44F
09/02 22:37, 44F

09/03 21:51, 3年前 , 45F
vim很會猜語言 但不知道裡面怎麼做的
09/03 21:51, 45F

09/03 23:56, 3年前 , 46F
vim不就是用附檔名嗎
09/03 23:56, 46F

09/04 13:09, 3年前 , 47F
查了一下 它是副檔名為主 關鍵字為輔
09/04 13:09, 47F

09/04 13:10, 3年前 , 48F
原po想要的應該是ft.vim裡面的邏輯
09/04 13:10, 48F

09/04 13:16, 3年前 , 49F
一個副檔名有多種可能時 它會用關鍵
09/04 13:16, 49F

09/04 13:16, 3年前 , 50F
字或前面幾行的長相來猜
09/04 13:16, 50F

09/05 14:47, 3年前 , 51F
執行檔要附檔名的也就 Windows 而已?
09/05 14:47, 51F

09/06 06:37, 3年前 , 52F
副檔名、shebang、保留字
09/06 06:37, 52F

09/06 06:37, 3年前 , 53F
除非要寫處理多種程式碼的語言工具
09/06 06:37, 53F

09/06 06:38, 3年前 , 54F
要不然這個功能不太實用
09/06 06:38, 54F

09/06 20:49, 3年前 , 55F
話說新版vscode也說會自動認語言
09/06 20:49, 55F

09/07 14:01, 3年前 , 56F
別說了,Html跟Jinja Html就是VScode分不
09/07 14:01, 56F

09/07 14:01, 3年前 , 57F
出來的案例之一XD
09/07 14:01, 57F

09/07 14:03, 3年前 , 58F
@CoNsTaR 你把檔案執行權限跟檔頭定義視為
09/07 14:03, 58F

09/07 14:04, 3年前 , 59F
一種如同副檔名的meta information就好
09/07 14:04, 59F

09/07 14:06, 3年前 , 60F
Windows吃.exe .com .dll等副檔名,linux
09/07 14:06, 60F

09/07 14:07, 3年前 , 61F
吃執行權限以及某些檔頭指定interpreter之
09/07 14:07, 61F

09/07 14:09, 3年前 , 62F
類,這只不過是方式上不同,並沒有做到不
09/07 14:09, 62F

09/07 14:09, 3年前 , 63F
用看
09/07 14:09, 63F

09/16 22:20, 3年前 , 64F
像這個根本就無從判斷是哪個語言XD
09/16 22:20, 64F

09/16 22:20, 3年前 , 65F

09/19 17:40, 3年前 , 66F
觀察語法啊 還能怎麼看?
09/19 17:40, 66F

09/19 17:41, 3年前 , 67F
如果你夠熟悉這個語言,沒道理認不出來吧
09/19 17:41, 67F

09/21 00:11, 3年前 , 68F
@ddavid 是不是 cue 錯人了 orz
09/21 00:11, 68F

09/21 03:42, 3年前 , 69F
我是回你這句「執行檔要附檔名的也就
09/21 03:42, 69F

09/21 03:42, 3年前 , 70F
Windows 而已?」沒錯啊
09/21 03:42, 70F

09/21 03:43, 3年前 , 71F
我意思是別人不看副檔名,還是要看其他東
09/21 03:43, 71F

09/21 03:44, 3年前 , 72F
西,所以其實還是一樣都要看某些meta info
09/21 03:44, 72F

09/28 13:41, 3年前 , 73F
心眼
09/28 13:41, 73F

10/10 08:32, 3年前 , 74F
看他import還是include啊
10/10 08:32, 74F

11/07 20:14, 3年前 , 75F
程式碼 原始碼
11/07 20:14, 75F

12/27 17:54, 2年前 , 76F
當然是看name mangling
12/27 17:54, 76F

01/07 09:58, 3年前 , 77F
@ddavid 我那句是在回 chuegou orz...
01/07 09:58, 77F

06/21 20:33, 3年前 , 78F
不然你是要通靈識別嗎
06/21 20:33, 78F
文章代碼(AID): #1XAFZPiQ (Programming)
文章代碼(AID): #1XAFZPiQ (Programming)