Ngôn ngữ lập trình là gì 201

Mục lục

Top 10 ngôn ngữ lập trình phổ biến nhất hiện nay

 

Hiện có hàng ngàn ngôn ngữ lập trình, song chỉ có 10 ngôn ngữ đáng tin cậy, phổ biến nhất được nhiều lập trình viên sử dụng, có khả năng mang đến cho người học nhiều cơ hội nghề nghiệp hơn trong tương lai.

Ngôn ngữ lập trình là gì?

Ngôn ngữ lập trình là ngôn ngữ dùng để diễn tả thuật toán sao cho máy tính hiểu và thực hiện được. Cụ thể hơn là đối với các hệ thống xử lý bằng máy tính, phần mềm, sẽ cần một ngôn ngữ để điều hành, khiến cho các thiết bị này hoạt động theo các mong muốn của người sử dụng.

Ngôn ngữ lập trình là ngôn ngữ máy tính hiểu và thực hiện được
Ngôn ngữ lập trình là ngôn ngữ máy tính hiểu và thực hiện được

Một ngôn ngữ lập trình phải thỏa mãn được hai điều kiện cơ bản. Một là dễ hiểu và dễ sử dụng đối với người lập trình, có thể dùng giải quyết nhiều bài toán khác nhau. Hai là miêu tả một cách đầy đủ và rõ ràng các tiến trình để chạy được trên các hệ thống máy tính khác nhau.

Theo thời gian và sự phát triển của công nghệ, ngôn ngữ lập trình được chia thành 3 loại cơ bản: Ngôn ngữ máy (machine language), Hợp ngữ (assembly language), Ngôn ngữ cấp cao (High level language). Vì được chia ra khá rõ ràng, căn cứ trên các ưu điểm của từng loại ngôn ngữ mà lĩnh vực lập trình ngày càng trở nên phổ biến, được nhiều người quan tâm, đưa các ngành nghề liên quan đến công nghệ số trở thành một xu hướng phát triển tầm cao được nhiều người đầu tư và tìm hiểu.

Top 10 ngôn ngữ lập trình phổ biến nhất hiện nay

Ngôn ngữ lập trình đóng vai trò vô cùng quan trọng đối với ngành công nghệ phần mềm, thiết kế website và các ngành nghề liên quan khác

Vì thế, trong thời buổi công nghiệp hóa việc sử dụng các loại ngôn ngữ có khả năng diễn đạt để điều hành hệ thống dễ dàng là điều cực kì quan trọng đối với bất cứ cá nhân, tổ chức, doanh nghiệp nào.

Theo Business Insider, GitHub đã đưa ra nhiều thông tin về hoạt động nội bộ giới phát triển phần mềm. Theo đó, có 10 ngôn ngữ được đánh giá cao hiện nay giúp công nghệ mới nổi lên với một tốc độ nhanh chóng, đó là:

Ruby

Ngôn ngữ lập trình Ruby
Ngôn ngữ lập trình Ruby

Ruby là ngôn ngữ lập trình có mã nguồn mở tập trung vào sự đơn giản. Ngôn ngữ này rất năng động được dùng để xây dựng một số ứng dụng mà chúng ta thường dùng mỗi ngày. Điển hình như là khung ứng dụng web phổ biến Ruby on Rails được triển khai bằng Ruby. Còn các ứng dụng như Twitch, SoundCloud, Hulu, Zendesk, Square và GitHub lại được xây dựng với Ruby on Rails.

C

Ngôn ngữ lập trình C là ngôn ngữ đã phát triển lâu năm, được phát minh vào thập niên 1970. Nhưng ngày nay nó vẫn là một trong các loại ngôn ngữ lập trình được dùng rộng rãi nhất vì nó tốt, có nhiều tính năng nổi bật cho người dùng.

Shell

Shell là ngôn ngữ được thiết kế để hướng dẫn hệ điều hành chạy các lệnh nhất định, nó có thể thao tác các tập tin, chạy chương trình và các hệ thống khác nữa. Chính vì vậy, Shell là ngôn ngữ lập trình rất phổ biến với các quản trị viên hệ thống.

TypeScript

TypeScript là ngôn ngữ lập trình có cú pháp và ngữ nghĩa tương tự, liên quan chặt chẽ đến JavaScript, nó được dùng để hỗ trợ nhiều ứng dụng quy mô lớn. Loại ngôn ngữ này do Microsoft tạo ra và đang rất thịnh hành, thứ hạng của nó cũng tăng nhanh chóng theo từng năn. Theo đó, TypeScript tăng hạng từ vị trí thứ 11 hồi năm ngoái lên vị trí thứ 7 năm nay.

C#

C# có phát âm là C Sharp, là ngôn ngữ lập trình được Microsoft phát triển và dùng để xây dựng ứng dụng, phần mềm cho khách hàng doanh nghiệp.

C++

C++ cũng có lịch sử rất lâu đời, xuất phát từ thập niên 1970. Ngôn ngữ lập trình này thường được dạy trong các khóa học khoa học máy tính mới bắt đầu. Tính đến bây giờ C++ vẫn là một trong các ngôn ngữ được sử dụng rộng rãi nhất, vì nó là ngôn ngữ chủ chốt trong nhiều hệ điều hành, trình duyệt và trò chơi được vận hành đưa vào hoạt động hiện nay.

PHP

PHP là ngôn ngữ lập trình của nhiều web lớn như Facebook và Yahoo. Ngoài ra, chúng còn được dùng để tạo các trang web năng động, có khả năng tương tác.Tuy nhiên, các nhà phát triển lâu đời vẫn luôn cho rằng đây là ngôn ngữ tệ nhất thế giới vì có khá nhiều lỗ hổng trong việc điều hành hệ thống.

Python

""</code

ngoặc đơn (nhóm)

phần chỉ số của mảng
sự lựa chọn phần tử, nhận dạng
sự lựa chọn phần tử, con trỏ

từ trái sang phải++ và —

+ và –
! và ~
(cast)
*
&
sizeof

tiền tố tăng/giảm

dấu dương/âm
phép toán Bool NOT/phần bù 0 kiểu bit
đổi kiểu
tham chiếu ngược
tham chiếu
độ lớn

từ phải sang trái*, /, và %nhân/chia/mô duntừ trái sang phải+ và -cộng/trừ<< và >>phép toán bit <ocde>left shift/right shift< và <=

> và >=

quan hệ nhỏ hơn/nhỏ hơn hay bằng

quan hệ lớn hơn/lớn hơn hay bằng

== và !=bằng với/khác với&phép toán bit AND^phép toán bít XOR |phép toán bit OR &&phép toán bool AND||phép toán bool OR?:điều kiện tam phântừ phải sang trái=

