PDA

View Full Version : các ngôn ngữ hiện nay được viết bằng ngôn ngữ gì



Eddy
08-04-2003, 16:08
Sao rối có chú , bác nào biết không. đừng có nói là viết bằng Assembler nha, cái đó thì hình như chưa chắc đâu

puppy
09-04-2003, 14:24
Chắc là C++.

nirvanainheaven
10-04-2003, 23:41
Thêm JAVA nữa, C và C++ để lập trình application tốt hơn còn JAva lập app network tốt hơn

Eddy
13-04-2003, 20:22
hình như mấy chú hiểu sai vấn đề thì phải , ở đây hỏi là ngôn ngữ C++ hay Java, hay Asp .... được tạo ra bằng cái gì đó

abcdef
14-04-2003, 00:01
Theo mình nghĩ thì các compiler hiện nay (tức các version sau) of Java được viết chính bằng Java, C viết chính bằng C :),... Còn các compiler of ngôn ngữ khác chắc viết bằng C. Nghĩa là khi có phiên bản alpha bêta gì đó rồi thì chắc là họ dùng ngay cái đó để viết phiên bản mới hơn. Không biết đúng không?

Eddy
14-04-2003, 13:19
vậy để viết các phiên bản alpha bêta đó , người ta dùng cái gì để viết vậy?

chungpq
14-04-2003, 14:04
thì tất nhiên dùng C rùi

TongNghien
15-04-2003, 17:13
Theo tui, trước tiên là :
1. Các cổng điện tử (khóa) tạo nên các mạch số.
2. Các mạch số điều khiển các thiết bị tính toán cơ học, điện tử.
3. Các bộ tính toán điện tử + các mạch số tạo nên ngôn ngữ máy (cũng là mã số và ký hiệu điện tử...)
4. Ngôn ngữ máy tạo nên các ngôn ngữ "gần" với ngôn ngữ máy (chẳng hạn như Assembler)
5. Những ngôn ngữ như Assembler sẽ được dùng để tạo các ngôn ngữ như Basic, Prolog, Pascal, C, rồi C++, ADA...
6. Từ những ngôn ngữ như C++, người ta thiết kế các ngôn ngữ mới có tính hướng đối tượng và trực quan hơn (phần này có lẽ các bạn quá quen rồi)
Tuy nhiên, trong quá trình phát triển các ngôn ngữ lập trình hay các hệ điều hành thì sự phát triển phần cứng cũng diễn ra song song và ngày càng tinh vi hơn.
Vì thế, ngày nay khi ta sử dụng máy tính không thấy được sự phối hợp làm việc một cách rõ ràng giữa một ngôn ngữ với các thiết bị điện tử và cơ học của máy tính.
Tui hiểu thì như vậy, còn đúng hay không thì nhờ các bạn nắm vững hơn góp ý.
Xin chào.

Eddy
17-04-2003, 15:53
Chú TongNghien nói hay quá.Vậy theo chú để viết một ngôn ngữ lập trình ta phải biết hết những thứ đó hay sao

michael_huan
17-04-2003, 19:48
Phức tạp quá.....

anhgemus
18-04-2003, 12:38
Nếu bác có học ĐH khoa CNTT thì sẽ học môn Compiler, đây có thể coi là một trong những cái cơ bản để có thể tự viết một cái ngôn ngữ lập trình...

trannam136
19-04-2003, 11:38
Ngày trước ở VN có ngôn ngữ BKED do Quách Tuấn Ngọc viết, nhưng rất dở. Sau đó không có thây ai viết về môi trường cho các ngôn ngũ tại VN nữa cả.
Nhình chung mọi thứ đều bắt nguồn từ Assembly, các ngôn ngữ sau là kế thừa của các ngôn ngữ ra đời trước mà thôi.
Thân.

TongNghien
20-04-2003, 10:55
Không phải khi học một ngôn ngữ lập trình phải biết hết mọi thứ mà là bạn muốn làm về vấn đề nào, khía cạnh nào thì bạn nghiên cứu theo khía cạnh đó. Cùng với thời gian và khối lượng công việc, bạn cũng sẽ biết nhều hơn về các lĩnh vực khác. Đúng không nhỉ ?

Mach2
04-05-2003, 19:25
Sao lại gọi là "các ngôn ngữ hiện nay được viết bằng gì?" Đúng ra là phải gọi là "các trình biên dịch hiện nay được viết bằng gì?". Thế thì câu trả lời là hầu hết bằng C đối với hiện nay.

