Sự phát triển của các ngôn ngữ lập trình trong 20 năm trở lại đây

18 3 0
Sự phát triển của các ngôn ngữ lập trình trong 20 năm trở lại đây

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Untitled TRƯỜNG ĐẠI HỌC NAM CẦN THƠ Tạp chí Khoa học và Kinh tế phát triển số 12 83 SỰ PHÁT TRIỂN CỦA CÁC NGÔN NGỮ LẬP TRÌNH TRONG 20 NĂM TRỞ LẠI ĐÂY Kiều Tiến Bình11, Chung Vinh Hiển12 Tóm tắt Sự phá[.]

TRƯỜNG ĐẠI HỌC NAM CẦN THƠ Tạp chí Khoa học Kinh tế phát triển số 12 SỰ PHÁT TRIỂN CỦA CÁC NGƠN NGỮ LẬP TRÌNH TRONG 20 NĂM TRỞ LẠI ĐÂY Kiều Tiến Bình11, Chung Vinh Hiển12 Tóm tắt: Sự phát triển nhanh chóng Internet vào năm 1990 động lực lớn cho giới ngơn ngữ lập trình tiếp tục phát triển ngành công nghiệp nghiên cứu, hệ thống ứng dụng thay đổi Ngày có nhiều ngơn ngữ lập trình với ngơn ngữ, cú pháp tính khác Các nhà phát triển sử dụng ngơn ngữ dựa sở thích khách hàng riêng họ Bài viết sau sâu vào lịch sử, phát triển thịnh hành ngơn ngữ lập trình 20 năm qua Ngoài việc phác thảo lịch sử ngơn ngữ, viết cịn cung cấp thơng tin đặc trưng ưu điểm ngôn ngữ Từ khóa: Lập trình, Ngơn ngữ lập trình, Ngơn ngữ lập trình bậc cao, cơng nghệ thơng tin Abstract: The rapid growth of the Internet in the mid 1990s was a major driver for the world of programming language to grow continuously in both industry and research while systems and applications have been changing There are many programming languages with different languages, syntax and features today Developers can now use a language based on customer preferences or their own The following article will discuss deeply the history, development and prevalence of programming languages over the past 20 years In addition to outlining the history , the article also provides information about the features and advantages of each language Keywords: Programming, Programming language, High-level programming language, Information technology Giới thiệu Lập trình việc làm mà lập trình viên sử dụng ngơn ngữ lập trình, đoạn mã lệnh (code) tiện ích có sẵn Từ họ xây dựng nên chương trình, ứng dụng, webside, phần mềm trò chơi, để người dùng giao tiếp với máy tính, tương tác qua lại với (Karen M, 2018) Khi người lập trình xây dựng, tạo chương gọi lập trình viên Lập trình phần ngành cơng nghệ thơng tin, khơng phải cơng nghệ thông tin Nhiều lĩnh vực hay nhiều ngành khách y học, thương mại điện tử ứng dụng thành tựu công nghệ thông tin (Dương Hoài Thương, 2020) 11 12 Giảng viên Khoa Kỹ thuật - Công nghệ, Trường Đại học Nam Cần Thơ Sinh viên Khoa Kỹ thuật - Công nghệ, Trường Đại học Nam Cần Thơ 83 TRƯỜNG ĐẠI HỌC NAM CẦN THƠ Tạp chí Khoa học Kinh tế phát triển số 12 Ngơn ngữ lập trình loại ngơn ngữ máy tính mang hệ thống quy tắc riêng chuẩn hóa, cho người thiết bị điện tử hiểu lập trình viên có nhiệm vụ mơ tả chương trình làm việc dành cho thiết bị điện tử (Nguyễn Tịnh, 2019) Ngày giới có nhiều ngơn ngữ lập trình Nhưng với tốc độ phát triển cơng nghệ thơng tin ví vũ bão năm đời hàng chục ngơn ngữ lập trình Hơn 700 ngơn ngữ lập trình cho đời Tuy nhiên, khơng dừng lại số theo thống kê hàng năm liên tục có ngơn ngữ sinh Do khó xác định xác (Nguyễn Linh Trang, 2018) Với ngơn ngữ lập trình ln có ứng dụng đặc trưng riêng Thơng thường lập trình viên chọn một vài ngơn ngữ lập trình định để làm việc Để trở thành lập trình viên chuyên nghiệp, lập trình viên phải nắm rõ làm bao gồm viết đoạn mã lệnh, thiết kế; xây dựng, bảo trì, sửa lỗi, nâng cấp hệ thống (Julie Luong, 2020a) Có nhiều ngơng ngữ lập trình giới, năm thống kê có số ngơn ngữ đời Vậy điểm chung ngơn ngữ gì? Dù ngơn ngữ khác nhìn chung ngơn ngữ lập trình thường có thành phần • Bảng chữ cái: Để viết chương trình người lập trình phải dùng tập hợp ký tự quy định bảng chữ cái: 26 chữ thường( a, b, c, , z), 26 chữ in hoa (A, B, C, , Z), 10 chữ số thập phân (0, 1, 2, 3, , 9) kí tự đặc biệt • Cú pháp: quy tắc chung ngôn ngữ dùng để viết chương trình Trong chương trình dịch, lỗi cú pháp phát hiện, chương trình dịch xong khơng cịn lỗi cú pháp • Ngữ nghĩa: Dựa vào ngử cảnh, câu lệnh viết có ý nghĩa, tính chất thuộc tính khác Có thể phát lỗi ngữ nghĩa chương trình thực thi với cơng việc hay liệu cụ thể Tức ngữ nghĩa có nhiệm vụ xác định ý nghĩa tổ hợp kí tự viết chương trình cịn cú pháp kiểm tra tính hợp lệ chương trình Lỗi cú pháp chương trình dịch phát cịn lỗi ngữ nghĩa phát thực chương trình liệu cụ thể (Anh Loan, 2019a) Bố cục viết gồm phần: Giới thiệu, từ năm 1988 đến năm 2000, từ năm 2000 đến kết luận Ở phần giới thiệu đưa khái niệm giới thiệu tổng quát ngôn ngữ lập tình, phân loại hình thành chúng, đồng thời nêu lên đặc điểm chung chúng Nội dung phần phát triển số ngơn ngữ điển hình từ năm đời máy tính cấu trúc gồm phần Đầu tiên tìm hiểu số thơng tin chung, lịch sử đặc trưng riêng, từ nêu ưu điểm loại ngơn ngữ Sau viết đúc kết phần cuối 84 TRƯỜNG ĐẠI HỌC NAM CẦN THƠ Tạp chí Khoa học Kinh tế phát triển số 12 1.1 Lịch sử Trong giai đình 1842-1849, Ada Lovelace dịch hồi ký nhà toán học người Ý Luigi Menabrea cỗ máy đề xuất Charles Babbage: Động phân tích; bà bổ sung hồi ký với ghi định chi tiết phương pháp để tính tốn số Bernoulli với động cơ, hầu hết nhà sử học công nhận chương trình máy tính xuất giới (J Fuegi and J Francis, 2003) Các mã máy tính chuyên biệt cho ứng dụng họ: ví dụ, Alonzo Church thể tính tốn lambda cách có cấu trúc máy Turing trừu tượng hóa hoạt động máy đánh chữ Jacquard Looms Charles Babbage's Difference Engine có ngơn ngữ đơn giản để mơ tả hành động mà máy nên thực họ người tạo ngơn ngữ lập trình (Vũ An, 2018) 1.2 Phân loại Hàng nghìn ngơn ngữ lập trình khác tạo nhiều ngơn ngữ lập trình khác tạo hàng năm Tuy nhiên, ngôn ngữ lập trình phân thành loại: Ngơn ngữ máy - mã máy (machine language): ngôn ngữ chính, quan tảng vi xử lý Đặc điểm chung tất loại ngôn ngữ khác viết chương trình cuối chuyển thành ngôn ngữ máy trước chương trình thi hành Bộ vi xử lí nhận biết thực cách trực tiếp thị ngôn ngữ máy biểu diễn dạng mã nhị phân (Ann Dang, 2020) Hợp ngữ (assembly language): ngơn ngữ lập trình bậc thấp, để viết chương trình dùng từ viết tắt tiếng Anh Hợp ngữ sử dụng phổ biến rộng rãi, ngày dùng số lĩnh vực định, chủ yếu để xử lý vấn đề liên quan đến tốc độ cao giao tiếp trực tiếp với phần cứng Ví dụ chương trình điều khiển thiết bị, hệ thống nhúng cấp thấp ứng dụng thời gian thực Với nhược điểm chương trình phức tạp, khó khăn việc ghi nhớ phụ thuộc vào loại thiết bị Đặc biệt, cần phải có cơng cụ hợp dịch để dịch từ hợp ngữ ngôn ngữ máy để thiết bị điện tử hiểu thực thi chương trình (Ngọc Lam, 2020) Ngơn ngữ lập trình bậc cao (High-level programming language): ngôn ngữ gần với ngôn ngữ tự nhiên người, có tính độc lập cao, phụ thuộc vào phần cứng trình dịch Một số ngơn ngữ lập trình bậc cao phổ biến như: ngơn ngữ lập trình C, C++, C#, Java, PHP, Python (Jordan Trần, 2019) 1.3 Đặc điểm chung Mỗi ngơn ngữ lập trình xem tập hợp chi tiết kỹ thuật trọng đến cú pháp, từ vựng, ý nghĩa ngôn ngữ Những chi tiết kỹ thuật thường bao gồm: 85 TRƯỜNG ĐẠI HỌC NAM CẦN THƠ Tạp chí Khoa học Kinh tế phát triển số 12 Kiểu liệu: Hệ thống kiểu ngôn ngữ lập trình hệ thống đặc thù với liệu tổ chức xếp chương trình Các kiểu liệu thông dụng nhiều ngôn ngữ lập trình định nghĩa sẵn như: integer (biểu diễn số nguyên), char (biểu diễn ký tự đơn lẻ), string (biểu diễn chuỗi ký tự, hay gọi chuỗi, để tạo thành câu hay cụm từ) (Dương Phàm Thiên, 2019) Cấu trúc liệu: Để lắp đặt cấu trúc liệu phức tạp từ kiểu có sẵn để liên kết tên với kiểu kết hợp (dùng kiểu mảng, danh sách, hàng đợi, ngăn xếp hay tập tin) đa số ngôn ngữ cung cấp cách thức Các lập tình viên định nghĩa kiểu liệu có riêng hàm biến (các phương thức thuộc tính) gọi đối tượng ngôn ngữ hướng đối tượng đối tượng Một chương trình thực thi chương trình độc lập thiết kế tương tác để mơ hình hóa mơ ngơn ngữ hướng đối tượng để có riêng tính hoạt động tương tác với giới bên Ngoài ra, ưu việc dùng ngôn ngữ hướng đối tượng để mô tả đối tượng thừa kế đa hình (Nguyen Minh Trung Gia Dinh, 2015) Các mệnh lệnh dòng điều khiển: Sau xác định liệu, cần cho máy tính cách thực thao tác Các câu xây dựng cách sử dụng từ khóa (được định nghĩa ngơn ngữ lập trình), chúng kết hợp cách sử dụng cấu trúc ngữ pháp cú pháp có Điều xác định Những nguyên tắc gọi câu lệnh Có thể kết hợp câu theo thứ tự cụ thể tùy thuộc vào ngôn ngữ Điều cho phép chương trình cấu hình để thực nhiều chức Ngoài lệnh điều chỉnh sửa đổi liệu, cịn có lệnh để điều khiển luồng xử lý máy tính, chẳng hạn nhánh xác định nhiều phiên bản, vòng lặp hàm kết hợp Đây khối xây dựng ngơn ngữ lập trình (Julie Luong, 2020b) Các tên tham số: Muốn cho chương trình thi hành phải có phương pháp xác định vùng trống nhớ để làm kho chứa liệu Phương pháp biết nhiều thông qua tên biến Tùy theo ngôn ngữ, vùng trống gián tiếp bao gồm tham chiếu, mà thật ra, chúng trỏ (pointer) đến vùng chứa khác nhớ, cài đặt biến hay nhóm biến Phương pháp gọi đặt tên kho nhớ Tương tự với phương pháp đặt tên kho nhớ, phương pháp đặt tên nhóm thị Trong hầu hết ngơn ngữ lập trình, có cho phép gọi đến macro hay chương trình câu lệnh để thi hành nội dung mơ tả macro hay chương trình thông qua tên Việc dùng tên cho phép chương trình đạt tới linh hoạt cao có giá trị lớn việc tái sử dụng mã nguồn (vì người viết mã khơng cần phải lặp lại đoạn mã giống mà việc định nghĩa macro hay chương trình con) Các tham chiếu gián tiếp đến chương trình khả dụng hay phận liệu xác định từ trước cho phép nhiều ngôn ngữ định hướng ứng dụng tích hợp thao tác khác (Anh Loan, 2019b) Cơ chế tham khảo việc sử dụng mã nguồn: Để chạy chương trình, cần có cách xác định dung lượng nhớ có sẵn để lưu trữ liệu Phương pháp tiếng sử dụng tên 86 TRƯỜNG ĐẠI HỌC NAM CẦN THƠ Tạp chí Khoa học Kinh tế phát triển số 12 biến Trong số ngôn ngữ, khoảng trắng gián tiếp thực chứa trỏ đến vùng nhớ khác tham chiếu triển khai biến nhóm biến Phương pháp gọi đặt tên cho cửa hàng Giống cửa hàng đặt tên, cách đặt tên cho tập hợp hướng dẫn Trong hầu hết ngơn ngữ lập trình, macro chương trình gọi dạng hướng dẫn để thực thi mô tả macro chương trình theo tên Việc sử dụng tên cung cấp nhiều tính linh hoạt chương trình quan trọng sử dụng lại mã (người viết không cần phải lặp lại đoạn mã, họ cần xác định macro chương trình con) Nhiều mã thực cách gián tiếp tham chiếu đến chương trình có sẵn mục liệu xác định trước Ngơn ngữ ứng dụng để tích hợp hoạt động khác (Nguyễn Tịnh 2019) Từ năm 1952 đến năm 2000 2.1 Ngơn ngữ lập trình Vào năm 1940, máy tính chạy điện đại tạo Tốc độ hạn chế dung lượng nhớ buộc lập trình viên phải viết chương trình ngơn ngữ lắp ráp thủ công Cuối người ta nhận lập trình ngơn ngữ lắp ráp địi hỏi nhiều nỗ lực trí tuệ Một đề xuất ban đầu cho ngơn ngữ lập trình cấp cao Plankalkül, phát triển Konrad Zuse cho máy tính Z1 ông từ năm 1943 đến năm 1945 không thực vào thời điểm (Rojas, Rẳl 2000) Các ngơn ngữ lập trình hoạt động thiết kế để truyền đạt hướng dẫn cho máy tính viết vào đầu năm 1950 Mã ngắn (Short Code) John Mauchly, đề xuất vào năm 1949, ngôn ngữ cấp cao phát triển cho máy tính điện tử Không giống mã máy, câu báo cáo Mã ngắn đại diện cho biểu thức toán học dạng dễ hiểu Tuy nhiên, chương trình phải dịch sang mã máy chạy, làm cho trình chậm nhiều so với chạy mã máy tương đương (iTEK News, 2018) Vào đầu năm 1950, Alick Glennie phát triển Autocode, ngơn ngữ lập trình biên soạn đầu tiên, Đại học Manchester Năm 1954, lần lặp thứ hai ngôn ngữ, gọi "Mark Autocode", phát triển cho Mark R A Brooker Brooker phát triển mã tự động cho Ferranti Mercury vào năm 1950 kết hợp với Đại học Manchester Phiên cho EDSAC phát minh Douglas Hartree Phịng thí nghiệm Tốn học Đại học Cambridge vào năm 1961 Được gọi EDSAC Autocode, phát triển thẳng từ Mercury Autocode thích nghi với hồn cảnh thực tế, tối ưu hóa mã đối tượng chẩn đốn ngơn ngữ nguồn nâng cao Một chủ đề phát triển đại riêng biệt, Atlas Autocode phát triển Đại học Manchester Atlas 1.(Sebesta W.S, 2006) Năm 1954, FORTRAN phát minh IBM nhóm dẫn đầu John Backus; ngơn ngữ lập trình mục đích chung cấp cao sử dụng rộng rãi để có thực chức năng, trái ngược với thiết kế giấy Khi FORTRAN lần giới 87 TRƯỜNG ĐẠI HỌC NAM CẦN THƠ Tạp chí Khoa học Kinh tế phát triển số 12 thiệu, xem với hoài nghi lỗi, chậm trễ phát triển hiệu so sánh chương trình "mã hóa tay" viết hội đồng Tuy nhiên, thị trường phần cứng phát triển nhanh chóng; ngơn ngữ cuối trở nên tiếng với hiệu Nó ngơn ngữ phổ biến cho máy tính hiệu suất cao sử dụng cho chương trình có điểm chuẩn xếp hạng siêu máy tính nhanh giới (Padua David, 2000) Một ngôn ngữ lập trình ban đầu khác phát minh Grace Hopper Mỹ, gọi FLOW-MATIC Nó phát triển cho UNIVAC I Remington Rand giai đoạn từ năm 1955 đến năm 1959 Hopper phát khách hàng xử lý liệu kinh doanh không thoải mái với ký hiệu toán học, vào đầu năm 1955, bà nhóm viết đặc điểm kỹ thuật cho ngơn ngữ lập trình tiếng Anh thực nguyên mẫu Trình biên dịch FLOW-MATIC công khai vào đầu năm 1958 hoàn thành đáng kể vào năm 1959 Flow-Matic ảnh hưởng lớn việc thiết kế COBOL, có hậu duệ trực tiếp aimaco sử dụng thực tế vào thời điểm (Sammet Jean E 1972) 2.2 Giai đoạn từ năm 1960 đến năm 1970 Giai đoạn từ cuối năm 1960 đến cuối năm 1970 mang lại bước phát triển lớn ngơn ngữ lập trình Hầu hết mơ hình ngơn ngữ sử dụng phát minh giai đoạn này: • Speakeasy, phát triển vào năm 1964 Phòng thí nghiệm Quốc gia Argonne (ANL) Stanley Cohen, gói lập trình OOPS (hướng đối tượng, giống gói số MATLAB, IDL Mathematica) sau Speakeasy có cú pháp tảng Fortran rõ ràng Nó lần đề cập đến tính tốn vật lý hiệu nội ANL, sửa đổi để sử dụng nghiên cứu (như "Modeleasy") cho Hội đồng Dự trữ Liên bang vào đầu năm 1970 sau cung cấp thương mại; Speakeasy Modeleasy sử dụng (Cohen Stanley, 1971) • Simula, phát minh vào cuối năm 1960 Nygaard Dahl siêu tập hợp Algol 60, ngôn ngữ thiết kế để hỗ trợ lập trình hướng đối tượng.(Nygaard Kristen, 1978) • C- ngơn ngữ lập trình hệ thống ban đầu, phát triển Dennis Ritchie Ken Thompson Bell Labs từ năm 1969 đến 1973 (Fruderica 2020) • Smalltalk (giữa năm 1970) cung cấp thiết kế hồn chỉnh ngơn ngữ hướng đối tượng (Kay Alan, 2017) • Prolog, thiết kế vào năm 1972 Colmerauer, Roussel, Kowalski, ngơn ngữ lập trình logic (Bratko Ivan, 2012) • ML xây dựng hệ thống loại đa hình (được phát minh Robin Milner vào năm 1973) đầu trang Lisp, tiên phong đánh máy ngơn ngữ lập trình chức tĩnh (Robin Milner, 1978) 88 TRƯỜNG ĐẠI HỌC NAM CẦN THƠ Tạp chí Khoa học Kinh tế phát triển số 12 Mỗi ngôn ngữ sinh gia đình hậu duệ, hầu hết ngơn ngữ đại biết đến tổ tiên họ Những năm 1960 1970 chứng kiến tranh luận đáng kể giá trị "chương trình có cấu trúc", có nghĩa lập trình mà khơng cần sử dụng "goto" Một phần đáng kể lập trình viên tin rằng, ngơn ngữ cung cấp "goto", phong cách lập trình xấu để sử dụng ngoại trừ trường hợp hoi Cuộc tranh luận có liên quan chặt chẽ đến thiết kế ngơn ngữ: số ngơn ngữ hồn tồn khơng bao gồm "goto", buộc phải lập trình có cấu trúc lập trình viên Để cung cấp thời gian biên dịch nhanh hơn, số ngôn ngữ cấu trúc cho "bỏ qua trình biên dịch" 2.3 Giai đoạn năm 80 kỷ 20 Những năm 1980 năm củng cố tương đối ngôn ngữ bắt buộc Thay phát minh mơ hình mới, tất phong trào xây dựng dựa ý tưởng phát minh thập kỷ trước C++ kết hợp lập trình hướng đối tượng hệ thống Chính phủ Hoa Kỳ tiêu chuẩn hóa Ada- ngơn ngữ lập trình hệ thống thiết kế để sử dụng nhà thầu quốc phòng Ở Nhật Bản nơi khác, khoản tiền lớn chi cho việc điều tra gọi ngơn ngữ lập trình hệ thứ năm kết hợp cấu trúc lập trình logic Cộng đồng ngơn ngữ chức chuyển sang chuẩn hóa ML Lisp Nghiên cứu Mirandamột ngôn ngữ chức với đánh giá lười biếng , bắt đầu nắm giữ thập kỷ Một xu hướng quan trọng thiết kế ngôn ngữ tăng cường tập trung vào lập trình cho hệ thống quy mơ lớn thơng qua việc sử dụng mô-đun, đơn vị tổ chức quy mô lớn mã Modula,Ada ML phát triển hệ thống mô-đun đáng ý năm 1980 Các hệ thống mô-đun thường kết với cấu trúc lập trình chung chung cơng nghệ, chất, mô-đun parameterized Mặc dù mơ hình đời cho ngơn ngữ lập trình bắt buộc khơng xuất hiện, nhiều nhà nghiên cứu mở rộng ý tưởng ngôn ngữ trước điều chỉnh chúng theo bối cảnh Ví dụ, ngôn ngữ hệ thống Argus Emerald thích nghi lập trình hướng đối tượng cho hệ thống phân tán Những năm 1980 mang lại tiến việc thực ngôn ngữ lập trình Phong trào RISC kiến trúc máy tính giả định phần cứng nên thiết kế cho trình biên dịch cho lập trình viên Được hỗ trợ cải tiến tốc độ xử lý cho phép kỹ thuật biên dịch ngày tích cực, phong trào RISC gây quan tâm lớn đến công nghệ biên dịch cho ngôn ngữ cấp cao 2.4 Giai đoạn năm 90 kỷ 20 Sự phát triển nhanh chóng Internet vào năm 1990 kiện lịch sử lớn ngơn ngữ lập trình Bằng cách mở tảng hoàn toàn cho hệ thống máy tính, Internet tạo hội cho ngôn ngữ áp dụng Đặc biệt, ngơn ngữ lập trình JavaScript trở nên phổ biến tích hợp sớm với trình duyệt web Netscape Navigator Nhiều ngôn ngữ sử dụng rộng rãi việc phát triển ứng 89 TRƯỜNG ĐẠI HỌC NAM CẦN THƠ Tạp chí Khoa học Kinh tế phát triển số 12 dụng tùy chỉnh cho máy chủ web PHP Những năm 1990 không thấy lạ ngôn ngữ bắt buộc , nhiều tái tổ hợp trưởng thành ý tưởng cũ Thời đại bắt đầu lây lan ngôn ngữ chức Một triết lý thúc đẩy lớn suất lập trình viên Nhiều ngơn ngữ "phát triển ứng dụng nhanh chóng" (RAD) xuất hiện, thường kèm với IDE, thu gom rác thải , hậu duệ ngôn ngữ cũ Tất ngôn ngữ hướng đối tượng Chúng bao gồm Object Pascal, Visual Basic Java Java nói riêng nhận nhiều ý Cấp tiến sáng tạo so với ngôn ngữ RAD ngôn ngữ kịch Chúng không trực tiếp xuống từ ngơn ngữ khác có cú pháp kết hợp tính tự Nhiều người xem xét ngôn ngữ kịch suất ngơn ngữ RAD, thường lựa chọn mà làm cho chương trình nhỏ đơn giản chương trình lớn khó khăn để viết trì Tuy nhiên, ngơn ngữ kịch trở thành ngôn ngữ bật sử dụng liên quan đến Web Từ năm 2000 đến 3.1 C# năm 2001 3.1.1 Tổng quan C # (hay C Sharp) ngơn ngữ lập trình đơn giản phát triển nhóm kỹ sư Microsoft vào năm 2000 C # ngơn ngữ lập trình hướng đối tượng đại dựa hai số ngôn ngữ mạnh mẽ C ++ Java (Thiên Phú, 2019) Nó ngơn ngữ lập trình chạy tảng Microsoft u cầu máy tính Có thể coi NET Framework kết hợp ngôn ngữ C C ++ Từ đó, tận dụng tối đa lợi ích hai ngơn ngữ (Hồng Nam, 2014) Vì khả đặc biệt nó, C # sử dụng để lập trình ứng dụng Tuy nhiên, ưu điểm lớn lập trình phát triển ứng dụng web, ngày trở nên phổ biến tảng di động (Nguyễn Hải, 2020) C # thiết kế cho Cơ sở hạ tầng ngôn ngữ chung (CLI), chứa mã thực thi mơi trường thời gian chạy, đồng thời sử dụng ngôn ngữ cấp cao khác tảng kiến trúc máy tính khác (VietAds, 2021) 3.1.2 Lịch sử Trong trình phát triển NET Framework, thư viện lớp ban đầu viết cách sử dụng hệ thống trình biên dịch mã quản lý gọi "Simple Managed C" (SMC) Vào tháng năm 1999, Anders Hejlsberg thành lập nhóm để xây dựng ngơn ngữ vào thời điểm gọi Cool, viết tiền cho "Ngôn ngữ hướng đối tượng giống C" Microsoft xem xét việc giữ tên "Cool" tên cuối ngôn ngữ, chọn không làm lý thương hiệu Vào thời điểm dự án NET công bố công khai Hội nghị nhà phát triển chuyên nghiệp tháng năm 2000, ngôn ngữ đổi tên thành C #, thư viện lớp thời gian chạy ASP.NET chuyển sang C # (Hamilton Naomi, 2008) 90 TRƯỜNG ĐẠI HỌC NAM CẦN THƠ Tạp chí Khoa học Kinh tế phát triển số 12 Hejlsberg nhà thiết kế C #và kiến trúc sư trưởng Microsoft, trước tham gia vào việc thiết kế Turbo Pascal, Embarcadero Delphi (trước CodeGear Delphi, Inprise Delphi Borland Delphi), Visual J ++ Trong vấn báo kỹ thuật, ông nói sai sót hầu hết ngơn ngữ lập trình (ví dụ: C ++, Java, Delphi Smalltalk) thúc đẩy nguyên tắc Common Language Runtime (CLR), từ đó, thúc đẩy thiết kế ngơn ngữ C# (Wylie Wong, 2002) 3.1.3 Đặc trưng C # ngôn ngữ đơn giản: C # loại bỏ số phức tạp nhầm lẫn từ ngôn ngữ Java C ++ macro, kế thừa loại bỏ lớp sở ảo Các giao diện, cú pháp, biểu thức, toán tử, v.v dựa C C ++, dễ lập trình sử dụng Loại bỏ trùng lặp không cần thiết cải thiện cú pháp để sửa đổi (Nguyễn Anh Tuấn, 2018) C # ngơn ngữ đại Nó ngơn ngữ đơn giản đại với tất chức cần thiết Tất khái niệm lập trình mơ hồ mà học, chẳng hạn xử lý ngoại lệ, kiểu mở rộng liệu bảo mật mã nguồn, tích hợp vào C Sharp C # ngơn ngữ lập trình hướng đối tượng Đối với lập trình hướng đối tượng, kỹ thuật phải thỏa mãn đầy đủ thuộc tính trừu tượng, đóng gói, đa hình (polymorphism) kế thừa C # ngơn ngữ khơng có từ khóa Sự đời C # bác bỏ quan điểm cho ngơn ngữ có nhiều từ khóa có sức mạnh Bằng chứng cho thấy C Sharp ngơn ngữ giới hạn từ khóa khoảng 80 từ khóa 10 kiểu liệu tích hợp, chức mà cung cấp mạnh mẽ đủ mạnh để thực tác vụ (Ngọc Muội, 2020) 3.1.4 Ưu điểm Giao diện C rõ ràng tạo cấu trúc ngôn ngữ giống nhiều ngôn ngữ thông thường Như vậy, người dùng khơng dễ dàng tiếp cận mà cịn nhanh chóng làm quen với ngơn ngữ lập trình (Hồng Nam, 2014) C Sharp dùng để biên dịch nhiều máy tính khác Được thừa hưởng nhiều ưu điểm từ tảng C, C ++, Java, v.v (Hoàng Nam, 2014) Là phần sản phẩm Microsoft NET Framework, phần mềm nhanh chóng nhận tin tưởng người dùng sử dụng rộng rãi khắp giới Ngoài ra, C Sharp hỗ trợ Visual Studio IDE nhiều plugin mạnh mẽ (Hoàng Nam, 2014) 3.2 Groovy năm 2003 3.2.1 Tổng quan Groovy ngơn ngữ lập trình hướng đối tượng dựa Java Nó ngơn ngữ lập trình động với tính tương tự Python, Ruby, Perl Smalltalk Nó sử dụng ngôn ngữ kịch chạy tảng Máy ảo Java (Paul King, 2020) 91 TRƯỜNG ĐẠI HỌC NAM CẦN THƠ Tạp chí Khoa học Kinh tế phát triển số 12 Groovy sử dụng cú pháp tương tự Java, khơng có dấu chấm phẩy cuối dịng, tự động chuyển đổi thành bytecode thực thi JVM (Java Virtual Machine) (Ly Nam, 2018) 3.2.2 Lịch sử James Strachan lần nói phát triển Groovy blog vào tháng năm 2003 Vào tháng năm 2004, Groovy đệ trình lên JCP với tên JSR 241 chấp nhận phiếu Một số phiên phát hành từ năm 2004 đến 2006 Sau nỗ lực chuẩn hóa Quy trình Cộng đồng Java (JCP) bắt đầu, việc đánh số phiên thay đổi phiên có tên "1.0" phát hành vào ngày tháng năm 2007 Sau nhiều phiên beta ứng cử viên phát hành đánh số 1.1, vào ngày tháng 12 năm 2007, Groovy 1.1 Final phát hành đánh số lại Groovy 1.5 để phản ánh nhiều thay đổi thực (James Strachan, 2003) 3.2.3 Đặc trưng Hầu hết tệp Java hợp lệ tệp Groovy hợp lệ Mặc dù hai ngôn ngữ tương tự nhau, mã Groovy nhỏ gọn hơn, khơng cần tất yếu tố mà Java cần Điều giúp lập trình viên Java học groovy cách bắt đầu với cú pháp Java quen thuộc trước có nhiều thành ngữ lập trình Groovy (Wayback Machine, 2010) Các tính groovy khơng có sẵn Java bao gồm nhập tĩnh động (với từ khóa), tải toán tử, cú pháp gốc cho danh sách mảng kết hợp (bản đồ), hỗ trợ gốc cho biểu thức quy, lặp đa hình, nội suy chuỗi, thêm phương pháp trợ giúp toán tử điều hướng an toàn để tự động kiểm tra trỏ null (Wayback machine, 2004) Vì phiên Groovy hỗ trợ mơ-đun (chỉ vận chuyển lọ cần thiết theo nhu cầu dự án, làm giảm kích thước thư viện groovy), kiểm tra loại, biên dịch tĩnh, cải tiến cú pháp Project Coin, khối multicast cải tiến hiệu suất liên tục cách sử dụng hướng dẫn giới thiệu Java Groovy cung cấp hỗ trợ gốc cho ngôn ngữ đánh dấu khác XML HTML, thực thơng qua cú pháp Mơ hình Đối tượng Tài liệu nội tuyến (DOM) Tính cho phép định nghĩa thao tác nhiều loại tài sản liệu không đồng với cú pháp phương pháp lập trình thống súc tích Khơng giống Java, tập tin mã nguồn Groovy thực kịch (không biên dịch), chứa mã bên ngồi định nghĩa lớp, lớp với phương pháp chính, Runnable Groovy Test Case Một kịch Groovy phân tích đầy đủ, biên dịch, tạo trước thực (tương tự Python Ruby) phiên biên dịch không lưu artifact trình 3.2.4 Ưu điểm Groovy tạo để khắc phục nhiều hạn chế Java giúp lập trình dễ dàng Groovy hỗ trợ tới 99% cú pháp Java, dễ dàng chép dán mã Java vào Groovy 92 TRƯỜNG ĐẠI HỌC NAM CẦN THƠ Tạp chí Khoa học Kinh tế phát triển số 12 để thực thi Ngoài ra, so với Java, Groovy có cú pháp riêng ngắn gọn giúp viết mã nhanh (Nhà sách tin học, 2020) Groovy tương tác với thư viện Java, khai báo sử dụng tất thư viện Java Groovy Các lập trình viên Java thấy dễ dàng thú vị chuyển sang mã Groovy (Dương Minh Kiệt 2020) 3.3 Scala năm 2003 3.3.1 Tổng quan Scala loại bỏ số cấu trúc phức tạp khỏi khuôn khổ Java NET thêm chúng vào số tính nâng cao (Odersky Martin, 2006) Scala ngắn gọn, súc tích, dễ đọc dễ học Cấu trúc nhẹ ngắn gọn Scala cho phép lập trình viên giảm kích thước mã họ từ hai đến ba lần so với Java Do đó, mã nhanh dễ bảo trì (Odersky Martin, 2008) Nó xác trang bị hệ thống phát tránh nhiều lỗi ứng dụng thời điểm biên dịch.Ngôn ngữ có tính mở rộng Nó cung cấp ngơn ngữ máy độc đáo, dễ dàng thêm thư viện, hỗ trợ việc lập trình dựa thư viện hàm có sẵn 3.3.2 Lịch sử Thiết kế Scala bắt đầu vào năm 2001 École Polytechnique Fédérale de Lausanne (EPFL) (ở Lausanne, Thụy Sĩ ) Martin Odersky Nó tiếp nối từ công việc Funnel, ngôn ngữ lập trình kết hợp ý tưởng từ lập trình chức lưới Petri Odersky trước làm việc Generic Java javac, trình biên dịch Java Sun (Martin Odersky, 2006) Sau phát hành nội vào cuối năm 2003, Scala phát hành công khai vào đầu năm 2004 tảng Java Một phiên thứ hai (v2.0) vào tháng năm 2006 3.3.3 Đặc trưng Scala có mơ hình biên dịch giống Java C #, cụ thể biên dịch riêng biệt tải lớp động, để mã Scala gọi thư viện Java Đặc điểm hoạt động Scala giống Java Trình biên dịch Scala tạo mã byte gần giống với mã tạo trình biên dịch Java Trên thực tế, mã Scala dịch ngược thành mã Java đọc được, ngoại trừ số hoạt động hàm tạo định Đối với máy ảo Java (JVM), phân biệt mã Scala mã Java Sự khác biệt thư viện thời gian chạy bổ sung scala-library.jar (Odersky M Rompf T, 2014) Scala bổ sung số lượng lớn tính so với Java có số khác biệt mơ hình biểu thức kiểu nó, điều làm cho ngơn ngữ mặt lý thuyết loại bỏ số trường hợp góc Java (David Pollak, 2008) 93 TRƯỜNG ĐẠI HỌC NAM CẦN THƠ Tạp chí Khoa học Kinh tế phát triển số 12 3.3.4 Ưu điểm Scala ngắn gọn, súc tích, dễ đọc, dễ học dễ hiểu Cấu trúc Scala nhẹ ngắn gọn đến mức nhà phát triển giảm kích thước mã nguồn từ hai đến ba lần so với Java Do đó, mã nhanh dễ bảo trì (Bell, 2020) Scala xác phát tránh nhiều lỗi ứng dụng thời điểm biên dịch Scala lớn Nó cung cấp ngơn ngữ máy giúp dễ dàng thêm cấu trúc ngôn ngữ làm thư viện, giúp hỗ trợ lập trình dựa thư viện hàm có (Trần Thị Thùy Dương, 2015) (Mỹ Phượng, 2020) 3.4 Go năm 2009 3.4.1 Tổng quan Go ngôn ngữ lập trình biên dịch, nhập tĩnh thiết kế Google Robert Griesemer, Rob Pike Ken Thompson.Về mặt cú pháp, Go tương tự C, với tính an tồn nhớ, thu gom rác, nhập cấu trúc, đồng thời kiểu CSP Ngôn ngữ thường gọi Golang tên miền nó, golang.org, tên riêng Go (Kincaid Jason, 2009) 3.4.2 Lịch sử Go thiết kế Google năm 2007 để cải thiện chương trình suất kỷ nguyên đa lõi, mạng máy lớn codebases Các nhà thiết kế muốn giải lời trích ngôn ngữ khác sử dụng Google, giữ đặc điểm hữu ích chúng: nhập tĩnh hiệu thời gian chạy (như C), khả đọc khả sử dụng (như Python JavaScript), mạng hiệu suất cao đa xử lý (Pike Rob, 2010) 3.4.3 Đặc trưng Mặc dù tính đồng thời Go khơng chủ yếu nhắm vào xử lý song song, chúng sử dụng để lập trình máy đa xử lý nhớ dùng chung Nhiều nghiên cứu khác thực hiệu phương pháp Một nghiên cứu so sánh kích thước (tính dịng mã) tốc độ chương trình viết lập trình viên dày dạn không quen với ngôn ngữ việc sửa chương trình chun gia cờ vây (từ nhóm phát triển Google), thực tương tự Chapel, Click Intel TBB Nghiên cứu phát người khơng phải chun gia có xu hướng viết thuật toán chia để trị với câu lệnh lần đệ quy, chuyên gia viết chương trình đồng hóa cơng việc phân phối cách sử dụng quy trình xử lý Các chương trình chuyên gia thường nhanh hơn, lâu (Tang Peiyi, 2010) 3.4.4 Ưu điểm Kết nhanh chóng: Trình biên dịch nhanh làm cho hoạt động ngơn ngữ thơng dịch Khơng biết biên dịch Có thể nghĩ sử dụng ngơn ngữ dịch Ruby 94 TRƯỜNG ĐẠI HỌC NAM CẦN THƠ Tạp chí Khoa học Kinh tế phát triển số 12 Bảo mật: gõ tĩnh mạnh mẽ thu thập rác Một phím bấm mạnh có nghĩa chuyển liệu đâu Phải rõ ràng Gõ tĩnh có nghĩa trình biên dịch biết kiểu tất biến Go khơng có chuyển đổi loại theo mặc định Ví dụ: uint8 uint16 loại khác (ngoại trừ số trường hợp) Dễ dàng làm việc với: Nó súc tích, rõ ràng dễ đọc Hiện đại: Hỗ trợ tích hợp sẵn ngơn ngữ cho ứng dụng phân tán nối mạng đa lõi (Đỗ Hoàng, 2019) 3.5 Swift năm 2014 3.5.1 Tổng quan Swift ngơn ngữ lập trình đa mục đích, đa mơ hình, biên dịch Apple Inc cộng đồng mã nguồn mở, phát hành lần đầu vào năm 2014 Swift phát triển để thay cho ngơn ngữ lập trình Objective-C trước Apple, với tên gọi Objective-C không thay đổi kể từ đầu năm 1980 thiếu đặc điểm ngôn ngữ đại Swift hoạt động với khung Cocoa Cocoa Touch Apple, khía cạnh quan trọng thiết kế Swift khả tương tác với phần lớn mã Objective-C có phát triển cho sản phẩm Apple thập kỷ trước Nó xây dựng với khung biên dịch LLVM mã nguồn mở đưa vào Xcode kể từ phiên 6, phát hành vào năm 2014 Trên tảng Apple, sử dụng thư viện thời gian chạy Objective-C cho phép C, Objective-C, C ++ Swift mã để chạy chương trình (Timmer John, 2014) 3.5.2 Lịch sử Việc phát triển Swift bắt đầu vào tháng năm 2010 Chris Lattner, với hợp tác cuối nhiều lập trình viên khác Apple Swift lấy ý tưởng ngôn ngữ "từ Objective-C, Rust, Haskell, Ruby, Python, C #, CLU nhiều thứ khác để liệt kê" Vào ngày tháng năm 2014, ứng dụng Apple Worldwide Developers Conference (WWDC) trở thành ứng dụng phát hành công khai viết Swift Một phiên beta ngơn ngữ lập trình phát hành cho nhà phát triển đăng ký Apple hội nghị, công ty không hứa phiên Swift cuối mã nguồn tương thích với phiên thử nghiệm Apple lên kế hoạch cung cấp chuyển đổi mã nguồn cần cho phát hành đầy đủ (Lattner Chris 2014) 3.5.3 Đặc trưng Swift thay cho ngôn ngữ Objective-C sử dụng khái niệm lý thuyết ngôn ngữ lập trình đại cố gắng trình bày cú pháp đơn giản Trong thời gian giới thiệu, mơ tả đơn giản "Objective-C khơng có hành lý C" (Metz Rachel, 2014) Theo mặc định, Swift không tiếp xúc với trỏ khác khơng an tồn accessors, trái ngược với Objective-C, sử dụng trỏ pervasively để đề cập đến trường hợp đối tượng Ngoài ra, việc sử dụng cú pháp giống Smalltalk Objective-C để thực lệnh gọi phương thức thay kiểu ký hiệu dấu chấm hệ thống không gian tên quen 95 TRƯỜNG ĐẠI HỌC NAM CẦN THƠ Tạp chí Khoa học Kinh tế phát triển số 12 thuộc với lập trình viên từ ngơn ngữ hướng đối tượng (OO) phổ biến khác Java C # Swift giới thiệu tham số đặt tên giữ lại khái niệm Objective-C chính, bao gồm giao thức, bao đóng danh mục, thường thay cú pháp cũ phiên rõ ràng cho phép khái niệm áp dụng cho cấu trúc ngôn ngữ khác, kiểu liệt kê (enums) (Weber Harrison, 2014) 3.5.4 Ưu điểm Phát triển ứng dụng di động nhanh chóng dễ dàng Thay thường xuyên chạy trình biên dịch chương trình thử nghiệm, lập trình viên tập trung vào tích hợp phức tạp Nó làm giảm mức tiêu thụ điện phần cứng chi phí cho nhà phát triển (Mỹ Phượng, 2020) Mã Swift ngắn gọn, súc tích dễ đọc Cụ thể, viết 3-5 dịng mã Obj-C dòng mã Swift Các lớp đối tượng Swift đơn giản hóa dịng mã tổ chức hợp lý logic Điều khơng giúp lập trình viên tiết kiệm thời gian hồn thành dự án mà cịn đơn giản hóa q trình bảo trì sửa chữa lỗi tương lai Swift kế thừa mở rộng tất chức Objective-C cũ, cung cấp cho lập trình viên thời gian chạy tốt, quen thuộc, dễ quản lý phát triển (Bell, 2020) Swift hoạt động liên tục với Objective-C, viết ứng dụng hai ngôn ngữ Các ứng dụng Swift xây dựng tuân thủ obj-C tiêu tốn phần cứng hơn, mang đến cho người dùng trải nghiệm chơi game tuyệt vời thiết bị iOS (Bell, 2020) Kết luận Lịch sử ngôn ngữ lập trình thật hấp dẫn Ai nghĩ thuật toán từ kỷ 19 mở đường cho xã hội phát triển theo hướng công nghệ mà sống ngày Từ mã máy ban đầu mã phức tạp mà người đọc được, cung cấp lượng cho cơng nghệ u thích ngày nay, ngơn ngữ lập trình chặng đường dài Điều chắn là, lập trình máy tính tiếp tục phát triển làm 150 năm qua thật thú vị thấy tương lai mang lại 96 TRƯỜNG ĐẠI HỌC NAM CẦN THƠ Tạp chí Khoa học Kinh tế phát triển số 12 TÀI LIỆU THAM KHẢO [1] Karen McCandless 2018, What is Computer Programming?, Codecademy, truy cập ngày 18 tháng 01 năm 2021, [2] Dương Hồi Thương 2020, “Lập trình gì? Bạn hiểu lập trình” blog, ngày 13 tháng 11, Code Gym, truy cập ngày 18 tháng 01 năm 2021, [3] Nguyễn Tịnh 2019, Ngơn ngữ lập trình gì?, Smartline and AZDIGI hosting, truy cập ngày 18 tháng 01 năm 2021, [4] Nguyễn Linh Trang 2018, Có ngơn ngữ lập trình, Niit-Ict Hà Nội, truy cập ngày 18 tháng 01 năm 2021, [5] Julie Luong 2020, Học lập trình gì? Có khó khơng? Cần học từ đâu, học gì?, Magenest JSC, truy cập ngày 18 tháng 01 năm 2021, [6] Anh Loan 2019, “Các thành phần ngơn ngữ lập trình bạn cần biết” blog, ngày 19 tháng 11, MindX Technology School, truy cập ngày 18 tháng 01 năm 2021, [7] J Fuegi and J Francis 2003, "Lovelace & Babbage and the creation of the 1843 'notes'", Annals of the History of Computing, 25 (4): 16-26, "Lovelace & Babbage and the creation of the 1843 'notes'", Annals of the History of Computing, 25 (4): 16-26 [8] Vũ An 2018, Đâu ngôn ngữ lập trình giới?, Cơng ty Cổ phần Mạng Trực tuyến Metam, truy cập ngày 18 tháng 01 năm 2021, [9] iTEK News 2018, Đâu ngôn ngữ lập trình giới?, Kinh nghiệm tin học, truy cập ngày 18 tháng 01 năm 2021, [10] Ann Dang 2020, Ngơn ngữ máy gì?, Công ty Cổ phần SOC, truy cập ngày 18 tháng 01 năm 2021, [11] Ngọc Lam 2020, Hợp ngữ gì? Ứng dụng hợp ngữ - Assembly Language, Công ty Cổ phần Dịch vụ Truyền thông Hưng Việt, truy cập ngày 18 tháng 01 năm 2021, [12] Jordan Trần 2019, Ngôn ngữ bậc cao ngôn ngữ bậc thấp, Howkteam, truy cập ngày 18 tháng 01 năm 2021, < https://www.howkteam.vn/course/goc-lap-trinh-vien/ngon-ngu-baccao-va-ngon-ngu-bac-thap-3936> [13] Dương Phàm Thiên 2019, “Ngôn ngữ lập trình gì?” blog, ngày 26 tháng 02, Dương Thiên Expert, truy cập ngày 18 tháng 01 năm 2021, [14] Nguyen Minh Trung Gia Dinh 2015, Bài 5: Ngơn ngữ lập trình, Wordpress, truy cập ngày 18 tháng 01 năm 2021, 97 TRƯỜNG ĐẠI HỌC NAM CẦN THƠ Tạp chí Khoa học Kinh tế phát triển số 12 [15] Julie Luong 2020, Ngôn ngữ lập trình gì? 10 Ngơn ngữ phổ biến công dụng chúng, Magenest JSC, truy cập ngày 18 tháng 01 năm 2021, [16] Anh Loan 2019, “Phân loại ngơn ngữ lập trình bản” blog, ngày 25 tháng 11, MindX Technology School, truy cập ngày 18 tháng 01 năm 2021, [17] Nguyễn Tịnh 2019, Phân loại ngơn ngữ lập trình, Smartline and AZDIGI hosting, truy cập ngày 18 tháng 01 năm 2021, [18] Rojas Raúl.2000, "Plankalkül: The First High-Level Programming Language and its Implementation" Institut frame Informatik, Freie Universität Berlin, Technical Report B3/2000 [19] Sebesta, W.S 2006 Concepts of Programming Languages p 44 ISBN 978-0-321-33025-3 [20] Padua David 2000, "The FORTRAN I Compiler" (PDF) Computing in Science and Engineering (1): 70-75 [21] Sammet Jean E 1972, "Programming Languages: History and Future" Communications of the ACM 15 (7): 601-610 [22] Thiên Phú 2019, C# ? Tổng quan C#, KING Vietnam, truy cập ngày 18 tháng 01 năm 2021, [23] Hamilton Naomi 2008, The A-Z of Programming Languages: C# Computerworld, truy cập ngày 18 tháng 01 năm 2021, [24] Ly Nam 2018, Giới thiệu Groovy, có hay ho? , SuSuDev, truy cập ngày 18 tháng 01 năm 2021, [25] James Strachan 2003, Groovy - the birth of a new dynamic language for the Java platform, truy cập ngày 18 tháng 01 năm 2021, [26] Timmer John 2014, A fast look at Swift, Apple's new programming language, Ars Technica, Condé Nast, truy cập ngày 18 tháng 01 năm 2021, [27] Lattner Chris 2014, Chris Lattner's Homepage Chris Lattner., truy cập ngày 18 tháng 01 năm 2021, < http://nondot.org/sabre/> [28] Metz Rachel 2014, Apple Seeks a Swift Way to Lure More Developers, Technology Review, truy cập ngày 18 tháng 01 năm 2021, [29] Weber Harrison 2014, Apple announces 'Swift,' a new programming language for macOS & iOS VentureBeat, truy cập ngày 18 tháng 01 năm 2021, [30] Mỹ Phượng 2020, Những lý nên sử dụng ngơn ngữ lập trình Swift, truy cập ngày 18 tháng 01 năm 2021, [31] Bell 2020, Ngôn ngữ lập trình Swift gì?, SOC, truy cập ngày 18 tháng 01 năm 2021, 98 TRƯỜNG ĐẠI HỌC NAM CẦN THƠ Tạp chí Khoa học Kinh tế phát triển số 12 [32] Nguyễn Hải 2020, Ngơn ngữ lập trình C sharp gì? Ưu nhược điểm C#, chiasekinang.com, truy cập ngày 18 tháng 01 năm 2021, [33] VietAds 2021, C# Là Gì? Tìm Hiểu Về C# Là Gì?, VietAds, truy cập ngày 18 tháng 01 năm 2021, [34] Wylie Wong 2002, Why Microsoft's C# isn't, CNET, truy cập ngày 18 tháng 01 năm 2021, [35] Nguyễn Anh Tuấn 2018, Giới thiệu ngôn ngữ C#, nguyenanhtuanweb.wordpress, truy cập ngày 18 tháng 01 năm 2021, [36] Ngọc Muội 2020, C sharp gì? Những điều cần biết C Sharp, my webside, truy cập ngày 18 tháng 01 năm 2021, [37] Paul King 2020, A history of the Groovy programming language, ACM, Inc, truy cập ngày 18 tháng 01 năm 2021, [38] Wayback Machine 2010, Groovy style and language feature guidelines for Java developers, truy cập ngày 18 tháng 01 năm 2021, [39] Wayback Machine 2010, Groovy - Differences from Java, Groovy.codehaus.org, truy cập ngày 18 tháng 01 năm 2021, [40] Guillaume LaForge 2012, What’s new in Groovy 2.0?, truy cập ngày 18 tháng 01 năm 2021, [41] Nhà sách tin học 2020, “Chia Sẻ Khóa Học Dành Cho Nhà Phát Triển Apache Groovy Toàn Tập” blog, ngày tháng 5, Nhà sách tin học, truy cập ngày 18 tháng 01 năm 2021, [42] Dương Minh Kiệt 2020, Vì ngơn ngữ lập trình Java sử dụng nhiều doanh nghiệp, truy cập ngày 18 tháng 01 năm 2021,

Ngày đăng: 19/11/2022, 16:51

Tài liệu cùng người dùng

Tài liệu liên quan