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) :blush:
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á :blush: )

3 Likes

Programming language and compiler theory, cuốn này cũ lắm rồi, thử search coi có ra không :v

3 Likes

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 :smile: cơ mà assembly từ đâu thì…

1 Like

Hóng cao thủ trả lời câu này :blush:

Chắc đi từ đây đó
0100010101001001010010010

3 Likes

:smile: chắc đúng rồi… 101010 là cha của tất cả rồi

2 Likes

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ỉ? :smile: 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 :blush:

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 đó! :stuck_out_tongue:
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 :#

4 Likes

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 :blush:,

Nên nghiên cứu về vấn đề này, rất thú vị đấy :slight_smile: 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ì?

7 Likes

Xem video ở trên thì đó là mã nhị phân

1 Like

Chính xác rồi :smile:

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ữ đó.

2 Likes

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

1 Like

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 :smile:

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).

3 Likes

Ah. Got it. Hay quá nhỉ :smiley:

2 Likes

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.



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

2 Likes

wow, :blush: 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

1 Like

Có phim Imitation game nói về Alan đó :grin:

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?