rdbanquet
12-05-2003, 14:13
tum lai la tui cung van thac mac... 1 cau hoi: ''cac trinh bien dich hien nay duoc viet bang 'cong cu' nao?".
de nghi cac dong chi MOD nen di do la xem o dau da viet ve van de nay rui copy&paste vao day hoac la tu tong hop tin rui dua len de!!! Chu cu de ba con thac mac the nay la khong on!!!!!!!!!!

rdbanquet
12-05-2003, 14:20
Bài viết được gửi bởi trannam136
Ngày trước ở VN có ngôn ngữ BKED do Quách Tuấn Ngọc viết, nhưng rất dở. Sau đó không có thây ai viết về môi trường cho các ngôn ngũ tại VN nữa cả.
Nhình chung mọi thứ đều bắt nguồn từ Assembly, các ngôn ngữ sau là kế thừa của các ngôn ngữ ra đời trước mà thôi.
Thân.
Nhung dong chi oi, the nguoi ta dung ''cai gi" de ma viet ra cai trinh bien dich cho cai ngon ngu Assembly co chu???

Mach2
13-05-2003, 16:49
Trước asm là "đục lỗ" thì phải? ;)

trannam136
13-05-2003, 21:15
Bài viết được gửi bởi rdbanquet
Nhung dong chi oi, the nguoi ta dung ''cai gi" de ma viet ra cai trinh bien dich cho cai ngon ngu Assembly co chu???
:D Người ta dùng các số nhị phân 0 và 1 làm cơ sở để có ngôn ngữ Assembler đó bạn ah. Nếu bạn tìm hiểu về cấu trúc máy tính và lập trình hệ thống thì bạn sẽ có câu trả lời tỷ mỷ hơn.
Chúc vui.:D

chipma
25-05-2003, 14:17
Tui hiểu ý của Eddy, và tui cũng đã có thắc mắc tương tự như vậy đối với thầy tôi. Ông ấy trả lời là các ngôn ngữ lập trình hiện nay mình dùng như C, C++, Java, VB, Pascal... được thiết lập dựa trên những qui ước với máy tính. Nói đến đây thì có một số người hiểu và một số người không hiểu nhưng tui cũng chẳng biết nói thêm thế nào khi ổng chỉ nói với tui như vậy. Nhưng tui nghĩ là mình hiểu, cũng giống như ngôn ngữ của con người vậy, từ này để ám chỉ cái này, từ khác để ám chỉ cái kia, ngôn ngữ lập trình cũng như vậy, người lập ra ngôn ngữ (tác giả) phải thiết lập những qui ước với máy tính để cho người sử dụng có thể giao tiếp với máy tính, lập trình (ra lệnh) cho nó hiểu và thi hành các lệnh. Nói tới đây thì ai hiểu được thì hiểu, không hiểu thì bó tay.

nuibang
03-06-2003, 07:37
Các cao thủ DĐTH giải thích cho em rõ với,

Tại sao lại dùng C de viet compiler cho cac ngôn ngữ khác? C là ngôn ngữ bậc cao rồi, sao lại còn cần ngôn ngữ bậc cao hơn nó vậy. Chẳng lẽ lập trình bằng C khó lắm hay sao mà không dùng ngay C để lập trình các chương trình ứng dụng mà lại dùng ngôn ngữ khác cao hơn C để lập trình? Sao các compiler không được viết luôn bằng Assemble cho nó gọn và chạy nhanh hơn?

Vậy nếu em muốn học lập trình thì nên học ngôn ngữ nào trước? C hay trên C? Em chỉ muốn lập trình nghiệp dư thôi, nhiều khi có những task đơn giản em nghĩ có thể lập trình được , nhưng không muốn học ngôn ngữ nào khó quá.

Mong các bác chỉ bảo dùm

khidot_2006
11-10-2006, 20:54
theo tui biết hình như trước Assemler còn có ngôn ngữ Fotran thì phải, mà người ta cũng cho nó tuyệt chủng hay vào viện bảo tàng gì đó...

ngocquang19877
11-10-2006, 21:22
Các cao thủ DĐTH giải thích cho em rõ với,

Tại sao lại dùng C de viet compiler cho cac ngôn ngữ khác? C là ngôn ngữ bậc cao rồi, sao lại còn cần ngôn ngữ bậc cao hơn nó vậy. Chẳng lẽ lập trình bằng C khó lắm hay sao mà không dùng ngay C để lập trình các chương trình ứng dụng mà lại dùng ngôn ngữ khác cao hơn C để lập trình? Sao các compiler không được viết luôn bằng Assemble cho nó gọn và chạy nhanh hơn?

Vậy nếu em muốn học lập trình thì nên học ngôn ngữ nào trước? C hay trên C? Em chỉ muốn lập trình nghiệp dư thôi, nhiều khi có những task đơn giản em nghĩ có thể lập trình được , nhưng không muốn học ngôn ngữ nào khó quá.

