PDA

View Full Version : [dis] Ngôn ngữ lập trình với các dòng lệnh bằng tiếng Việt ??



Memphisto
10-04-2004, 15:10
xin hỏi các cao thủ về lập trình + ngôn ngữ máy + phần cứng +...
rằngcó thể tạo dc phần mềm với các dòng lệnh bằng tiếng Việt dc khộng
có ai suy nghĩ về vấn đề này không , liệu máy có hiểu dc lệnh bằng tiếng Việt không ???

kiểu dòng lệnh như Pascal
Write <--> Viết
goto <---> đi tới
begin <--> bắt đầu
..........................
(c)Memphisto

bete
10-04-2004, 16:39
Tui xin có vài ý (có gì sai sót thì các bạn chỉ giúp nhe, xin cám ơn trước)

1) Về nguyên tắc chung mà nói: mình có thể viết 1 compiler với các từ khóa là tiếng Việt

2) Nhưng nếu xài từ khóa là tiếng Việt thì có 1 số bất lợi:
a) Tiếng Việt mình có dấu => nếu 0 bỏ dấu thì hơi khó đọc, hầu như phải đoán => có thể gây hiểu lầm kiểu "nhà mày có khỉ già lắm" :) . Từ khóa xài trong trình biên dịch 0 nhiều lắm (dưới 1000 từ khóa ?) => có thể 0 hiểu lầm; nhưng nhìn tiếng Việt 0 bỏ dấu thấy hơi tức làm sao đó, phải 0 các bạn (ví dụDTH mình 0 khuyến khích đăng bài 0 bỏ dấu) => trình biên dịch tiếng Việt 0 dấu thì có vẻ như chỉ là tiếng Việt có 50% thôi

b) Giả sử mình chơi từ khóa là tiếng Việt có bỏ dấu thì có 2 bất lợi khác . Bất lợi thứ nhứt là phải gõ nhiều phím hơn => hao mòn bàn phím & mỏi tay (giỡn tí thôi):) Ví dụ nếu gõ "bat dau" => chỉ 5 phím, nhưng nếu gõ "bắt đầu" =? ít nhứt cũng 9 phím (5 cho chữ & 4 cho dấu). Bất lợi thứ hai là nếu tui 0 lầm là có hơn một tập ký tự cho Unicode (UTF7 & UTF8) => nhiều khi văn bản tiếng Việt hiển đúng trên trình soạn thảo nầy mà trật vuột trên trình soạn thảo khác => mình phải có trình soạn thảo đi kèm trình biên dịch (nhưng lỡ 2 ngưòi dùng xài 2 trình biên dịch viết bởi 2 nhóm khác nhau thì khi trao đổi mã nguồn có thể kẹt) . Chỗ này (có nhiều hơn 1 tập ký tự, ....) nếu tui có sai thì xin các bạn chỉ giúp cho

c) Một điểm nữa nếu tui 0 lầm thì các từ khóa tiêng Anh đều là 1 chữ . Ví dụ "begin", "end", "while", "do", "if", ...... => dễ viết trình biên dịch hơn 1 tí . Tuy nhiên nếu xài "trong khi", "bắt đầu", "kết thúc", ..... có lẽ cũng chỉ tốn công hơn 1 tí ? Có thể đổi là viết dính nhau "trongkhi", "bắtđầu", "kếtthúc", ...

d) Một số bạn còn có ý kiến là 1 số thuật ngữ (từ khóa nói riêng) tiếng Anh khi dịch sang tiếng Việt có vẻ gượng ép & khó hiểu (tui nhớ có đọc ở đâu đó thuật ngữ "hàm nội thuần" thì phải, tới giờ tui quên mất tiêu tác giả muốn nói ý gì (phần tiếng Anh tương đương))

Tuy nhiên, sau hết nếu có bạn vẫn còn có hứng thú làm thử 1 trình biên dịch nhỏ với các từ khóa tiếng Việt thì có thể thử lục lại cuốn "Algorithms+Data Structures=Programs" của tác giả Niklaus Wirth (cuốn này được viết từ rất lâu & đã có bản dịch sang tiếng Việt mình), ở phần cuối cùng có cho mã nguồn của 1 trình biên dịch cho ngôn ngữ PL/0 . Các bạn có thể lập 1 nhóm nhỏ để thử Việt hóa trình biên dịch này (với mục đích học hỏi, chứ 0 phải làm thương mại nhé) . Nếu mình chọn từ khóa đơn ("bắtđầu", "trongkhi", ...) thì có lẽ 0 học hỏI được bao nhiêu đâu (chỉ cần "search & replace" trong 1 trình soạn thảo là được) . Nhưng nếu các bạn cho phép từ khóa kép ("bắt đầu", "trong khi", ....) thì sẽ phải suy nghĩ 1 tí . Muốn động não hơn nữa thì các bạn để ý là phần sinh mã cuối cùng "code generator" sẽ 0 sinh ra mã hợp ngữ mà sinh ra 1 loại mã giả (tương tự mã trung gian cho máy ảo của Java) => các bạn viết cái máy ảo cho ngôn ngữ này . Để động não thêm tí nữa thì ở phần phụ lục B có giản đồ cú pháp của ngôn ngữ Pascal => các bạn có thể thay đỏi trình biên dịch ban đầu để trở thành trình biên dịch Pascal (hoặc 1 phần nhỏ của ngôn ngữ Pascal) . Bạn nào "chê" ngôn ngữ Pascal đã lỗi thời thi có thể kiếm giản đò cú pháp của C/C++ làm chơi (tui thì nguỡng mộ tác giả Niklaus Wirth & ngôn ngữ Pascal lắm - về kiến thức thì chắc ông nhiều gấp mấy trăm ngàn lần tui rồi, còn ngôn ngữ Pascal, cứ cho là lỗi thời đi, nhưng cũng đã là ngôn ngữ lập trình mà tui đã làm quen đầu tiên) . Bạn nào ngon hơn nữa thì cho trình biên dịch dịch sang hợp ngữ của Intel chip (0 dễ, theo ý tui) thay vì ngôn ngữ cho máy ảo . Xin nói thêm là kỹ thuật xây dựng trình biên dịch này có thể là đã cũ; nhưng ngồi phá nó cũng có chỗ thích thú . Đó là nếu các bạn muốn học hỏi & có thì giờ thôi chứ các bạn đang đi học thì bận rộn bài vở & thi cử; các bạn đã đi làm thì có nhưng cái khác hấp dẫn hơn để tìm tòi, phải 0 ?

Vài ý kiến nhỏ mọn xin làm rác tai các bạn 1 tí

Cận
11-04-2004, 04:18
Có ai biết chương trình VietPro ko ? --> Việt hóa pascal ( cả các từ khoá luôn )

Cận
11-04-2004, 04:23
Đây, tui kiếm được rồi