+= và -=
*=, /=, và %=
<<= và >>=
&=, ^=, va |=

phép gán giá trị trực tiếp

phép gán giá trị cộng thêm/trừ bớt
phép gán giá trị nhân/chia/mô dul bởi
phép gán bit shift
phép gán bit AND/XOR/OR

,toán tử , từ trái sang phảiNguồn: C Operator Precedence and Associativity


10 Điều thú vị về ngôn ngữ Java – tesoacademy.com

 

Sẽ không có gì tuyệt vời hơn khi bạn có thể hoàn thành 10 tác vụ mà chỉ cần làm một lần? Với câu khẩu hiệu quen thuộc “viết một lần, chạy mọi nơi” cũng không có gì khó hiểu khi Java trở thành ngôn ngữ phổ biến hiện nay. Vậy bạn đã biết những điều thú vị về Java chưa?

Java là một loại ngôn ngữ lập trình hướng đối tượng và dựa trên các lớp (class). Khác với phần lớn các ngôn ngữ thông thường hiện nay, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để có thể biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi.

Trước đây, Java chạy chậm hơn rất nhiều so với những ngôn ngữ dịch thẳng ra mã máy như ngôn ngữ Cvà C++, nhưng sau này nhờ công nghệ “biên dịch tại chỗ” – Just in time compilation, thì khoảng cách này đã được thu hẹp một cách đáng kể và trong một số trường hợp đặc biệt, Java có thể chạy nhanh hơn nhiều so với các ngôn ngữ khác. Một số các dẫn chứng cho thấy Java chạy nhanh hơn những ngôn ngữ thông dịch như Python, Perl, PHP gấp nhiều lần. Java có khả năng chạy tương đương so với C#, một ngôn ngữ khá tương đồng về hai mặt cú pháp và quá trình dịch.

Các cú pháp sử dụng trong Java được vay mượn nhiều từ C & C++ nhưng có một số cú pháp hướng đối tượng đơn giản hơn và có ít tính năng xử lý cấp thấp hơn. Do đó giúp cho việc viết một chương trình bằng Java trở nên dễ hơn, đơn giản hơn và đỡ tốn công sửa hơn khi xảy ra lỗi.

Vậy ngôn ngữ lập trình Java có những điều thú vị gì mà được nhiều người sử dụng đến như vậy?

 width=

10 điều thú vị về ngôn ngữ lập trình Java

  1. Java được sinh ra từ một ngôn ngữ lập trình có tên là Oak

Oak (tiếng Anh có nghĩa là cây sồi) ban đầu là một ngôn ngữ làm nền tảng phát triển cho các máy chơi game video, VCR và các thiết bị ghi âm khác để giao tiếp. Trong khi đó, khả năng tiếp cận của World Wide Web đã được mở rộng và các developer của Oak, gồm có James Gosling và các thành viên trong nhóm đã chuyển trọng tâm của họ hướng sang Internet. Oak trở thành Java và Web Runner – một trình duyệt của Oak đã thay đổi thành trình duyệt web HotJava. Java đã được phát minh vào năm 1992, Legend cho biết Java đã được đặt tên tại một quán cà phê mà nhóm developers đã từng đến.

  1. Java miễn phí, có một loạt các trang web Java dành cho các developer

Trang web chính của Sun là java.sun.com. Trang cộng tác được điều hành bởi Sun được gọi là java.net. Một trang vận động hoặc tin tức do Sun quản lý là java.com. Đối với các chương trình Java liên quan đến tin tức, đăng nhập vào www.javaworld.com. Bên cạnh đó Java hoàn toàn miễn phí, vì vậy nếu một lập trình viên bạn muốn học một ngôn ngữ lập trình hoặc một tổ chức đang muốn sử dụng một công nghệ mới, chi phí là một yếu tố quan trọng. Vì Java luôn miễn phí ngay từ ban đầu, bạn sẽ không cần phải trả bất cứ khoản chi phí nào để có thể tạo ra các ứng dụng Java. Chính điều này cũng giúp Java trở thành một trong những kỹ năng thông dụng trong cộng đồng lập trình viên cũng như các tổ chức lớn. Sự dồi dào và đa dạng lập trình viên Java là một lợi thế vô cùng lớn, làm cho các tổ chức dễ dàng lựa chọn Java cho chiến lược phát triển.

3. Java là một ngôn ngữ lập trình với các tính năng độc đáo

Java là nền tảng cơ bản để có thể phát triển và phân phối các ứng dụng nhúng, di động và lập trình trò chơi Java. Bên cạnh đó là các nội dung Web và phần mềm doanh nghiệp đang sử dụng. Java đã đạt gần 9 triệu nhà phát triển trên toàn thế giới hiện nay. Từ máy tính xách tay cho đến máy tính cá nhân để bàn giao tiếp chơi game và siêu máy tính, Java đã và đang lan tỏa dần đến mọi nơi và trở nên ngày càng phổ biến trong giới lập trình.

4. Cú pháp cơ bản của ngôn ngữ Java bao gồm 4 thành phần – đối tượng (object), lớp (class), phương thức (methods) và các biến tức thời (variables)

  • Đối tượng (Object): bao gồm vùng và hành vi.
  • Lớp (Class): nó giống như một bản in cho vùng hoặc là hành vi của đối tượng đang thể hiện.
  • Phương thức (Methods): mỗi lớp sẽ có nhiều phương pháp, trong đó logics được viết còn phần dữ liệu được thao tác và hành động sẽ được thực hiện.
  • Các biến tức thời (Variables): các đối tượng có duy nhất một biến, mỗi vùng sẽ được tạo bởi nhiều biến giá trị tức thời.

5. Ngôn ngữ lập trình Java phân biệt chữ hoa chữ thường

Tất cả các thành phần của Chương trình Java – lớp (class), các biến (variants) và các phương thức (methods) – chúng được gọi là các định danh (identifiers).

Vì Java là một ngôn ngữ phân biệt chữ hoa chữ thường, các định danh sẽ khác nhau tùy thuộc vào việc sử dụng trường hợp chữ hoa hay chữ thường. Ví dụ: “hello” sẽ khác với ý nghĩa từ “Hello”. Các số nhận dạng bắt đầu bằng một chữ cái (A hoặc một), ký tự tiền tệ ($) hoặc dấu gạch dưới (__). Nên nhớ rằng từ khóa không thể được sử dụng làm định danh.

6. Java có các loại dữ liệu được xây dựng khác nhau bao gồm dây,số, số nguyên và phép toán luận

2 loại dữ liệu có trong Java là Primitive Data Types và Reference / Object Data Types. 8 kiểu dữ liệu nguyên thủy được hỗ trợ bởi Java được xác định trước bởi ngôn ngữ và được đặt tên qua từ khóa. Đó là: byte, int, float, long, short, double, char, boolean.

