Khi kỹ thuật điện toán ra đời các chương trình được lập trình trực tiếp bằng mã máy. Ngôn ngữ máy này được gọi là "ngôn ngữ lập trình thế hệ 1". Vậy ngôn ngữ lập trình ở đây nghĩa là gì và 10 ngôn ngữ phổ biến nhất hiện nay là?
Có thể bạn đã đã bạn đã biết, dạng chương trình duy nhất mà máy tính có thể thực thi theo lệnh trực tiếp là ngôn ngữ máy hay mã máy. Nó có dạng là tập hợp các dãy các số nhị phân, thường được ghép nhóm thành byte 8 bit cho các hệ xử lý như 8/16/32/64 bit. Để có được bộ mã này, hiện nay người ta sử dụng ngôn ngữ lập trình để tạo ra chương trình ở dạng văn bản và sử dụng trình dịch để chuyển sang mã máy.
I. Ngôn ngữ lập trình là gì?
1. Khái niệm ngôn ngữ lập trình là gì?
Khái niệm ngôn ngữ lập trình là gì?
Sau đó "ngôn ngữ lập trình thế hệ 2" ( hay 2GL, second-generation programming languages) ra đờ. Các mã lệnh này được thay thế bằng các tên gợi nhớ và được lập trình được ở dạng văn bản chữ (text) rồi dịch san g loại mã máy. Hợp ngữ (assembly languages) lúc này ra đời giúp hoạt động lập trình thuận lợi hơn, khi dịch có thể liên kết với thư viện các chương trình con ở cả dạng macro (hay đoạn chưa dịch) và dạng mã đã dịch. Hợp ngữ được dùng hiện nay là ngôn ngữ bậc thấp (hay low-level programming languages) để tinh chỉnh ngôn ngữ bậc cao để thực hiện truy nhập trực tiếp phần cứng cụ thể trong việc lập trình cho hệ thống, tạo các hiệu ứng đặc biệt đếncho chương trình.
Ngôn ngữ lập trình bậc cao (hay high-level programming languages) hay "ngôn ngữ lập trình thế hệ 3" (3GL, third-generation programming languages) đã ra đời vào những năm 1950. Đây là các ngôn ngữ hình thức, dùng cho hoạt động lập trình máy điện toán và không còn lệ thuộc vào hệ máy tính cụ thể nào. Ngôn ngữ lập trình thế hệ 3 giải phóng người lập trình ứng dụng làm việc trong các hệ điều hành xác định mà không phải quan tâm đến phần cứng cụ thể nào. Các ngôn ngữ được liên tục phát triển đa dạng với các dạng và biến thể mới, theo từng bước phát triển của kỹ thuật điện toán.
Vậy ngôn ngữ lập trình là gì? Với ngôn ngữ lập trình thế hệ 3 thì khái niệm được nhắc tới là:
Ngôn ngữ lập trình được định nghĩa là một hệ thống được ký hiệu hóa dùng để miêu tả những tính toán (bằng máy tính) trong một định dạng mà cả con người và máy đều có thể đọc và hiểu được nội dung.
Theo định nghĩa được nhắc tới thì một ngôn ngữ lập trình phải thỏa mãn được cả hai điều kiện cơ bản như sau:
Dễ hiểu và dễ sử dụng đối với người thực hiện lập trình để từ đó có thể dùng để giải quyết nhiều bài toán khác nhau.
Miêu tả cách đầy đủ và rõ ràng các tiến trình - process để chạy êm được trên các hệ máy tính khác nhau.
2. Thông dịch và biên dịch trong ngôn ngữ lập trình là gì?
Thông dịch và biên dịch trong ngôn ngữ lập trình là gì?
Một tập hợp các chỉ thị được biểu diễn qua ngôn ngữ lập trình nhằm mục đích là thực hiện các lệnh máy tính nào đó được gọi là một chương trình. Khái niệm này còn được gọi bằng những tên khác là chương trình máy tính hoặc chương trình điện toán. Chương trình được viết cho máy tính thì được gọi là phần mềm máy tính. Như chương trình Microsoft Word là một cách gọi chung; còn cách gọi phần mềm Microsoft Word chỉ rõ hơn rằng nó là một chương trình ứng dụng.
Khái niệm lập trình dùng để chỉ quá trình mà con người tạo ra các chương trình máy tính thông qua công cụ là ngôn ngữ lập trình. Người ta còn gọi đó là quá trình mã hoá các thông tin tự nhiên thành ngôn ngữ máy. Từ viết mã cũng được sử dụng trong nhiều trường hợp để chỉ cùng một ý này.
Như vậy, theo định nghĩa trên thì mỗi ngôn ngữ lập trình máy tính cũng chính là một chương trình, nhưng nó còn có thể được dùng để tạo nên các chương trình khác nữa. Văn bản viết bằng ngôn ngữ lập trình để tạo thành chương trình được gọi là mã nguồn.
Thao tác chuyển đổi các mã nguồn thành chuỗi các chỉ thị trên máy tính được thực hiện tương tự như việc chuyển đổi chiều qua lại giữa các ngôn ngữ tự nhiên của con người. Các thao tác chuyển đổi này gọi là biên dịch hay cách gọi khác là dịch. Nếu quá trình dịch thực hiện đồng thời với quá trình thực thi thì ta gọi đó là thông dịch; còn nếu diễn ra trước, ta gọi đó là biên dịch. Các phần mềm dịch tương ứng cũng được gọi là phần mềm thông dịch và phần mềm biên dịch.
Một phần mềm thông dịch là một phần mềm có khả năng đọc, chuyển mã nguồn của một ngôn ngữ và ra lệnh cho máy tính tiến hành các tính toán dựa theo cú pháp của ngôn ngữ lập trình.
Một phần mềm biên dịch hay ngắn gọn hơn trình biên dịch là phần mềm có khả năng chuyển mã nguồn của một ngôn ngữ lập trình ban đầu sang dạng mã mới thường là một ngôn ngữ cấp thấp hơn.
Ngôn ngữ lập trình cấp thấp nhất là một chuỗi các chỉ thị máy tính mà có thể được thực thi trực tiếp bởi máy tính (thông qua các theo tác trên vùng nhớ). Trước đây, hầu hết các trình biên dịch cũ phải dịch từ mã nguồn sang bộ mã phụ (các tệp có dạng *.obj) rồi mới tạo ra tập tin thực thi. Ngày nay, hầu hết các trình biên dịch đều có khả năng dịch mã nguồn trực tiếp thành các tập tin thực thi hay thành các dạng mã khác thấp hơn, tuỳ theo yêu cầu của người lập trình.
Điểm khác nhau giữa hai hoạt động thông dịch và biên dịch là: trình thông dịch thì thực hiện dịch từng câu lệnh theo yêu cầu thực thi và chương trình đích vừa được tạo ra sẽ không còn được lưu lại; trong khi đó, trình biên dịch sẽ thực hiện dịch toàn bộ chương trình, cho ra chương trình đích sẽ được lưu lại trong máy tính rồi mới tiếp thực hiện chương trình. Một chương trình máy tính có khả năng thực thi được cả biên dịch, thông dịch, hoặc phối hợp cả hai cái trên.
Để đạt được yêu cầu về độ chính xác và tính hiệu quả chương trình, mã viết ra nhiều khi khó đọc ngay cả với chính người tạo ra mã đó, chưa kể tới người khác. Chính vì nguyên nhân đó, trong mọi tài liệu, hướng dẫn lập trình đều khuyên nên thêm các chú giải vào phần mã nguồn trong quá trình viết. Các chú giải giúp người xem rất nhiều trong việc đọc và hiểu mã nguồn; đối với các chương trình phức tạp, chú giải là thành phần quan trọng rất lớn trong mã nguồn.
II. Ứng dụng của ngôn ngữ lập trình là gì?
Ứng dụng của ngôn ngữ lập trình là gì?
1. Ngôn ngữ lập trình giúp phát triển ứng dụng và chương trình máy tính
Các ứng dụng và chương trình máy tính đều là những công cụ quen thuộc mà bạn sử dụng để học tập, làm việc, giai tiếp, giải trí hằng ngày. Ví dụ: trình duyệt Chrome bạn đang sử dụng để xem website này được coi là một chương trình. Nếu bạn quan tâm muốn tìm hiểu đến việc phát triển một chương trình hay ứng dụng, bạn nên xem xét các ngôn ngữ lập trình sau:
C
C#
C++
D
Java
Swift
Tcl
Visual Basic
2. Ngôn ngữ lập trình giúp phát triển trí tuệ nhân tạo AI
Phát triển AI liên quan đến trí tuệ nhân tạo, hay hướng tới sáng tạo ra các nhân vật có thể tương tác cho các trò chơi máy tính, tính năng chatbot... Nếu bạn muốn tìm hiểu đến việc phát triển AI và lĩnh vực này, hãy tìm hiểu một trong các ngôn ngữ lập trình sau:
3. Ngôn ngữ lập trình giúp phát triển hệ thống cơ sở dữ liệu
Lĩnh vực này dành cho các nhà phát triển, đơn vị nghiên cứu hay duy trì cơ sở dữ liệu. Nếu bạn đang tìm hiểu đến đến cơ sở dữ liệu, hãy xem xét các ngôn ngữ lập trình sau đây:
DBASE
FoxPro
MySQL
SQL
Visual FoxPro
4. Ngôn ngữ lập trình trong phát triển chương trình game
Phát triển trò chơi liên quan đến các hoạt động tạo trò chơi trên máy tính hoặc trên các phần mềm giải trí khác. Nếu bạn quan tâm đến lĩnh vực này, nên xem xét các ngôn ngữ lập trình sau:
5. Ngôn ngữ lập trình cho phát triển driver máy tính
Muốn phát triển driver hay giao diện phần mềm cho các thiết bị phần cứng thì bạn nên xem xét các ngôn ngữ lập trình sau đây:
6. Phát triển website và Internet
Phát triển mạng kết nối - internet và website là bản chất của internet. Không có các nhà phát triển, internet sẽ không tồn tại và tiếp cận đến chúng ta. Nếu bạn quan tâm đến việc tạo các website, internet hay các tác vụ khác liên quan đến internet, bạn cần chú ý xem xét các ngôn ngữ lập trình sau:
HDML
HTML
Java
JavaScript
Perl
PHP
Python
XML
7. Phát triển Script
Mặc dù hoạt động nghiên cứu, phát triển script không có nhiều cơ hội trở thành một nghề nghiệp chính, nhưng nếu bạn khéo léo biết cách tạo và phát triển các tập lệnh, bạn có thể dễ dàng giúp tăng năng suất làm việc cho bản thân và công ty của mình và giúp tiết kiệm rất nhiều thời gian. Nếu bạn để tâm đến việc phát triển các script, hãy xem xét các ngôn ngữ lập trình sau:
AutoHotkey
awk
bash
Batch file
Perl
Python
Tcl
III. Top 10 ngôn ngữ lập trình phổ biến nhất hiện nay
1. JavaScript
Ngôn ngữ lập trình JavaScript
JavaScript là một loại ngôn ngữ lập trình dựa trên nguyên mẫu với nền tảng phát triển từ C. Giống như C, JavaScript có khái niệm về từ khóa, do đó, JavaScript gần như khó có thể được mở rộng.
Cũng giống như C, JavaScript không có bộ xử lý xuất và nhập (input/output) riêng. Trong khi C sử dụng thư viện xuất/nhập chuẩn, JavaScript thì dựa vào phần mềm ngôn ngữ được gắn vào để thực hiện hoạt động xuất/nhập.
Trên trình duyệt, rất nhiều website dùng JavaScript để thiết kế website động và các hiệu ứng hình ảnh thông qua DOM. JavaScript được sử dụng để thực hiện một số tác vụ không thực hiện được với HTML như: tự động đổi hình ảnh, kiểm tra thông tin nhập vào,... Ở Việt Nam, JavaScript còn được sử dụng để làm bộ gõ chữ tiếng Việt. Tuy nhiên, mỗi trình duyệt sẽ áp dụng JavaScript khác nhau và không tuân theo đúng chuẩn W3C DOM, do đó trong rất nhiều trường hợp các lập trình viên phải tạo nhiều phiên bản của cùng một đoạn mã nguồn để có thể hoạt động ở trên nhiều trình duyệt. Một số công nghệ thông tin nổi tiếng sử dụng JavaScript để tương tác với DOM như là: DHTML, Ajax và SPA.
2. Python
Ngôn ngữ lập trình Python
Ngôn ngữ lập trình Python là một loại ngôn ngữ lập trình bậc cao cho những mục đích lập trình đa năng, được Guido van Rossum tạo ra và lần đầu ra mắt thị trường là vào năm 1991. Ngôn ngữ lập trình Python được thiết kế với ưu điểm mạnh mẽ là dễ đọc, dễ học và dễ ghi nhớ. Python là ngôn ngữ có hình thức sáng sủa cao, cấu trúc rõ ràng, thuận tiện cho người mới học về lập trình. Cấu trúc của ngôn ngữ lập trình Python còn cho phép người sử dụng viết các mã lệnh với số lần gõ phím tối thiểu. Tháng 7/2018, Van Rossum đã từ chức Leader trong cộng đồng ngôn ngữ lập trình Python sau 30 năm cầm quyền lãnh đạo.
Ngôn ngữ lập trình Python hoàn toàn tạo kiểu động và sử dụng cơ chế cấp phát bộ nhớ tự động; do vậy nó cũng tương tự như Perl, Scheme, Smalltalk, Ruby, và Tcl. Python được phát triển trong dự án mã mở và do tổ chức phi lợi nhuận Python Software Foundation quản lý.
3. Java
Ngôn ngữ lập trình Java
Ngôn ngữ lập trình Java là một loại ngôn ngữ lập trình hướng đối tượng (OOP) và được dựa trên các lớp (class). Khác với phần lớn ngôn ngữ lập trình thông thường hiện nay, thay vì thực hiện biên dịch mã nguồn để thành mã máy hoặc thực hiện thông dịch mã nguồn khi chạy, ngôn ngữ lập trình Java được thiết kế để biên dịch mã nguồn thành các bytecode, các bytecode này sau đó sẽ được môi trường thực thi (runtime environment).
Trong ngôn ngữ lập trình Java, hiện tượng rò rỉ bộ nhớ gần như không xảy ra do bộ nhớ đã được quản lý bởi Java Virtual Machine (JVM) bằng phương pháp tự động "dọn dẹp rác". Chuyên viên lập trình không phải bận tâm đến việc cấp phát cùng xóa bộ nhớ như C, C++. Tuy nhiên khi sử dụng các tài nguyên mạng, database (nằm ngoài kiểm soát của JVM), file IO mà người lập trình không đóng các trực tuyến thì rò rỉ dữ liệu vẫn có thể xảy đến.
4. C/C++
Ngôn ngữ lập trình C/C++
C++ là một loại ngôn ngữ lập trình ở bậc trung (middle-level). Đây là ngôn ngữ lập trình đa năng được lập ra bởi Bjarne Stroustrup như là một phần mở rộng của ngôn ngữ C, hoặc là "C với các lớp Class". Ngôn ngữ C++ đã được mở rộng đáng kể theo thời gian và trở nên hiện đại. Chúng có các tính năng: lập trình tổng quát, lập trình thủ tục, lập trình hướng đối tượng, dữ liệu trừu tượng, ngôn ngữ đa mẫu hình tự do có kiểu tĩnh và lập trình đa hình. Ngoài ra còn có thêm các tính năng và công cụ để thao tác với các bộ nhớ cấp thấp. Từ thập niên 1990, C++ đã trở thành một trong những ngôn ngữ lập trình thương mại ưa thích và phổ biến của việc làm lập trình viên.
Có nhiều ngôn ngữ lập trình khác được phát triển dựa trên nền tảng là C++, bao gồm C#, D, ngôn ngữ lập trình Java và các phiên bản mới hơn của ngôn ngữ C.
5. PHP
Ngôn ngữ lập trình PHP
PHP là từ viết tắt của Hypertext Preprocessor là một ngôn ngữ lập trình kịch bản hay là một loại mã lệnh được sử dụng chu yếu để phát triển các ứng dụng viết cho máy chủ, các mã nguồn mở hay dùng cho mục đích tổng quát. Ngôn ngữ này rất thích hợp với web và có khả năng nhúng dễ dàng vào trang HTML. Do đã được tối ưu hóa cho các ứng dụng web cùng tốc độ nhanh, nhỏ gọn, cú pháp giống C và ngôn ngữ lập trình Java, dễ học và thời gian tạo dựng sản phẩm tương đối ngắn so với các ngôn ngữ lập trình khác. Vậy nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình website phổ biến nhất thế giới.
Ngôn ngữ, các thư viện, tài liệu gốc của PHP được xây dựng từ cộng đồng và có sự đóng góp rất lớn của Zend Inc, một công ty do các nhà phát triển cốt lõi của PHP thành lập nhằm tạo ra môi trường chuyên nghiệp để đưa PHP phát triển tầm quy mô doanh nghiệp.
6. Swift
Ngôn ngữ lập trình Swift
Swift là một loại ngôn ngữ lập trình hướng đối tượng dành cho việc phát triển hệ điều hành iOS và macOS, tvOS, Linux, watchOS, và z/OS. Swift được giới thiệu bởi tập đoàn Apple tại hội nghị WWDC 2014. Ngôn ngữ lập trình này được mong đợi sẽ tồn tại song song cùng với ngôn ngữ Objective-C, ngôn ngữ lập trình hiện tại dành cho các hệ điều hành của tập đoàn toàn cầu Apple. Swift được thiết kế để hoạt động với các framework là Cocoa và Cocoa Touch của Apple cùng phần lớn mã Objective-C hiện có được viết cho các sản phẩm ra mắtcủa Apple. Nó được biên dịch bởi trình biên dịch LLVM và hiện đã được đưa vào Xcode kể từ phiên bản thứ 6, phát hành vào năm 2014. Trên các nền tảng riêng của Apple, nó sử dụng thư viện runtime Objective-C cho phép các mã C, Objective-C, C++ và Swift cùng chạy trong một chương trình.
Vào tháng 3 năm 2017 sau khi chưa đầy 3 năm sau khi chính thức ra mắt thị trường, Swift đã đứng đầu danh sách bảng xếp hạng TIOBE hàng tháng về các ngôn ngữ lập trình hiện phổ biến nhất. Một cuốn tài liệu 500 trang về Swift cũng được phát hành tại WWDC và miễn phí trên iBooks Store.
7. C# (C-Sharp)
Ngôn ngữ lập trình C# (C-Sharp)
C# là một loại ngôn ngữ lập trình hướng đối tượng được sở hữu và phát triển bởi Microsoft, là phần điểm đầu cho kế hoạch .net của chính họ. Tên của ngôn ngữ bao gồm ký tự đặc biệt # theo Microsoft nhưng theo ECMA là C#, chỉ gồm dấu số thường. Microsoft phát triển C# dựa trên nền tảng là C++ và Java. C# được miêu tả là ngôn ngữ lập trình có được sự cân bằng giữa C++, Delphi, Visual Basic và Java.
C# được thiết kế chủ yếu do Anders Hejlsberg, một nhà kiến trúc sư phần mềm nổi tiếng với các sản phẩm nổi bật là Turbo Pascal, Delphi, J++, WFC. Phiên bản gần đây nhất chính là 8.0, được phát hành vào năm 2019 cùng Visual Studio 2019 phiên bản 16.3.
8. Ruby
Ruby là một loại ngôn ngữ lập trình hướng đối tượng và mang khả năng phản ứng. Ngôn ngữ Ruby chịu ảnh hưởng bởi Smalltalk, Perl, Eiffel, Ada cuối cùng là Lisp. Ruby là ngôn ngữ thông dịch và có tính hướng đối tượng.
Ruby cung cấp nhiều mẫu hình lập trình có thể kể đến như lập trình hàm, lập trình hướng đối tượng, mệnh lệnh hay phản xạ. Ngôn ngữ sử dụng hệ thống kiểu biến động và tự động quản lý các bộ nhớ tự động.
9. Ojective-C
Ngôn ngữ lập trình Ojective-C
Obj-C đã ra đời từ khá lâu nhưng thời điểm này vẫn là một trong những ngôn ngữ lập trình đứng hàng top được rất nhiều các lập trình viên trên thế giới lựa chọn lựa để phát triển các ứng dụng dịch vụ chạy trên hệ điều hành iOS và MacOS. Đây là loại ngôn ngữ được phát triển dựa trên nền tảng của C và C++.
Obj-C được biên soạn để người lập trình có thể tạo dựng mọi thứ từ các dòng lệnh là common line utilities đến cả giao diện cho người dùng (animated GUI). Hơn thế, Objective-C còn có thể tạo ra các công cụ giúp duy trì và hỗ trợ các frameworks lớn.
Đặc biệt, Obj-C là một loại ngôn ngữ hướng đối tượng (hay Object Oriented Program ming), vì vậy nó kế thừa tất cả các tính năng đặc biệt, ưu việt nhất của loại hình ngôn ngữ này. Bạn có thể viết các chức năng giống như các viết của ngôn ngữ C.
Hiện nay, ngôn ngữ Swift ra đời và đã dần dần thay thế cho Obj-C. Tuy nhiên, vẫn có nhiều người lập trình viên lựa chọn dùng Obj-C cho công việc của họ hàng ngày.
10. SQL
Ngôn ngữ lập trình SQL là từ viết tắt của Structured Query Language, dịch ra là ngôn ngữ truy vấn mang tính cấu trúc, SQL là một loại ngôn ngữ máy tính phổ biến để tạo lập, sửa chữa và lấy dữ liệu từ một hệ thống quản trị cơ sở dữ liệu quan hệ. Ngôn ngữ viết này phát triển vượt xa so với mục đích ban đầu, vốn là để phục vụ những hệ quản trị cơ sở dữ liệu đối tượng - quan hệ. SQL hiện là một tiêu chuẩn ANSI/ISO.
IV. Kết luận
Có thể thấy rằng, tất cả các hoạt động trên máy tính cá nhân hay những thiết bị thông minh hầu như đều được tạo thành từ các chương trình được viết bằng ngôn ngữ lập trình. Hi vọng với những thông tin ở trên 123job đã cung cấp cho bạn đọc thêm nhiều thông tin về ngôn ngữ đặc biệt khó này.