Mong các bác chỉ bảo dùm

Người ta còn gọi C với 1 tên khác là Assembly portable, dzị là đủ hiểu rùi hen.

zz_nguoiQuang_zz
12-10-2006, 09:34
hdh windows hiện nay dc viết dựa trên ngôn ngữ C++ (40%) còn lại là hợp ngữ

Các ngôn ngữ ra đời sau này đều dựa trên 1 nền tảng nào đó
Ngôn ngữ là gì? ở đây theo 1 định nghĩa mới thì nó là 1 hệ thống biên dịch ra ngôn ngư máy để máy có thể hiểu dc và thực thi các lệnh đó
ASP, PHP... ko phải là các ngôn ngữ để viết ứng dụng nền dc, chữ nền ở đây là 1 hệ thống để các ứng dụng trên đó chạy dc, mà ASP hay PHP đều phải dựa hơi vào các Webserver (?!!!)
mà các webserver dc viết trên ngôn ngữ máy, đa phần là Assemble, 1 ít viết trên C và 1 ít trên basic C
///Mà người đặt ra câu hỏi này hỏi mơ hồ quá, rất khó trr lời, nếu kêu ông Quoách Tuấn Ngọc tới ỏng cũng potay.ku
Nếu giới hạn lại 1 chút sẽ dễ trả lời dc câu hỏi của bạn
---

abcslayer
12-10-2006, 10:12
- "hdh windows hiện nay dc viết dựa trên ngôn ngữ C++ (40%) còn lại là hợp ngữ" moffet nặng. Với kích thước khổng lồ như windows mà 60% còn là asm thì ..... chi phí cho development and maitaining sẽ rất khủng khiếp và khâu QA sẽ chết tắc.
- Về cơ bản thì các ngôn ngữ bậc cao đều cần những thành tố cơ bản như các phép toán cơ bản, các lệnh logic cơ bản, cấu trúc dữ liệu cơ bản -> những cái này được sử dụng để tạo nên các cấu trúc cao hơn của bản thân ngôn ngữ và trình biên dịch/phiên dịch của ngôn ngữ đó. Những phần thấp nhất (primative) sẽ được viết bằng ngôn ngữ cấp thấp (thường là asm) sau đó để chứng minh cho tính hiệu quả của bản thân ngôn ngữ/trình biên, phiên dịch của ngôn ngữ đó thì tác giả sẽ dùng những phần cơ bản đó để xây dựng phần cao hơn.
Nếu biết thêm chi tiết thì mời các bạn search thêm chút ít. Đọc comments thấy nhiều bác lười quá.

tommyle
12-10-2006, 11:48
Computer Languages History
http://www.levenez.com/lang/history.html#01

erafc
12-10-2006, 16:20
Ngày trước ở VN có ngôn ngữ BKED do Quách Tuấn Ngọc viết, nhưng rất dở. Sau đó không có thây ai viết về môi trường cho các ngôn ngũ tại VN nữa cả.

Mẹ ơi, bác này chơi chữ...

Các bác cho hỏi Dev C++ được viết bằng Delphi đúng ko? Tớ thấy cái này http://prdownloads.sourceforge.net/dev-cpp/devcpp-4.9.9.2-src.zip
Ngộ nhỉ.

lqkhoi
12-10-2006, 16:24
Một câu hỏi hay và đây là câu trả lời của tôi xét trên phương diện embedded system.
Ở đây các bạn nên tập phân biệt Ngôn ngữ ( Language) với trình biên dịch ( compiler).

Ngôn ngữ là 1 tập hợp những quy tắc và câu lệnh. Ví dụ đối với C bạn phải viết for như thế nào, đối với Pascal bạn phải viết for như thế nào.

Compiler lại là một chương trình dùng để chuyến 1 file source code theo 1 ngôn ngữ nào đó và chuyển đó thành 1 ngôn ngữ mà máy có thể đọc được.Vì thế cho cùng 1 ngôn ngữ C sẽ có nhiều compiler. Và 1 compiler không nhất thiết chỉ hiểu 1 ngôn ngữ nào đó. 1 compiler sẽ cung cấp sẵn 1 số cái gọi là builtin function. Đó là những hàm căn bản mà developer có thể sử dụng. Nó thông thường được chứa trong những library đi kèm. Builtin function sẽ được nói kỹ ở phần sau.

Theo như điều kiện ở trên Compiler chỉ là 1 chương trình. Vì thế nó có thể được tạo ra từ bất cứ 1 compiler nào khác.Who say a C compiler cant be compiled by a C dot Net compiler ? Cũng từ đó suy ra chẳng có ngôn ngữ nào được gọi là cấp cao hay cấp thấp. Cái cấp cao hay cấp thấp ở đây là sự tùy biến cho người developer.