7. Học lập trình Java nên bắt đầu từ những cái cốt lõi trước khi bắt đầu cấp độ cao hơn

Hiểu được những vấn đề cốt lõi của Java sẽ là nền tảng giúp cho bạn có thể chinh phục được ngôn ngữ này.

Những vấn đề cốt lõi ấy bao gồm:

  • Các khái niệm lập trình hướng đối tượng (bao gồm trừu tượng, ngăn chặn, thừa kế, đóng gói và đa hình).
  • Lý giải tại sao Java là một nền tảng ngôn ngữ độc lập có thể chạy trên tất cả các hệ điều hành như Mac, Windows và Unix.
  • Cách thức và tính chất của Java Virtual Machine, phải hiểu các Java framework.
  • Có kiến thức sâu về các kiểu dữ liệu và vài lớp java lang như String, System, Math etc
  • Tiếp theo là các servlet và JSP là các API chuẩn. JSF hoặc JavaServer Faces là một khuôn khổ web giúp đơn giản hoá giao diện người dùng cho các ứng dụng web Java.
  • Xây dựng ứng dụng web là việc tiếp theo cần làm. Một ngôn ngữ lập trình rất nhanh chóng lỗi thời. Đây là lý do tại sao các lập trình viên Java nên cố gắng giữ liên lạc với các xu hướng hiện tại để đạt được lợi thế cạnh những người khác.

8. Các nhà phát triển phần mềm (software developer) trên khắp thế giới đều sử dụng Java

Java đã được cải tiến hơn, được thử nghiệm nhiều và mở rộng bởi một loạt các nhà phát triển phần mềm và kiến trúc sư. Ngôn ngữ lập trình này được thiết kế để đảm bảo phát triển các ứng dụng hiệu năng cao cho nhiều nền tảng điện toán. Nâng cao Java có thể tăng năng suất, truyền thông và hợp tác ngoài việc giảm các ứng dụng doanh nghiệp và người tiêu dùng. Bạn có thể viết phần mềm ngôn ngữ lập trình Javavà chạy nó trên bất kỳ nền tảng nào. Người dùng có thể tạo các chương trình chạy trong một trình duyệt web và truy cập các dịch vụ web có sẵn ngoài việc phát triển các ứng dụng phía máy chủ cho các cuộc thăm dò trực tuyến, các công ty thương mại. HTML xử lý các hình thức và nhiều hơn nữa. Ứng dụng tùy chỉnh có thể được tạo bằng Java và bạn có thể viết các ứng dụng hiệu quả cho mọi loại thiết bị điện tử bao gồm các mô-đun không dây và điện thoại di động.

9. Java có các tính năng ngôn ngữ quan trọng mang lại lợi ích cho người dùng

Java là dễ dàng để làm chủ và có rất nhiều lớp và phương pháp trong sáu khu vực chức năng quan trọng mà phải được học. Đầu vào / đầu ra lớp có để đọc và ghi dữ liệu từ nhiều nguồn và mạng cho phép truyền thông qua các máy tính trực tuyến hoặc thông qua một mạng LAN. Hơn nữa, ngôn ngữ lập trình này không đòi hỏi bộ nhớ được cấp phát động tự do, tạo ra ít lỗi bộ nhớ hơn và làm cho các chương trình đơn giản hơn để viết.

10. Java có thể được sử dụng ở bất cứ đâu và ở mọi nơi

Giáo dục, các hệ thống nhúng (embedded systems), lập trình ứng dụng và mô phỏng là một số trong nhiều lĩnh vực mà Java cơ bản có thể được áp dụng. Các lĩnh vực ứng dụng bao gồm các ứng dụng mạng, các Applet trên WWW, phát triển ứng dụng nền tảng chéo và hơn thế nữa. Mã Java là một ngôn ngữ lập trình cũng như một máy ảo và đặc tả API. Một trong những lợi ích lớn nhất của ngôn ngữ này làm cho nó dễ sử dụng qua nhiều thiết lập là mức độ an toàn và an toàn cao.

Qua 10 dẫn chứng trên giúp chúng ta thấy được sự phổ biến của Java hiện nay. Java đã và từng bước trở thành ngôn ngữ lập trình cốt lõi của các nhà lập trình viên trên thế giới.

https://www.topitworks.com/blogs/10-dieu-thu-vi-ve-ngon-ngu-lap-trinh-java/

Ngôn ngữ Lập trình F# là gì? Khả năng và Tương lai của F#

 

Các Lập trình viên không chuyên có thể sẽ phát âm F# là F + “Thăng”, nhưng bạn đừng dại mà phát âm như vậy nếu không muốn bị coi thường.

Ngôn ngữ lập trình F# là gì?
Ngôn ngữ lập trình F# là gì?

F# được đọc là F + Sharp là một ngôn ngữ lập trình mã nguồn mở, strongly typed và đa mô hình.

Ngôn ngữ lập trình đa mô hình bao gồm lập trình hướng đối tượng và lập trình Hàm.

Mọi ngôn ngữ lập trình có thể thuộc một trong hai loại: Strongly typed và Weakly typed.

  • Các ngôn ngữ lập trình Strongly type có các quy định rất cụ thể tại thời điểm biên dịch, nó hướng tới tránh xa các lỗi và ngoại lệ có có thể sẽ xảy ra. Phần lớn các quy định này ảnh hưởng đến giá trị trả về, phép gán biến và gọi hàm.
  • Trong khi đó Ngôn ngữ lập trình Weakly typed thì ngược lại, nó có các quy tắc gõ lỏng lẻo có thể gây ra kết quả không thể đoán trước hoặc có thể gây ra chuyển đổi kiểu ngầm định trong khi chạy.
  • Đa mô hình đề cập đến sự hỗ trợ của nhiều hơn một mô hình lập trình để cho phép các lập trình viên chọn phong cách lập trình phù hợp nhất và các cấu trúc ngôn ngữ liên quan cho một dự án nhất định.

F# thường được sử dụng như một cross-platform CLI (Cơ sở hạ tầng ngôn ngữ chung) và cũng có thể generate JavaScript code và GPU code.

Ngôn ngữ lập trình F# được phát triển bởi F# Software Foundation và Microsoft cùng với những người đóng góp khác.

Lịch sử hình thành và phát triển của F#

F# lần đầu tiên ra đời vào năm 2005, nó được phát triển bởi Microsoft Research.

Ban đầu, nó là một dự án thuộc .NET của OCaml vì nó kết hợp sức mạnh và cú pháp của functional language với hàng nghìn thư viện chức năng có sẵn với các ngôn ngữ .NET.

