Bộ trình dịch GNU – Wikipedia tiếng Việt

Bộ trình dịch GNU (tiếng Anh: GNU Compiler Collection – thường được viết tắt thành GCC) là một tập hợp các trình biên dịch được thiết kế cho nhiều ngôn ngữ lập trình khác nhau. GCC là một thành phần quan trọng của GNU toolchain, và được hầu hết các hệ điều hành giống Unix, như Linux và Mac OS X chọn làm trình dịch tiêu chuẩn. Các dòng hệ điều hành BSD đa phần đều sử dụng GCC, dù một số dòng như FreeBSD và OpenBSD lại sử dụng Clang làm trình biên dịch chuẩn. Các phiên bản sau đó của GCC cũng hỗ trợ trên cả Microsoft Windows và một số hệ điều hành khác. GCC cũng có thể biên dịch chương trình cho cả Android và iOS.

Tên gốc của GCC là GNU C Compiler (Trình biên dịch C của GNU), do ban đầu nó chỉ hỗ trợ dịch ngôn ngữ lập trình C, GCC 1.0 được phát hành vào năm 1987, sau đó được mở rộng hỗ trợ dịch C++ vào tháng 12 cùng năm đó. Các thành phần đầu vào của trình biên dịch (front end) sau đó cũng được phát triển cho các ngôn ngữ lập trình Fortran, Pascal, Objective C, Java, Ada, Go và một số ngôn ngữ khác.

GCC đã tương thích với rất nhiều nền tảng kiến trúc máy tính đa dạng, và được sử dụng rộng rãi như một công cụ làm môi trường phát triển các phần mềm thương mại, có bản quyền và nguồn đóng. GCC cũng có thể dùng trong hầu hết các hệ thống nhúng (embedded system), như Symbian (gọi là gcce), kiến trúc ARM, AMCC, Freescale Power Architecture trên chip (Freescale Power ISA-based chips), và nhiều hệ thống nhúng khác. GCC cũng được phát triển cho nhiều nền tảng khác, bao gồm cả các nền tảng video game như Playstation 2, Cell SPE of PlayStation 3 và Sega Dreamcast.

Quỹ Phần mềm Tự do (Free Software Foundation, viết tắt là FSF) phân phối GCC dưới giấy phép công cộng GNU (GNU GPL) và giấy phép công cộng cấp thấp GNU (GNU LGPL). GCC cũng đóng một vai trò quan trọng trong lịch sử phát triển của phần mềm tự do. Những công ty như CodeSourcery kinh doanh bằng cách hỗ trợ và phát triển tính tương thích của GCC với đa dạng các nền tảng, còn các nhà sản xuất chip ngày nay thì cho rằng một kiến trúc thành công thì phải có yếu tố cần thiết là sự tương thích với GCC.

Bạn đang đọc: Bộ trình dịch GNU – Wikipedia tiếng Việt

Bộ trình dịch GNU – Wikipedia tiếng Việt

Lịch sử tăng trưởng

Richard Stallman mở màn tăng trưởng GCC từ năm 1985. Ông đã lan rộng ra một trình dịch có sẵn để dịch ngôn từ C. Trình dịch nguyên dùng để dịch ngôn từ Pastel, một phần lan rộng ra và không thích hợp với ngôn từ Pascal, và được viết bằng Pastel. Nó đã được Len Tower và Stallman viết lại bằng ngôn từ C, và được cho ra đời năm 1987 trong vai trò là trình dịch cho dự án Bất Động Sản GNU, nhằm mục đích mục tiêu tạo ra một trình dịch không tính tiền. Quá trình tăng trưởng GCC được giám sát bởi quỹ ứng dụng tự do Chi tiết về các lịch trình công bố của GCC được đăng tại : http://gcc.gnu.org/releases.html

Đến năm 1991, GCC 1.x đã đạt đến độ ổn định, nhưng các hạn chế trong thiết kế đã cản trở nhiều đòi hỏi cải thiện, do đó quỹ phần mềm tự do (FSF) đã bắt đầu phát triển phiên bản 2.x. Nhưng suốt các năm giữa thập kỷ 90, FSF không công khai các gì được đưa thêm vào phiên bản chính thức của GCC 2.x, đến nỗi GCC đã được Eric S. Raymond đưa vào bài luận The Cathedral and the Bazaar của ông – một bài luận về kỹ nghệ phần mềm – như một ví dụ cho mô hình phát triển “cathedral”.

