Trong đó ngôn ngữ là trình biên dịch Java (javac
), máy ảo (JVM) và bắt đầu viết java
?Ngôn ngữ nào là trình biên dịch Java và JVM được viết?
Trả lời
Các phân nhịp chính xác của câu hỏi là hơi sai lầm: nó không phải là "JVM" hoặc "trình biên dịch" như có nhiều nhà cung cấp JVM (JRockit là một, IBM khác) và nhiều trình biên dịch ngoài kia.
Sun JVM là viết bằng
C
, mặc dù nhu cầu này không phải là trường hợp - JVM vì nó chạy trên máy tính của bạn là một nền tảng phụ thuộc vào thực thi và do đó thể đã được viết ban đầu Bằng bất kỳ ngôn ngữ nào. Ví dụ, bản gốc IBM JVM đã được viết trong SmalltalkCác thư viện Java (
java.lang
,java.util
vv, thường được gọi là Java API) đều được mình viết bằng Java, mặc dù phương pháp đánh dấu lànative
sẽ có được viết bằngC
hoặcC++
.Tôi tin rằng trình biên dịch Java do Sun cung cấp cũng được viết bằng Java. (Mặc dù một lần nữa, có nhiều trình biên dịch ngoài đó)
Tôi nghĩ anh ta có nghĩa là "java" chương trình mà bạn sử dụng để khởi động một JVM. –
Trên thực tế, * một * thư viện trong JRE của Sun được viết bằng NetRexx. (Đó là một trong những thư viện toán chính xác tùy ý, BigInteger, BigNum hoặc BigDecimal. Tôi quên cái nào.) Về lý thuyết, bạn có thể sử dụng bất kỳ ngôn ngữ nào để thực thi JRE, miễn là nó có thể biên dịch thành một biểu diễn hiểu không. –
Vui lòng cung cấp một tham chiếu đến Sun JVM được viết bằng C. –
Về nguyên tắc gần như bất cứ điều gì, thường là C
Từ Java Docs
Trình biên dịch được viết bằng Java và thời gian chạy được viết bằng ANSI C
Trình biên dịch Java đầu tiên được phát triển bởi Sun Microsystems được viết bằng C sử dụng một số thư viện từ C++ http://en.wikipedia.org/wiki/Java_compiler –
Đây thực sự là một tài liệu cũ (> 10 năm theo giao diện của sự vật). Ví dụ, nó nói * "bytecode Java được dịch trên bay đến hướng dẫn máy bản địa (giải thích) và không được lưu trữ bất cứ nơi nào" * mà đã không được đúng trong khoảng 5 năm! –
Vâng, vì khi nào tài liệu được cập nhật thực sự, đặc biệt là sau những thay đổi lớn? :) – Esko
This link nên trả lời câu hỏi của bạn
Dường như trình biên dịch hiện được viết bằng Java, nhưng thời gian chạy được viết bằng A NSI C
Jikes RVM, một JVM tự lưu trữ được sử dụng rộng rãi cho các mục đích nghiên cứu được viết bằng Java. Nó không phải là một trong những người chạy trên máy tính để bàn của họ, nhưng nó lên trên đó trong danh sách của tôi "bây giờ chúng ta hãy thể hiện sức mạnh chung của ngôn ngữ."
Đó là rùa * tất cả các con đường xuống *? Liệu nó có một số loại microkernel? Nếu vậy, ngôn ngữ đó được viết bằng gì? – Raedwald
Giả sử bạn đang nói về JVM Hotspot, được iirc cung cấp bởi Sun, nó được viết bằng C++. Để biết thêm thông tin về các máy ảo khác nhau cho Java, bạn có thể kiểm tra điều này link. javac, giống như hầu hết các trình biên dịch Java, được viết bằng Java.
Hầu hết các hệ điều hành, JVM được viết bằng ISO C++. Tôi nghi ngờ ANSI C được sử dụng, một ngôn ngữ hoàn toàn khác biệt mà là khá cổ xưa ngày nay.
Bạn phải đùa giỡn. Hầu hết các phiên bản của Linux được viết bằng C. Một số lượng lớn Windows được viết vào tháng mười một, cũng như nhiều hệ điều hành nhúng.Hầu hết các nhà văn hệ điều hành sẽ tránh xa các ngôn ngữ như C++, nơi những thứ như constructors và destructors không có trong mã nguồn được trình biên dịch tự động chèn vào. –
linux được viết bằng "C". cho đến khi jrockit đôi khi jvm được viết bằng chữ "C". chỉ hotspot jvm được viết bằng "C++". – techcraver
Thực ra Oracle JVM được viết bằng C++, chứ không phải C.
Hãy nhìn vào mã HotSpot JVM ở đây: http://openjdk.java.net/groups/hotspot/
Trình biên dịch Java đầu tiên được phát triển bởi Sun Microsystems và được viết bằng C sử dụng một số thư viện từ C++. Hôm nay, trình biên dịch Java được viết bằng Java, trong khi JRE được viết bằng C.
Chúng ta có thể tưởng tượng như thế nào trình biên dịch Java được viết bằng Java như thế này:
Trình biên dịch Java được viết như một chương trình Java và sau đó được biên dịch bằng trình biên dịch Java được viết bằng C (trình biên dịch Java đầu tiên). Vì vậy, chúng ta có thể sử dụng trình biên dịch Java vừa được biên dịch (viết bằng Java) để biên dịch các chương trình Java.
+1 để giải thích cách trình biên dịch Java có thể được viết bằng Java :) –
- 1. Ngôn ngữ lập trình nào là FogBugz được viết bằng?
- 2. Ngôn ngữ lập trình nào có trình biên dịch JIT?
- 3. Ngôn ngữ lập trình phía máy khách với trình biên dịch java là (DRY templating)
- 4. Dịch mã byte Java sang các ngôn ngữ lập trình và ngôn ngữ lập trình khác
- 5. Java có phải là một ngôn ngữ lập trình được biên dịch hay được diễn giải không?
- 6. Viết trình biên dịch; VM nào?
- 7. Ngôn ngữ nào có thể được biên dịch sang javascript?
- 8. Cần có những tính năng ngôn ngữ nào trong ngôn ngữ lập trình để tạo trình biên dịch?
- 9. về ngôn ngữ lập trình nào là os android và hạt nhân của nó được viết?
- 10. Ngôn ngữ cho trình biên dịch dựa trên LLVM
- 11. Tạo ngôn ngữ lập trình và thiết kế trình biên dịch. Họ có liên quan không?
- 12. ngôn ngữ hoàn toàn được suy ra là gì? và hạn chế của ngôn ngữ đó?
- 13. Ngôn ngữ lập trình Go được viết bằng ngôn ngữ nào?
- 14. Ngôn ngữ nào được viết bằng Html?
- 15. Các tính năng của ngôn ngữ thông dịch nào có thể được biên dịch?
- 16. Ngôn ngữ lập trình biên dịch thành PHP?
- 17. Tại sao Java được an toàn so với các ngôn ngữ lập trình khác?
- 18. Trình biên dịch Python cho ngôn ngữ đơn giản với thuật toán mã vm java
- 19. Biên dịch C++ cho JVM
- 20. Trình biên dịch Prolog/Trình biên dịch được nhúng cho Java
- 21. Javascript được biên dịch hay là một ngôn ngữ thông dịch?
- 22. Ngôn ngữ lập trình PHP hoặc ngôn ngữ lập trình?
- 23. Lua với trình biên dịch JVM?
- 24. Trong ngôn ngữ lập trình nào là Sublime Text 2 được viết
- 25. Ngôn ngữ đầu ra biên dịch - LLVM IR vs C
- 26. Làm cách nào để triển khai ngôn ngữ có cùng ngôn ngữ nhanh hơn ngôn ngữ?
- 27. Cách dễ nhất để xây dựng trình biên dịch F # chạy trên JVM và tạo ra bytecode Java là gì?
- 28. Ngôn ngữ giống như CoffeeScript được viết bằng Python
- 29. Trình biên tập mã Windows biên dịch/inteprets hầu hết các ngôn ngữ ala CodeRunner?
- 30. Thư viện bản dịch ngôn ngữ Java
tôi làm việc trên java vì vậy tôi muốn biết về ngôn ngữ ... :) –
Có, nhưng tôi không tham gia (cũng không phải là Rahul hoặc anh ấy sẽ không hỏi câu hỏi có lẽ) bằng cách viết trình biên dịch Java hoặc thông dịch viên . Tôi viết mã Java và rất hữu ích khi biết các bit cụ thể của nó hoạt động như thế nào (để chọn các lớp) nhưng cho dù nó được viết bằng C, BCPL hay COBOL, tôi không thực sự quan tâm. – paxdiablo
Quan điểm của bạn. Nói rằng bạn đã làm việc trên một số công nghệ trong 20 năm và người phỏng vấn hỏi bạn ngôn ngữ nào được viết hoặc cách nó hoạt động thì bạn có thể nói bạn không quan tâm nó có nghĩa là bạn chỉ muốn viết nếu không có ngôn ngữ khác muốn thực sự hiểu ngôn ngữ. –