Kể từ năm 2005, F# đã trải qua nhiều thay đổi cần thiết và các nhà phát triển đã tạo ra các phiên bản khác nhau giúp nó trở nên tốt hơn phiên bản đầu tiên.

Ra mắt dưới license của Apache, làm cho ngôn ngữ lập trình F# trở thành ngôn ngữ lập trình nguồn mở, nó có thể được sửa đổi, phân phối và sử dụng mà không phải trả tiền ban đầu bởi các lập trình viên.

Phiên bản đầu tiên ra mắt năm 2005 chỉ tương thích với Windows và .NET 1.0 đến 3.5. Đó chính là điểm yếu lớn nhất của F# ở thời điểm này.

Tuy nhiên, vấn đề đã được giải quyết trong phiên bản tiếp theo được phát triển với việc bổ sung cho cả OS X và Linux ở phiên bản 2.0 được ra mắt vào năm 2010.

Năm 2012, F# đã bổ sung JavaScript và GPU trong các nền tảng được hỗ trợ. Phiên bản mới nhất được ra mắt vào năm 2015 là 4.0.

Tương lai của ngôn ngữ lập trình F#

Nhiều người cho rằng F# là một trong những ngôn ngữ lập trình không phổ biến, bị đánh giá thấp.

Nhưng ở một khía cạnh khác. Theo StackOverflow. F# đã được bình chọn là ngôn ngữ sở hữu mức lương cao nhất trên toàn thế giới.

>>> Xem ngay Báo cáo Khảo sát Lập trình viên năm 2019 của Stack Overflow để biết rõ hơn

Cuộc khảo sát tương tự cho thấy F# không xuất hiện trong TOP 25 ngôn ngữ lập trình hàng đầu được sử dụng trên toàn cầu. Ngôn ngữ này vẫn nằm ở rìa mặc dù có một cộng đồng rất tích cực.

Nhưng tại sao có các lập trình viên thích làm việc với F# nếu nó không được ưa chuộng?

Được tạo ra và duy trì bởi Don Syme, F# có khả năng phục hồi tương đối với một số biến chứng quá mức giả định mà các ngôn ngữ FP (function programming) tương tự đã áp dụng như Scala.

Sự đề kháng này duy trì khả năng tiếp cận cho các lập trình viên từ thế giới bên ngoài, những người có thể quan tâm đến việc học lập trình hàm.

F# đã được sử dụng tuyệt vời khi lập trình viên nói đến data-driven và domain driven.

Bây giờ F# cũng có thể được biên dịch thành JavaScript, ngôn ngữ phổ biến nhất thế giới. Với sự liên kết này, nó cũng có quyền truy cập vào các thư viện và cơ sở thiết bị khổng lồ của JavaScript.

F# đã tạo được dấu ấn khi nói đến Artificial Intelligence, Machine Learning và associated Data Analysis.

Đó là mục đích của việc tạo ra ngôn ngữ lập trình F#.

Do quy mô to lớn và ảnh hưởng như mong đợi, Trí tuệ nhân tạo sẽ có trên hệ sinh thái ngôn ngữ và công nghệ nói chung, có một ngôn ngữ rất phù hợp với những nơi phát triển mạnh mẽ, nhanh chóng và thậm chí thách thức các ngôn ngữ phổ biến như JavaScript và Python trong tương lai.

Điều gì cản trở sự phát triển của F#?

Mặc dù có vẻ như là một sự thật phũ phàng, nhưng sự lỗi lầm cho điều này chủ yếu được quy cho những người tạo ra nó, đó là Microsoft. Họ đã hạn chế sự phổ biến của F# để C# phát triển mạnh hơn. Microsoft đã khiến F# thua kém C#.

Rất ít công việc yêu cầu F# vì có rất ít lập trình viên sử dụng F# ngoài kia và vì có ít công việc F# tồn tại ngoài đó nên lập trình viên lại ít sử dụng F#.

>>> Đây là một vòng luẩn quẩn.

Nhưng, chậm mà chắc, xu hướng này đang thay đổi.

Jet.com là công ty lớn đầu tiên áp dụng việc sử dụng F#. Sau đó, Kaggle và nhiều công ty tài chính và bảo hiểm cũng theo sau.

Hiện tại, các nhà phát triển của F# đang thiếu động lực để làm cho F# trở nên phổ biến hơn.

Nhưng với các tính năng là ngôn ngữ đa mô hình được sử dụng rất nhiều trong AI, điều tốt nhất cần làm là tập trung vào các lợi ích cốt lõi của F# là thời gian chạy ngắn hơn, ít lỗi hơn và năng suất cao hơn.

Nếu được quảng bá bằng cách làm nổi bật các tính năng này, nó có thể giúp F# leo lên TOP các ngôn ngữ lập trình nhanh hơn.

F# có thực sự có lợi thế hơn so với C# không?

  • F# làm cho nhiều tác vụ lập trình phổ biến trở nên đơn giản hơn. Điều này có thể đòi hỏi việc như tạo và sử dụng các định nghĩa kiểu phức tạp, thực hiện danh sách các quy trình, so sánh bình đẳng, và nhiều hơn nữa.
  • Không có dấu chấm phẩy, dấu ngoặc nhọn, trong F# bạn hầu như không bao giờ phải chỉ định loại đối tượng do sự hiện diện của hệ thống suy luận mạnh mẽ. Nó cũng mất ít dòng mã hơn để giải quyết cùng một vấn đề.
  • F# là một ngôn ngữ chức năng, nhưng nó hỗ trợ các kiểu khác hoàn toàn thuần túy, giúp tương tác dễ dàng hơn với các lĩnh vực không thuần túy của cơ sở dữ liệu, trang web, v.v. Đặc biệt, F# được thiết kế như một ngôn ngữ lai, do đó, nó có thể thực hiện mọi thứ như C#. Mặc dù F# tích hợp liền mạch với hệ sinh thái .NET cho phép bạn truy cập tất cả các công cụ và thư viện .NET của bên thứ ba.
  • F# là một phần của Visual Studio cho phép bạn có được một trình soạn thảo tốt với sự hỗ trợ của IntelliSense, trình gỡ lỗi và nhiều plugin để thực hiện unit test, kiểm soát mã nguồn và các tác vụ phát triển khác.

Tổng kết

Ngôn ngữ lập trình F# đã phát triển được hơn 10 năm, đã qua thời kỳ sóng gió thử nghiệm ban đầu và giữ được tiếng nói riêng cho mình.

Và với sự hỗ trợ mạnh mẽ trong việc phát triển Trí Tuệ Nhân Tạo, Học Máy, Phâ Tích Dữ Liệu thì F# sẽ còn nhiều không gian khẳng định mình trong tương lai.