Ở những compiler sử dụng những ngôn ngữ được gọi là cấp cao. Các builtin-function sẽ được cung cấp nhiều hơn. Tuy nhiên nó sẽ ràng buộc người developer nhiều hơn. Ví dụ như trong Java bạn sẽ không được đụng vào việc memory allocation hay deallocation.

Ở những cái tạm gọi là "cấp thấp", sẽ có ít builtin-function hơn.Tuy nhiên nó tạo cơ hội cho developer được xen vào hệ thống nhiều hơn. ví dụ với C compiler bạn có thể tùy biến cấp phát vùng nhớ ở vị trí bạn muốn. Một compiler ít builtin-function hơn sẽ giúp việc chuyển từ source code người sử dụng sang mã máy ngắn gọn hơn vì đơn giản bạn biết đích xác bạn muốn làm gì. Trong khi builtin function nó phải dùng cho vô số những tình huống khác nhau và vì thế nó sẽ sinh ra mã máy dài hơn.

Hiện nay với tốc độ lên đến vài tỷ phép tính một giây của 1 con chip xử lý trung tâm ( bao gồm cả các con embedded Micro CPU) , việc viết thừa ra vài trăm triệu dòng xử lý không còn quan trọng và tác động lắm đến tốc độ của hệ thống. Có chăng chỉ đối với những embedded developer viết codecs hay những chương trình đòi hỏi gần như sức mạnh của toàn bộ hệ thống.

Vì thế các bạn hãy quên đi và đừng tranh cãi ngôn ngữ nào hay hơn, ngôn ngữ nào mạnh hơn. Không phải vô cớ khi thế giới có quá nhiều ngôn ngữ quá nhiều compiler hiện nay. Mỗi thứ có mặt mạnh và mặt yếu riêng của nó. Và tùy vào môi trường, tùy vào công việc tùy vào tốc độ xử lý của hệ thống, tùy vào bộ nhớ bạn đang có, tùy vào việc bảo hành hệ thống mà người designer sẽ chọn những compiler nào để làm việc.

Thật có mà điên khi viết web bằng C để viết CGI ( mặc dù vẫn còn nhiều server làm thế) thay vì viết bằng php, C#.
Hay có bạn nào biết rằng 1 chương trình text parser viết bằng Python chỉ tốn 4 đến 5 dòng cho 1 cái chương trình vài chục dòng nếu viết bằng C. Và bạn sẽ té xỉu nếu khi có 1 con ROM để chứa code có size 4KB và dùng C++ compiler để viết 1 Hello world đã hơn 10KB.

Ông bà ta có câu : Người nào việc đó. Tôi áp dụng vô câu "Ngôn ngữ nào, compiler nào việc đó :)"

Ý quên dài dòng quá mà hổng nói ý chính.Đa số compiler hiện nay được viết trên C hoặc C++. Lý do : đã nói ở trên : C và C++ tùy biến nhất, có khả năng port qua các hệ thống khác dễ dàng nhất vì không phụ thuộc nhiều vào hệ thống ( như ASM) nhưng vẫn không mất đi khả năng uyển chuyển trong việc quản lý bộ nhớ, xử lý text. Còn nếu thích bạn vẫn có thể dùng C# hay pascal để viết 1 compiler Simple C. Ở đây đâu phải là vấn đề CON GÀ đẻ quả trứng đâu.

ngocquang19877
12-10-2006, 17:10
Cái ngôn ngữ BASIC do Bill Gates viết ra là trên 1 cuộn giấy, trên đó có những lỗ đục, chỉ được nhìn thấy, ko biết cơ chế hoạt động của nó ra sao :D

Hehhehe, bắt giò bác nhé, BASIC không phải do bill chế ra nhé, mà bill chỉ port nó sang nền máy altair thui hehehehe.

@lqkhoi: bài post quá chuẩn !

lexhoang
12-10-2006, 21:33
Đa số compiler hiện nay được viết trên C hoặc C++. Lý do : đã nói ở trên : C và C++ tùy biến nhất, có khả năng port qua các hệ thống khác dễ dàng nhất vì không phụ thuộc nhiều vào hệ thống ( như ASM) nhưng vẫn không mất đi khả năng uyển chuyển trong việc quản lý bộ nhớ, xử lý text. Còn nếu thích bạn vẫn có thể dùng C# hay pascal để viết 1 compiler Simple C. Ở đây đâu phải là vấn đề CON GÀ đẻ quả trứng đâu.

Trừ bản nguyên mẫu, Delphi được viết bằng ... Delphi !