Do GCC là ứng dụng tự do, nhiều nhà lập trình muốn sử dụng nó để tăng trưởng các ứng dụng dùng ngôn từ khác ngôn từ C, đã tự do tăng trưởng trình dịch này thành các nhánh khác nhau của riêng mình. Quá nhiều bản phân phối dẫn đến việc khó sử dụng và thiếu hiệu suất cao, tuy vậy, phiên bản chính thức thì cũng không làm hài lòng nhiều người do không cung ứng được nhu yếu sử dụng của họ .Đến năm 1997, một nhóm các nhà tăng trưởng lấy tên EGCS, đã hợp nhất nhiều nhánh của trình dịch này thành một dự án Bất Động Sản duy nhất. Quá trình hợp nhất cơ bản được triển khai ở giữa hai phiên bản 2.7 và 2.81. Các dự án Bất Động Sản được hợp nhất có cả g77 của Fortran, PGCC ( tối ưu GCC ), các cải tổ về C + +, và nhiều nhánh trên các kiến trúc và hệ điều hành quản lý khác nhau. [ 11 ] [ 12 ]Quá trình tăng trưởng EGCS đã chứng tỏ sự vượt bậc đáng kể hơn so với sự tăng trưởng của GCC, do đó FSF đã chính thức tạm dừng chương trình tăng trưởng GCC 2. x của họ, phiên bản EGCS trở thành bản phân phối chính thức của GCC còn dự án Bất Động Sản EGCS được chỉ định làm trách nhiệm bảo dưỡng và tăng trưởng GCC từ tháng 4 năm 1999. Ngoài ra, dự án Bất Động Sản quyết định hành động chọn quy mô tăng trưởng ” bazaar ” thay cho quy mô ” cathedral “. Với phiên bản GCC 2.95 được công bố vào tháng 7 năm 1999, hai dự án Bất Động Sản một lần nữa đã hợp nhất . GCC thường được lựa chọn làm trình dịch để tăng trưởng các mẫu sản phẩm ứng dụng nhu yếu phải chạy trên nhiều nền tảng phần cứng phong phú. Sự độc lạ trong các trình dịch địa phương ( chỉ dùng cho nền tảng đó ) dẫn đến việc tăng trưởng các đoạn mã để hoàn toàn có thể dịch đúng mực ở toàn bộ các trình dịch hay kiến thiết xây dựng các lệnh hoàn toàn có thể chạy ở toàn bộ các nền tảng là rất là khó khăn vất vả. Trong khi nếu dùng GCC, cùng một cú pháp hoàn toàn có thể được dùng cho mọi nền tảng, do đó nếu đoạn mã hoàn toàn có thể dịch đúng chuẩn ở một trong các nền tảng, thời cơ dịch đúng mực ở các nền tảng khác sẽ cao hơn nhiều .GCC lúc bấy giờ được bảo dưỡng bởi rất nhiều nhóm tăng trưởng trên khắp quốc tế. Nó đã trở nên thích hợp với nhiều loại CPU và hệ quản lý hơn bất kể trình dịch nào khác. [ 13 ]

Phiên bản tiêu chuẩn 4.3 bao gồm hỗ trợ đầu vào cho: C, C++ (G++), Java (GCJ), Ada (GNAT), Objective-C, Objective-C++, và Fortran (GFortran). Các ngôn ngữ có hỗ trợ, nhưng không thuộc tiêu chuẩn bao gồm: Modula-2, Modula-3, Pascal, PL/I, D (gdc), Mercury, VHDL (GHDL). Một ngôn ngữ mở rộng khá phổ biến là OpenMP cũng được hỗ trợ.

U.S. Dollar) là gì? Định nghĩa, ví dụ, giải thích

Các kiến trúc

GCC phiên bản 4.3 thích hợp với các vi giải quyết và xử lý : Các vi giải quyết và xử lý ít thông dụng được phiên bản tiêu chuẩn tương hỗ gồm có : Các vi giải quyết và xử lý được tương hỗ bởi các phiên bản GCC do FSF tăng trưởng riêng gồm có :

Giao diện ngoài của GCC nhìn chung là tiêu chuẩn cho một trình dịch của Unix. Người dùng sẽ gọi đến một chương trình điều khiển có tên là gcc, có nhiệm vụ thông dịch các lệnh và đối số, và đưa ra quyết định trình dịch cho ngôn ngữ nào sẽ được chọn đối với từng tập tin đầu vào, chạy chương trình dịch mã máy ở đầu ra quá trình này, sau đó sẽ liên kết mã nguồn để tạo ra chương trình mã nhị phân thực thi.

Mỗi trình dịch của một ngôn từ là một chương trình tách biệt đưa vào nguồn vào mã nguồn và đưa ra mã hợp ngữ. Tất cả đều có một cấu trúc thường thì bên trong .Gần như hàng loạt GCC được viết bằng ngôn từ C ngoại trừ chương trình khởi tạo cho Ada ; rất nhiều phần của trình khởi tạo cho Ada được viết bằng chính ngôn ngữ Ada .

Gỡ lỗi các chương trình với GCC

Công cụ cơ bản để sửa lỗi các đoạn mã GCC là trình gỡ lỗi GNU (gdb). Ngoài ra cũng có các công cụ chuyên dụng hơn như Valgrind dùng để tìm lỗi bộ nhớ và các lỗ hổng. Chương trình GNU Profiler (gprof) có thể cho biết thời gian dùng để chạy chương trình, cũng như tần suất được gọi đến của hàm có thường xuyên hay không; điều này đòi hỏi các chương trình phải được dịch với các tùy chọn profiling.

” GCC 4.2.1 là phiên bản ở đầu cuối được phân phối bằng giấy phép công cộng GNU phiên bản 2. Tất cả các phiên bản tiếp theo sẽ được phân phối bởi giấy phép cùng loại phiên bản 3. ” [ 15 ]

Bản mẫu : FLOSS

0 Shares
Share
Tweet
Pin