Top ngôn ngữ lập trình tốt nhất về Khoa học Dữ liệu và Phân tích

 

Toàn Lê Hữu

Chúng ta đang sống trong thời đại thông tin, và mỗi ngày, chúng ta tạo ra hàng tấn dữ liệu. Việc hiểu rõ bản chất của dữ liệu sẽ phần nào sinh lợi cho nhiều doanh nghiệp. Và để đạt được điều này, các ngành công nghiệp toàn cầu đang chuyển sang khía cạnh phân tích dữ liệu lớn, hay còn gọi là khoa học dữ liệu. Khoa học dữ liệu cung cấp một phương tiện mới mà thông qua đó, các doanh nghiệp có thể chuyển một lượng lớn dữ liệu có sẵn thành thông tin có thể sử dụng được thông qua một phương pháp khoa học.

Các nhà khoa học dữ liệu phải có lượng kiến thức cần thiết để áp dụng các thuật toán thống kê cũng như hiểu được tập hợp lớn các dữ liệu. Các thuật toán thống kê này được thực hiện bằng một số ngôn ngữ lập trình nổi tiếng với phải có khả năng làm việc với bộ dữ liệu, trong hầu hết các trường hợp, vượt xa vài GB.

Thế nhưng, nếu bạn hiểu và nắm vững một trong những gôn ngữ lập trình tốt nhất cho lĩnh vực khoa học dữ liệu thì bạn hãy tự tin rằng mình đang là một trong số những người được các chuyên gia tìm kiếm, với mức lương cao nhất trong thị trường lao động.

Hãy cùng “nghía” qua 6 ngôn ngữ lập trình tốt nhất cho việc phân tích khoa học dữ liệu. Và còn chần chừ gì nữa mà không học ngay để bắt đầu sự nghiệp trong lĩnh vực khoa học dữ liệu.

Trong bảng xếp hạng các công cụ khoa học dữ liệu tốt nhất, Python là nhà vô địch. Ngôn ngữ này là trụ cột của các nhiệm vụ liên quan đến lập trình chung như phát triển các ứng dụng web hay máy tính để bàn. Điều làm cho Python trở thành một lựa chọn hấp dẫn cho các nhà khoa học dữ liệu là khả năng đọc và năng suất tuyệt vời của nó.

Với Python, bạn có quyền truy cập vào một loạt các thư viện phân tích dữ liệu thông qua mục Python Package như các mô-đun phổ biến NumPy và SciPy. Hai mô-đun này cho phép bạn thực hiện các nhiệm vụ cơ bản trong phân tích dữ liệu là số hóa trên các mảng và ma trận đa chiều cũng như thực hiện tính toán các tín hiệu, hình ảnh. Có rất nhiều thư viện Python khác giúp cho việc phân tích dữ liệu của bạn đơn giản hơn bao giờ hết như Bộ công cụ ngôn ngữ tự nhiên (NLTK), cho phép phân tích và thống kê các ngôn ngữ tự nhiên.

Tính vô hạn của các thư viện Python dành riêng cho khoa học dữ liệu đã khiến cho Python trở thành một lựa chọn tiên quyết của người mới bắt đầu và các nhà khoa học dữ liệu chuyên nghiệp.

Khi Ross Ihaka và Robert Gentleman lần đầu ra mắt ngôn ngữ R với mục đích thiết kế một chương trình để thực hiện phân tích dữ liệu, thống kê và tính toán trực quan trên các tập dữ liệu lớn tốt hơn và thân thiện với người dùng.

Nền tảng vững chắc của ngôn ngữ trong lĩnh vực thống kê và hiển thị dữ liệu đã phần nào giải thích lý do nó trở nên phổ biến nhanh chóng như vậy trong phân tích dữ liệu thương mại, và do đó R đang là lựa chọn của đa số các nhà khoa học dữ liệu. Đối với người mới bắt đầu, R có cách thức hoạt động khá dễ, nguồn tài liệu mở rộng và nhiều chức năng giúp đơn giản hóa các quy trình phân tích dữ liệu phức tạp cho lập trình viên.

Java là một trong những ngôn ngữ lâu đời nhất và được sử dụng nhiều nhất trên thế giới. Java đặc biệt dành riêng cho các nhà khoa học dữ liệu có triển vọng. Đôi khi, công ty yêu cầu bạn làm một dự án khoa học dữ liệu đã sử dụng dữ liệu trong cơ sở hạ tầng của nó. Điều đó có nghĩa là các mô hình thống kê của bạn phải được viết với ngôn ngữ Java để có khả năng tương tác cao.

Hơn nữa, có các framework Java phổ biến dành riêng cho phân tích dữ liệu, máy móc và trí tuệ nhân tạo. Các framework như Apache Spark, Hadoop và Hive ngày càng phổ biến trong môi trường thương mại, làm cho Java trở thành một trong những ngôn ngữ được các nhà khoa học dữ liệu yêu cầu.

Scala nổi lên trong giới khoa học dữ liệu sau khi xuất hiện Spark — một công cụ xử lý dữ liệu được viết hoàn toàn bằng Scala — được các nhà phát triển cập nhật. Spark cho phép thu thập dữ liệu một cách trực quan hơn; làm sạch, xử lý dữ liệu; ngoài ra, mã được viết bằng ngôn ngữ Scala thường vận hành nhanh hơn.

Điều đó có nghĩa là bạn có thể phân tích số lượng dữ liệu lớn nhanh hơn so với các ngôn ngữ khác. Ngoài ra, việc viết mã Scala tương đối dễ dàng do cú pháp của nó khá đơn giản, giúp dễ dàng duy trì các kho lưu trữ lớn của mã Scala.

Học những ngôn ngữ này sẽ giúp bạn có chỗ đứng nhất định trong lĩnh vực khoa học dữ liệu. Mặc dù không có thứ tự ưu tiên cụ thể của từng ngôn ngữ lập trình này, thế nhưng có lẽ bạn sẽ muốn tìm hiểu nhiều hơn một ngôn ngữ. Điều này giúp vốn hiểu biết của bạn trở nên linh hoạt hơn và trở thành một nhà khoa học dữ liệu thực thụ.

NGÔN NGỮ LẬP TRÌNH: Mở đầu Ngôn ngữ lập trình

 

Mục tiêu

Sau khi học xong chương này, sinh viên cần phải nắm:

  • Khái niệm và phân loại các ngôn ngữ lập trình.
  • Vai trò của ngôn ngữ lập trình trong công nghệ phần mềm.
  • Lợi ích của việc nghiên cứu ngôn ngữ lập trình.
  • Các tiêu chuẩn để đánh giá ngôn ngữ lập trình.

