30/09/2018, 16:43
Các ngôn ngữ lập trình được tạo ra như thế nào?
Cho em hỏi, các ngôn ngữ lập trình được tạo ra như thế nào ?, (đặc biệt là khi mà chưa có ngôn ngữ nào để làm nền tảng)
Có cuốn sách nào nói chi tiết về vấn đề này không ạ( tiếng việt thì tốt quá )
Bài liên quan
Programming language and compiler theory, cuốn này cũ lắm rồi, thử search coi có ra không :v
em search nó lại ra cuốn này, không biết đúng không
Implementing Programming Languages
chắc là từ assembly đi lên cơ mà assembly từ đâu thì…
Hóng cao thủ trả lời câu này
Chắc đi từ đây đó
0100010101001001010010010
chắc đúng rồi… 101010 là cha của tất cả rồi
vi.wikipedia.org
Hợp ngữ
Hợp ngữ (assembly language) là một ngôn ngữ lập trình bậc thấp dùng để viết các chương trình máy tính. Cách dùng các thuật nhớ (mnemonics) thân thiện để viết chương trình đã thay thế cách lập trình trực tiếp lên máy tính bằng mã máy dạng số (numeric machine code) - từng áp dụng cho những máy tính đầu tiên - vốn rất mệt nhọc, dễ gây lỗi và tốn nhiều thời giờ. Một chương trình viết bằng hợp ngữ sẽ được dịch sang ngôn ngữ máy bằng một tiện ích gọi là trình hợp dịch. Lưu ý rằng, trình hợp dịch khác h...
Nếu em muốn “trải nghiệm” giống người xưa từ khi chưa có asm có được k nhỉ? Tức là dùng mã máy thử làm 1 phép toán, rồi tiến tới tạo ra 1 hợp ngữ, rồi tạo ra 1 ngôn ngữ lập trình
Rất tốn thời gian và công sức để đi lên từ binary code đến ngôn ngữ hiện nay! Nên đừng điên rồ mà làm cái ngta cất công vắt óc ra làm cho rồi nhé. Nếu thích hãy tập dịch cái cao sang cái thấp nó sẽ dễ hơn đó!
Bạn có thể xem clip này để có thể hình dung về thời đó code như thế nào. Và mục đích của compiler khi ra đời!
Còn nếu thích bạn người xưa code ntn có thể tìm hiểu về instruction set và opcode của họ 8085 là một con chip cũ rồi. Nó khá đơn giản so với các con khác ‘3’ Bạn có thể dễ dàng tìm hiểu và luyện code instruction set và opcode của nó cũng như ASM của nó và sẽ thấy cảm giác code của người xưa ntn :#
Hehe, mình mình mới chỉ từng thử lập trình vi điều khiển bằng hex thôi, công nhận là rất rắc rối, nhưng vẫn muốn thử lập trình bằng binary code 1 lần ,
Nên nghiên cứu về vấn đề này, rất thú vị đấy Hiện giờ rất nhiều Ngôn ngữ sử dụng C để viết compiler đầu tiên.
Nhưng Compiler đầu tiên cho C viết bằng gì? hợp ngữ
Compiler đầu tiên cho hợp ngữ viết bằng gì?
Xem video ở trên thì đó là mã nhị phân
Chính xác rồi
Từ sau khi có được C compiler rồi thì các ngôn ngữ mới hơn sẽ dùng C để viết compiler. Khi có được compiler của ngôn ngữ đó, người ta có thể viết lại compiler bằng chính ngôn ngữ đó.
Hơi rối vụ này. Như coffescript là 1 dạng javascript, code coffescript được dịch ra javascript và hạy trên trình duyệt. Nhưng mà coffescript complier lại được viết bằng chính coffescript.(trang chủ của nó) Đọc ko hiểu gì hết
Lúc đầu Coffescript dùng Ruby để viết compiler cho nó. Sau khi đã có được compiler cho CoffeScript rồi thì người ta viết lại compiler bằng chính CoffeScript
CoffeeScript | History
On December 13, 2009, Jeremy Ashkenas made the first Git commit of CoffeeScript with the comment: "initial commit of the mystery language." The compiler was written in Ruby. On December 24, he made the first tagged and documented release, 0.1.0. On February 21, 2010, he committed version 0.5, which replaced the Ruby compiler with a self-hosting version in pure CoffeeScript. By that time the project had attracted several other contributors on GitHub, and was receiving over 300 page hits per day On...
Trước hết phải có một ngôn ngữ nào đó để viết compiler. Sau khi có compiler rồi thì coi như ta có thể viết lại compiler bằng chính ngôn ngữ đó.
Bản chất ngôn ngữ lập trình là text (source code) thôi, phải có một ngôn ngữ đọc hiểu được text đó ( là Ruby code) để chuyển thành compiler (binary viết bằng Ruby). Sau khi có được binary rồi thì ta lại dùng binary đó để chuyển text (bây giờ là CoffeScript code) thành compiler (binary viết bằng CoffeScript).
Ah. Got it. Hay quá nhỉ
Mọi ngôn ngữ bao gồm cả ngôn ngữ lập trình đều được sản sinh trong một bảng kí tự, văn phạm và một quy luật nhất định…và Alan Turing là cha đẻ ngành khoa học máy tính…với những nghiên cứu về trí tuệ nhân tạo, những đặc tính, tính chất, văn phạm cần phải có trong một ngôn ngữ điện toán…Đặc biệt là sự ra đời của Máy Turing là mô hình đầy đủ và tổng quát nhất mà mọi nhà khoa học máy tính cần phải nắm vững nếu muốn tạo ra một ngôn ngữ và cách mà một compiler hiểu, phân biệt, hoạt động để có thể biến ý tưởng của một ngôn ngữ lập trình thành ngôn ngữ máy tính.
en.wikipedia.org
Alan Turing
Alan Mathison Turing OBE FRS (/ˈtjʊərɪŋ/; 23 June 1912 – 7 June 1954) was an English computer scientist, mathematician, logician, cryptanalyst, philosopher, and theoretical biologist. Turing was highly influential in the development of theoretical computer science, providing a formalisation of the concepts of algorithm and computation with the Turing machine, which can be considered a model of a general purpose computer. Turing is widely considered to be the father of theoretical comp During t...
Formal language
In mathematics, computer science, and linguistics, a formal language is a set of strings of symbols together with a set of rules that are specific to it. The alphabet of a formal language is the set of symbols, letters, or tokens from which the strings of the language may be formed. The strings formed from this alphabet are called words, and the words that belong to a particular formal language are sometimes called well-formed words or well-formed formulas. A formal language is often defined b...
Turing machine
A Turing machine is a mathematical model of computation that defines an abstract machine, which manipulates symbols on a strip of tape according to a table of rules. Despite the model's simplicity, given any computer algorithm, a Turing machine capable of simulating that algorithm's logic can be constructed. The machine operates on an infinite memory tape divided into discrete cells. The machine positions its head over a cell and "reads" (scans) the symbol there. Then, as per the symbol and its ...
Về các cuốn sách tìm hiểu về vấn đề này thì bác hãy tìm các cuốn sách có tự đề là Ngôn ngữ hình thức (Formal Language) hay Automata trong đó bác sẽ dần dần hiểu cách các nhà nghiên cứu đã làm những gì để tạo nên các ngôn ngữ lập trình rất chặt chẽ ngày nay…hoặc bạn có thể nghiên cứu qua bài giảng này trên Coursera của ĐH Stanford:
https://class.coursera.org/compilers/lecture
Chương cuối có nói về quá trình nghiên cứu và hoàn thiện một trong những ngôn ngữ phổ biến nhất ngày nay: Java
wow, Alan turing em chỉ biết có máy giải enigma của ông thôi, không biết nó có phải là Alan machine k.
Automata nghe rất giống tên phim hehe
Có phim Imitation game nói về Alan đó
theo mình nghĩ, chỉ có 1 ngôn ngữ đầu tiên là 1 và 0 thôi
1 là tắt đèn 0 là bật chẳng hạn
thì cái ngôn ngữ đầu tiên đó dựa vào cái 1 0 này mà ra , ví dụ pascal cái lênh write đâu đơn giản là in ra mà phải dựa trên 1 nên tảng nào đó mà chắn chắn ban đầu là 1 và 0
bạn cũng có thể tạo ra 1 ngôn ngữ mới nếu bạn đủ trình dựa trên nền tảng 1 ngôn ngữ khác, ví dụ tạo ra 1 hàm bằng ngôn ngữ python chẳng hạn, nhưng nó có tốc độ sử lí chậm hơn rất nhiều do nó còn phải thông qua 1 ngôn ngữ là python.
còn tùy vào độ ăn sâu những ngôn ngữ đầu tiên là những ngôn ngữ nhanh nhất, mạnh nhất, nhưng cũng khó học nhất. > Bản thân cái C và C++ ko phải là đầu tiên, nên rất khó nói.
còn cái trình dịch, bạn nào thử tải về rồi dịch ngược coi thủ ra sao, chắc ko được!!!
còn IDE trình soạn thảo thì cũng có thể dựa trên ngôn ngữ đó như sublime text viết bằng python, soạn nó ra kết nối với trình dịch rồi bla bla sau đó là ra.