em search nó lại ra cuốn này, không biết đúng không
Implementing Programming Languages
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
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ì?
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
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.
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.
Đã tìm được câu trả lời