Nội dung cốt lõi

  • Khái niệm về ngôn ngữ lập trình.
  • Vai trò của ngôn ngữ lập trình.
  • Lợi ích của việc nghiên cứu ngôn ngữ lập trình.
  • Các tiêu chuẩn để đánh giá một ngôn ngữ lập trình tốt.

Kiến thức cơ bản cần thiết

Kiến thức và kĩ năng lập trình căn bản

Như chúng ta đã biết, máy tính bao gồm phần cứng là các thiết bị điện tử trong đó thông tin được biểu diễn dưới dạng số nhị phân và phần mềm bao gồm các chương trình được tạo ra bằng cách sử dụng các ngôn ngữ lập trình.

Như vậy ngôn ngữ lập trình (NNLT) là ngôn ngữ dùng để viết các chương trình cho máy tính. Cũng như các ngôn ngữ thông thường, NNLT cũng có từ vựng, cú pháp và ngữ nghĩa.

Theo tiến trình lịch sử phát triển, ngôn ngữ lập trình có thể được chia ra làm ba loại chủ yếu như sau:

Ngôn ngữ máy (machine language)

Ngôn ngữ máy (machine language) là các chỉ thị dưới dạng nhị phân, can thiệp trực tiếp vào trong các mạch điện tử. Chương trình được viết bằng ngôn ngữ máy thì có thể được thực hiện ngay không cần qua bước trung gian nào. Tuy nhiên chương trình viết bằng ngôn ngữ máy dễ sai sót, cồng kềnh và khó đọc, khó hiểu vì toàn những con số 0 và 1.

Hợp ngữ (assembly language)

Hợp ngữ là một bước tiến vượt bậc đưa ngôn ngữ lập trình thoát ra khỏi ngôn ngữ máy khó hiểu. Ngôn ngữ này xuất hiện vào những năm 1950, nó được thiết kế để máy tính trở nên thân thiện hơn với người sử dụng. Hợp ngữ đưa ra khái niệm biến (variable), nhờ đó mà ta có thể gán một ký hiệu cho một vị trí nào đó trong bộ nhớ mà không phải viết lại địa chỉ này dưới dạng nhị phân mỗi lần sử dụng. Hợp ngữ cũng chứa vài “phép toán giả”, tức là ta có thể biểu biễn mã phép toán dưới dạng phát biểu (hay còn gọi là câu lệnh) thay vì dưới dạng nhị phân. Các câu lệnh bao gồm hai phần: phần mã lệnh (viết tựa tiếng Anh) chỉ phép toán cần thực hiện và phần tên biến chỉ địa chỉ chứa toán hạng của phép toán đó.

Ðể máy thực hiện được một chương trình viết bằng hợp ngữ thì chương trình đó phải được dịch sang ngôn ngữ máy. Công cụ thực hiện việc dịch đó được gọi là Assembler

Ngôn ngữ cấp cao (High level language)

Ngôn ngữ cấp cao (High level language): là ngôn ngữ được tạo ra và phát triển nhằm phản ánh cách thức người lập trình nghĩ và làm. Ngôn ngữ cấp cao rất gần với ngôn ngữ con người (Anh ngữ) nhưng chính xác như ngôn ngữ toán học. Nhờ ngôn ngữ cấp cao mà lĩnh vực lập trình trở nên phổ biến, rất nhiều người có thể viết được chương trình, và nhờ thế mà các phần mềm phát triển như vũ bão, phục vụ nhiều lĩnh vực của cuộc sống. Cùng với sự phát triển của các thế hệ máy tính, ngôn ngữ lập trình cấp cao cũng được phát triển rất đa dạng và phong phú, việc lập trình cho máy tính vì thế mà cũng có nhiều khuynh hướng khác nhau: lập trình cấu trúc, lập trình hướng đối tượng, lập trình logic, lập trình hàm… Một chương trình viết bằng ngôn ngữ cấp cao được gọi là chương trình nguồn (source programs). Ðể máy tính “hiểu” và thực hiện được các lệnh trong chương trình nguồn thì phải có một chương trình dịch để dịch chương trình nguồn (viết bằng ngôn ngữ cấp cao) thành chương trình đích.

Trong khuôn khổ tài liệu này, thuật ngữ ngôn ngữ lập trình dùng để chỉ ngôn ngữ lập trình cấp cao.

Ðể thấy rõ vai trò của ngôn ngữ lập trình trong công nghệ phần mềm chúng ta hãy xét các giai đoạn chủ yếu để xây dựng một phần mềm. Các giai đoạn đó bao gồm:

  • Xác định: Mục tiêu của giai đọan xác định là để hiểu rõ các yêu cầu của khách hàng. Kết quả của giai đọan này là mô hình thế giới thực được phản ánh thông qua một tài liệu đặc tả yêu cầu.
  • Phân tích: Mục tiêu của giai đoạn này là xác định chính xác hệ thống sẽ làm những gì theo quan điểm của người sử dụng. Kết quả của giai đoạn phân tích là một tài liệu đặc tả chức năng mô tả hệ thống sẽ có những chức năng gì.
  • Thiết kế: Mục tiêu của giai đọan thiết kế là xác định chính xác hệ thống sẽ làm việc như thế nào. Kết quả của giai đọan này là một tài liệu đặc tả thiết kế. Ðây là một tài liệu kỹ thuật mà những người thực hiện sẽ căn cứ vào đó mà tạo ra phần mềm.
  • Cài đặt: Là việc thực hiện cách giải quyết vấn đề đã được đề xuất bởi người thiết kế bằng một NNLT. Kết quả của giai đọan này là một hệ chương trình máy tính.
  • Tích hợp và kiểm thử hệ thống: Do các chuyên viên tin học thực hiện nhằm ghép nối các bộ phận của hệ thống và kiểm tra xem hệ thống có được thực hiện đúng theo thiết kế không.
  • Chấp nhận: Do các chuyên viên tin học cùng với khách hàng tiến hành nhằm xác nhận hệ thống chương trình bảo đảm các yêu cầu của người sử dụng.
  • Vận hành khai thác: Hệ thống được triển khai để sử dụng.

Ở trên chỉ trình bày một mô hình làm phần mềm, gọi là mô hình thác nước (water fall), ngoài ra còn có nhiều mô hình khác. Tuy nhiên trong tất cả các mô hình ấy đều phải có giai đoạn cài đặt. Trong đó NNLT đóng vai trò là một công cụ giúp con người thực hiện bước cài đặt này. Công cụ đó ngày càng được cải tiến hoàn thiện và có thể nói mọi tiến bộ trong tin học đều thể hiện ra trong NNLT. NNLT vừa là công cụ giúp các nhà tin học giải quyết các vấn đề thực tế nhưng đồng thời cũng là nơi mà những nghiên cứu mới nhất của tin học được đưa vào. Lĩnh vực này vừa mang tính truyền thống vừa mang tính hiện đại.

Trước khi nghiên cứu về NNLT, chúng ta cần thảo luận xem vì sao các sinh viên tin học và các nhà lập trình chuyên nghiệp cần phải nắm các khái niệm tổng quát về NNLT. Việc nghiên cứu tốt NNLT sẽ đạt được các lợi ích như sau:

Cho phép lựa chọn một ngôn ngữ lập trình phù hợp với dự án thực tế

Hiện nay có rất nhiều dự án công nghệ thông tin ứng dụng vào nhiều lĩnh vực khác nhau của cuộc sống. Do tính chất của từng dự án mà phần mềm có thể được cài đặt bằng các NNLT khác nhau. Với một vốn kiến thức rộng về NNLT, những người làm dự án có thể lựa chọn nhanh chóng một NNLT phù hợp với đề án thực tế. Chẳng hạn có thể lựa chọn ngôn ngữ lập trình Java cho các dự án lập trình truyền thông, hay hướng lập trình logic cho các dự án về trí tuệ nhân tạo.

Sử dụng một cách có hiệu quả các công cụ của ngôn ngữ

Các ngôn ngữ nói chung đều cung cấp những công cụ đặc biệt để tạo ra các tiện ích cho lập trình viên, nhưng khi sử dụng chúng không đúng đắn có thể sẽ gây ra những sai lầm lớn. Một ví dụ điển hình là phép đệ quy (recursion) – một công cụ lập trình đặc biệt có hiệu lực trong nhiều ngôn ngữ. Khi sử dụng đệ quy một cách đúng đắn thì có thể cài đặt một giải thuật đẹp đẽ và có hiệu quả. Nhưng trong trường hợp khác nó có thể gây ra một sự lãng phí thời gian chạy máy rất lớn cho một giải thuật đơn giản. Ðiều này có thể tránh được nếu như lập trình viên có một sự hiểu biết sâu sắc về ngôn ngữ lập trình và các cài đặt bên trong nó.

Làm tăng vốn kinh nghiệm khi xây dựng các chương trình

Nếu người lập trình đã có sự nghiên cứu một cách rộng rãi nhiều ngôn ngữ mà một trong chúng có cài đặt sẵn những công cụ nào đó thì anh ta có thể tự thiết lập những công cụ tương tự khi phải viết chương trình bởi một ngôn ngữ mà trong đó các công cụ như thế chưa được cài đặt.

Tạo sự dễ dàng để học một ngôn ngữ mới

Mặc dù có nhiều NNLT khác nhau nhưng chúng đều có những nguyên tắc chung của NNLT. Rất nhiều ngôn ngữ có chung cú pháp (sai khác nhau chút ít về cách viết), có chung các kiểu dữ liệu (sai khác nhau chút ít về tên gọi). Việc nắm vững các nguyên lý cơ bản của NNLT sẽ là một điều kiện thuận lợi lớn để tiếp cận một cách nhanh chóng với một ngôn ngữ lập trình cụ thể mới. Thực tế cho thấy rằng với những người nắm vững NNLT, khi gặp một ngôn ngữ lập trình cụ thể mới, họ có thể vừa nghiên cứu ngôn ngữ mới này vừa áp dụng để lập trình giải quyết một bài toán theo yêu cầu.

Tạo tiền đề để thiết kế một ngôn ngữ mới

Việc thiết kế ngôn ngữ mới là một đòi hỏi của khoa học phát triển NNLT. Nếu chúng ta không nghiên cứu về NNLT thì không thể nào có kiến thức để xây dựng một ngôn ngữ mới.

Những yếu tố sau tạo nên một ngôn ngữ tốt, nó cũng là những tiêu chuẩn để người lập trình đánh giá ngôn ngữ này tốt hơn ngôn ngữ kia khi lựa chọn một ngôn ngữ để sử dụng. Ngoài ra khi thiết kế một ngôn ngữ lập trình mới, ta cũng phải quan tâm đến các tiêu chuẩn này để có được một ngôn ngữ tốt.

Tính dễ đọc

Tính dễ đọc của một NNLT là sự dễ dàng đọc hiểu một chương trình được viết bằng ngôn ngữ đó. Tính dễ đọc được đặc trưng bởi các thuộc tính sau:

Sự giản dị.

Một ngôn ngữ được gọi là có tính giản dị nếu ngôn ngữ đó có ít các thành phần cơ sở, tức là ít các yếu tố được định nghĩa trước. Các ngôn ngữ mà chúng ta có thể đạt được một phép toán bằng nhiều cách khác nhau thì không phải là một ngôn ngữ giản dị. Chẳng hạn trong ngôn ngữ C để tăng thêm một đơn vị cho biến count ta có thể sử dụng nhiều cách như count = count + 1, count += 1, count++ hoặc ++count. Các phép toán chồng (overload) cũng làm cho ngôn ngữ trở nên phức tạp. Chẳng hạn toán tử + có thể hiểu là cộng hai số nguyên, cộng hai số thực, hợp hai tập hợp hay ghép nối hai chuỗi ký tự…

Cấu trúc điều khiển

Các lệnh có cấu trúc cho phép viết các chương trình sáng sủa, dễ đọc, dễ hiểu. Chúng ta có thể nhận thấy điều này trong các ngôn ngữ thuộc thập niên 1960 như BASIC, FORTRAN trong đó do thiếu các cấu trúc điều khiển nên chương trình phải sử dụng nhiều lệnh GOTO, rất khó theo dõi để hiểu chương trình. Ta hãy so sánh hai đoạn chương trình in ra màn hình 10 số tự nhiên đầu tiên được viết bằng ngôn ngữ BASIC (không có lệnh cấu trúc FOR) và ngôn ngữ Pascal.



Kiểu dữ liệu và cấu trúc dữ liệu

Xem xét kiểu dữ liệu và cấu trúc dữ liệu của một ngôn ngữ cũng góp phần đánh giá một ngôn ngữ có dễ đọc hay không. Chẳng hạn trong các ngôn ngữ không có kiểu dữ liệu logic thì phải sử dụng kiểu số để thay thế và do đó mà chương trình trở nên khó đọc. Ví dụ ta hay sử dụng biến found trong các chương trình tìm kiếm một phần tử x trong một mảng a gồm n phần tử. Nếu ngôn ngữ sử dụng có kiểu logic thì ta có thể gán cho found giá trị TRUE hoặc FALSE để biểu diễn trạng thái tìm thấy phần tử cần tìm hay không, ngược lại đối với các ngôn ngữ không có kiểu logic thì ta phải dùng kiểu số và gán cho found giá trị 1 hoặc 0. Ta hãy so sánh hai đoạn chương trình sau để xem đoạn chương trình nào dễ hiểu hơn.



Cú pháp

Cú pháp của ngôn ngữ có ảnh hưởng lớn đến sự dễ đọc hiểu của chương trình. Chúng ta xét một số thí dụ sau để thấy rõ vấn đề này.

  • Một số ngôn ngữ quy định độ dài tối đa của danh biểu quá ngắn, chẳng hạn trong FORTRAN 77 độ dài tối đa của danh biểu là 6, do đó tên biến nhiều khi phải viết tắt nên khó đọc hiểu.
  • Việc sử dụng từ khóa cũng góp phần làm cho ngôn ngữ trở nên dễ đọc. Chẳng hạn trong ngôn ngữ Pascal chỉ sử dụng một từ khóa end để kết thúc một khối, kết thúc một lệnh case hay kết thúc một lệnh hợp thành do đó chương trình trở nên khó đọc, trong khi Ada dùng các từ khóa end if để kết thúc lệnh if, end loop để kết thúc lệnh vòng lặp thì chương trình dễ đọc hơn.

Tính dễ viết

Tính dễ viết của một ngôn ngữ là khả năng sử dụng ngôn ngữ đó để viết một chương trình cho một vấn đề nào đó một cách dễ dàng hay không. Thông thường các ngôn ngữ dễ đọc thì đều dễ viết. Tính dễ viết phải được xem xét trong ngữ cảnh của vấn đề mà ngôn ngữ được sử dụng để giải quyết. Theo đó không thế so sánh tính dễ viết của hai ngôn ngữ cho cùng một bài toán mà một trong hai được thiết kế để dành riêng giải quyết bài toán đó. Ví dụ để giải quyết bài toán quản trị dữ liệu, chúng ta không thể so sánh Pascal với một hệ quản trị cơ sở dữ liệu như Foxpro, Access hay Oracle.

Sau đây là một số yếu tố quan trọng nhất ảnh hưởng tới tính dễ viết của ngôn ngữ.

Sự giản dị

Nếu một ngôn ngữ có quá nhiều cấu trúc thì một số người lập trình sẽ không quen sử dụng hết tất cả chúng. Tốt nhất là có một số nhỏ các cấu trúc ban đầu và một quy tắc để kết hợp chúng thành các cấu trúc phức tạp hơn.

Hỗ trợ cho trừu tượng

Một cách ngắn gọn, trừu tượng (abstraction) là khả năng để định nghĩa và sử dụng các cấu trúc hoặc các phép toán phức tạp theo cách thức mà nó cho phép bỏ qua các chi tiết. Một ví dụ về trừu tượng là chương trình con, từ chương trình gọi, chúng ta gọi chương trình con để thực hiện một tác vụ nào đó mà không cần biết các cài đặt chi tiết bên trong chương trình con đó. Thực chất trừu tượng hóa chính là làm cho chương trình sáng sủa hơn.

Khả năng diễn đạt

Là những công cụ của ngôn ngữ mà người lập trình có thể sử dụng để diễn đạt giải thuật một cách dễ dàng. Nói cách khác, một ngôn ngữ có khả năng diễn đạt là ngôn ngữ cung cấp cho người lập trình những công cụ sao cho người lập trình có thể nghĩ sao thì viết chương trình như vậy. Chẳng hạn lệnh lặp FOR trong Pascal dễ sử dụng cho cấu trúc lặp với số lần lặp xác định hơn là lệnh WHILE.

Ðộ tin cậy

Ðộ tin cậy của một ngôn ngữ lập trình là khả năng của ngôn ngữ hỗ trợ người lập trình tạo ra các chương trình đúng đắn. Độ tin cậy được thể hiện bởi các đặc trưng sau:

Kiểm tra kiểu

Là kiểm tra lỗi về kiểu của chương trình trong giai đoạn dịch hoặc trong khi thực hiện. Kiểm tra kiểu là một yếu tố quan trọng đảm bảo độ tin cậy của ngôn ngữ. Kiểm tra kiểu sẽ báo cho người lập trình biết các lỗi về kiểu và yêu cầu họ có các sửa chữa cần thiết để có một chương trình đúng.

Xử lý ngoại lệ (Exception Handing)

Là một công cụ cho phép chương trình phát hiện các lỗi trong thời gian thực hiện, tạo khả năng để sửa chữa chúng và sau đó tiếp tục thực hiện mà không phải dừng chương trình.

Sự lắm tên (Aliasing)

Khi có hai hay nhiều tên cùng liên kết tới một ô nhớ ta gọi là sự lắm tên. Chẳng hạn các biến con trỏ trong ngôn ngữ Pascal cùng trỏ đến một ô nhớ. Sự lắm tên có thể làm giảm độ tin cậy do người lập trình không kiểm soát được giá trị được lưu trữ trong ô nhớ. Hãy xét ví dụ sau trong Pascal



Kết quả thực hiện đoạn chương trình này là in ra hai dòng:

50 và 50

20 và 20

Trong khi nhiều người lầm tưởng hai dòng sẽ in ra là:

50 và 50

50 và 20

Chi phí

Chi phí của một ngôn ngữ cũng thường được quan tâm như là một tiêu chuẩn để đánh giá ngôn ngữ. Chi phí ở đây phải được hiểu là cả tiền bạc và thời gian. Chi phí này bao gồm:

  • Chi phí đào tạo lập trình viên sử dụng ngôn ngữ. Chi phí này phụ thuộc vào sự giản dị của ngôn ngữ.
  • Chi phí cài đặt chương trình. Chi phí này phụ thuộc vào tính dễ viết của ngôn ngữ.
  • Chi phí dịch chương trình.
  • Chi phí thực hiện chương trình.
  • Chi phí bảo trì chương trình.
  • Chi phí mua trình biên dịch
  1. Vai trò của ngôn ngữ lập trình trong công nghệ phần mềm là gì?
  2. Nêu các lợi ích của việc nghiên cứu ngôn ngữ lập trình.
  3. Nêu tên các tiêu chuẩn để đánh giá một ngôn ngữ lập trình tốt.
  4. Nêu tên các yếu tố ảnh hưởng đến tính dễ đọc.
  5. Nêu tên các yếu tố ảnh hưởng đến tính dễ viết.
  6. Nêu tên các yếu tố ảnh hưởng đến độ tin cậy.
  7. Thế nào là sự lắm tên?
  8. Chi phí của ngôn ngữ lập trình bao gồm những chi phí nào?

Leave your Comment