• Chủ Nhật, 30/11/2014 08:17 (GMT+7)

    Điểm danh những ngôn ngữ lập trình ‘một ký tự’

    Huy Thắng
    (PCWorldVN) Những ngôn ngữ lập trình với tên gọi chỉ có một ký tự là góc riêng của Internet, chúng giúp giới lập trình tạo ra những phần mềm từ đơn giản đến phức tạp và cho cả Internet of Things.

    Dù không phải là ngôn ngữ lập trình đầu tiên được đặt tên theo xu hướng “một ký tự”, nhưng C đã trở thành một phần nào của truyền thống đặt tên ngôn ngữ lập trình với một ký tự duy nhất và sau đó được phổ biến rộng rãi cho đến hiện nay.

    Ngôn ngữ C

    Cách đây đã lâu, hai nhà lập trình là Brian Kernighan và Dennis Ritchie (gọi tắt là K&R) lên kế hoạch tạo ra Unix bằng cách sử dụng ngôn ngữ B, một ngôn ngữ nội bộ của hãng AT&T. Tuy nhiên, B không thể xác định được những byte riêng, vốn là một vấn đề lớn lúc đó nên K&R đã phải bổ sung thêm nhiều tính năng để tạo ra C. Ngôn ngữ này sau đó đã nhanh chóng trở nên phổ biến và là ngôn ngữ chung cho Unix. C ngày càng phát triển và có thêm nhiều tính năng hướng đối tượng rồi cuối cùng trở thành C++.

    Dennis Ritchie, cha đẻ của ngôn ngữ C.
    Việc lập trình ngày nay rất khác so với những ngày đầu của Unix. Thời đó, có rất nhiều bit và byte mà các lập trình viên không thể "trỏ" (point) đến. Vì vậy, hầu hết dự án lớn ngày đó bên cạnh việc phải sử dụng những ngôn ngữ mạnh mẽ còn đòi hỏi nhiều về kỹ năng của lập trình viên. Cho đến nay, ngôn ngữ C vẫn sống mặc dù cần phải tinh chỉnh các bit và byte ở mức thấp nhất của hệ điều hành và bộ nạp khởi động. Nếu bạn đang viết một trình điều khiển máy in hoặc những phần mềm không quan trọng, C vẫn còn là "ngôi sao lớn" để lựa chọn.

    Ngôn ngữ D

    Khi kỷ nguyên lập trình bắt đầu, C vẫn tuyệt vời cả về tính linh hoạt và biểu cảm nhưng vẫn còn điểm yếu. Vì là một bước cải tiến so với ngôn ngữ cấp thấp trước đó nên C dễ dàng làm việc với các bit và byte vào và ra của CPU. Tuy nhiên, như đã đề cập ở trên, việc lập trình bằng C đôi khi gặp khó khăn khi trỏ đến một số bit và byte.

    Do đó, những người sáng tạo ra D muốn xây dựng một ngôn ngữ có nhiều khả năng diễn đạt hơn. Bạn có thể viết các vòng lặp đơn giản và hệ thống D sẽ dọn sạch các bit lộn xộn trong bộ nhớ và không cho can thiệp vào cấu trúc dữ liệu.

    Ngôn ngữ D có một số tính năng mà mọi người mong đợi (chẳng hạn như đối tượng) và một số bất ngờ giống như những cấu trúc cho lập trình chức năng. Nếu muốn tạo một bất biến, bạn có thể làm điều đó trong D và sử dụng trong một hàm đệ quy. D có hầu hết tính năng mạnh mẽ của C nhưng được nâng cấp hiện đại hơn. Nếu đang viết trình điều khiển thiết bị, bây giờ bạn có thể làm điều đó mà không cần phải lo lắng nhiều về bộ nhớ hoặc những lỗi con trỏ đơn giản.

    Ngôn ngữ F

    Fortran là một ngôn ngữ lập trình biên dịch được phát triển từ thập niên 1950 và vẫn được dùng nhiều trong tính toán khoa học hay phương pháp số cho đến hơn nửa thế kỷ sau đó. Fortran Company sau đó đã tạo ra ngôn ngữ F đơn giản hơn, rõ ràng hơn và được phát triển như một phiên bản Fortran hiện đại.

    Ngôn ngữ này được thiết kế để tương thích với các phiên bản trước. Bạn có thể kết nối F với Fortran 77 và tất cả phần mềm cũ. Trên thực tế, F không thực sự là một công cụ độc lập. Bạn có thể chọn tùy chọn dòng lệnh và trình biên dịch Fortran 95 sẽ biến thành trình biên dịch F để có thể thực thi các quy định rõ ràng hơn.

    Ngôn ngữ F#

    F# rất khác so với F, cũng giống như C# khác với C.

    Ngôn ngữ F# là ngôn ngữ lập trình chức năng được thiết kế với ý tưởng rằng phần mềm sẽ tốt hơn khi được xây dựng với các chức năng đơn giản mà không bị làm lộn xộn bởi dữ liệu bên ngoài. Điều đó giúp cho mã trong F# dễ hiểu hơn, gỡ lỗi nhanh hơn và thuận lợi hơn để tối ưu hóa trình biên dịch.

    F# là ngôn ngữ lập trình chức năng dành cho Android và iOS.
    Tuy nhiên, không phải ai cũng có nhiều kinh nghiệm với các ngôn ngữ lập trình chức năng. F# khiến cho các nhà lập trình bấy giờ cảm thấy lạ lẫm với các định nghĩa vòng lặp, dãy, đối tượng và các biến có thể thay đổi.

    Hiện nay, F# có nhiều phiên bản dành cho các nền tảng chính như Android, iOS và một số hệ điều hành để bàn.

    Ngôn ngữ G

    Trong giai đoạn khi mà Internet of Things còn là một định nghĩa hoàn toàn mới mẻ, các nhà lập trình G đã sử dụng mã của họ để xây dựng nên những dự án với các hạng mục vật lý trong nhiều ngành công nghiệp. Ngôn ngữ này được sử dụng rộng rãi để điều khiển các máy xay xát kim loại, gỗ hoặc nhựa để chế biến thành các sản phẩm khác.

    Nhiều phiên bản của ngôn ngữ G đã xuất hiện cách đây hơn 50 năm.

    G đã có thêm một số chức năng để định vị và tái định vị các công cụ cắt. Chẳng hạn, G96 là mã để thay đổi tốc độ tương đối của công cụ cắt. Việc thiếu sự trừu tượng hóa này có thể là lý do khiến nhiều nhà khai thác gọi là "G-code" thay vì suy nghĩ về G như một ngôn ngữ đầy đủ.

    Ngôn ngữ J

    J là một ngôn ngữ lập trình cao cấp, hiệu suất cao. J có thể chạy trực tiếp mà không cần phải cài đặt và tương thích với hệ điều hành  Windows, Unix, Mac và các thiết bị cầm tay PocketPC, cả hai như là một giao diện đồ họa và trong giao diện.

    Ngôn ngữ J đặc biệt phát huy thế mạnh trong các lĩnh vực phân tích toán học, thống kê và logic dữ liệu. Đây là một công cụ mạnh mẽ trong việc xây dựng các giải pháp mới và tốt hơn, thậm chí tốt hơn trong việc tìm kiếm các giải pháp về các vấn đề chưa được hiểu rõ.

    Ngôn ngữ K

    K là một ngôn ngữ xử lý dãy được phát triển bởi Arthur Whitney và được thương mại hóa bởi công ty Kx Systems. Ngôn ngữ này ban đầu được phát triển vào năm 1993, là một biến thể của ngôn ngữ lập trình chức năng APL (A Programming Language). Ngôn ngữ K nhấn mạnh vào tốc độ, khả năng xử lý dãy và cú pháp biểu cảm.

    K cũng là một ngôn ngữ lập trình hệ thống cấp cao, tương thích với các nền tảng Windows, Solaris, Linux và một vài phiên bản Unix khác. K có nhiều tính năng độc đáo mà các ngôn ngữ khác không có. Ngôn ngữ này phù hợp mục đích giáo dục, nghiên cứu hoặc ngành sản xuất đồ chơi.

    Ngôn ngữ M

    Một số nhà phát triển đã xây dựng một hệ thống cơ sở dữ liệu cho giới  y học gọi là "Massachusetts General Hospital Utility Multi-Programming System" và sau đó rút gọn thành “MUMPS”. Khi xu hướng đặt tên thay đổi, MUMPS được tổ chức ANSI quyết định đổi tên thành M vào năm 1995. Dù vậy, một số nhà lập trình ngày nay vẫn quen gọi là "M/MUMPS".

    Bản thân ngôn ngữ này thường được xem là một trong những ví dụ ban đầu của kiểu cơ sở dữ liệu giá trị quan trọng, vốn là mô hình hiện đang được tái khám phá giống như các cửa hàng dữ liệu NoSQL. Ngôn ngữ M thực hiện công việc lưu trữ dữ liệu và xử lý bộ nhớ đệm cũng như di chuyển dữ liệu giữa bộ nhớ và đĩa cứng.

    Y tế hiện là một trong những lĩnh vực dùng ngôn ngữ này nhiều nhất, nhưng M vẫn luôn có những vị trí đặc biệt trong các ngành công nghiệp khác như ngân hàng, vốn là nơi có nhu cầu xử lý một lượng dữ liệu cực kỳ lớn.

    Ngôn ngữ P

    Phiên bản ngôn ngữ P do Microsoft thiết kế để giúp các nhà lập trình dễ dàng viết mã cho tất cả loại thiết bị nhỏ trên thế giới, hay còn gọi là thiết bị Internet of Things.

    Những thiết bị này thường dành phần lớn thời gian chờ đợi để được hướng dẫn, sau đó chúng sẽ thực hiện các lệnh theo yêu cầu.

    Internet of Things là lĩnh vực chính của ngôn ngữ P.
    P yêu cầu các nhà lập trình xây dựng một "sơ đồ trạng thái" với các nốt (node).

    Đầu vào từ người sử dụng sẽ kích hoạt quá trình chuyển đổi từ một nốt trạng thái này đến một nốt trạng thái khác. Ngoài ra, còn có một phiên bản đồ họa của mã trông giống như một loạt các khối hình hộp chữ nhật đại diện cho các trạng thái với một loạt mũi tên kết nối giữa các hình. Các lệnh không đồng bộ tạo ra một bước nhảy từ một hình này sang một hình khác dọc theo chiều những mũi tên.

    Microsoft đã xây dựng cả giao diện đồ họa và văn bản cho P. Trình biên dịch chuyển đổi sơ đồ trạng thái thành mã C, sau đó lần lượt biên dịch như thường lệ. Trước đây, chỉ cần đơn giản chuyển giao sơ đồ trạng thái để nhà lập trình tạo mã, nhưng quá trình chuyển giao không phải lúc nào cũng luôn chính xác. Microsoft gần đây đã sử dụng các kỹ thuật riêng để cải thiện vấn đề này.

    Ngôn ngữ R

    Một thời gian dài trước khi máy tính mainframe phổ biến, R được gọi là S và các nhà nghiên cứu đã sử dụng ngôn ngữ này để tính toán thống kê. Những cái tên đã thay đổi nhưng R vẫn là một đệm trực tuyến để trích xuất số liệu thống kê từ các bảng dữ liệu lớn. Bạn có thể tải dữ liệu, gọi các tính năng để đo mối tương quan dữ liệu, sau đó lần lượt biến những tương quan này thành đồ thị phức tạp.

    Việc sử dụng R bây giờ dễ dàng hơn chút ít nhờ vào các công cụ như Rcmdr, RStudio và một loạt tính năng khác. Nếu không có R, tất cả những gì bạn phải làm là nhìn vào một bảng đầy các con số.

    Với ngôn ngữ lập trình R, bạn có thể xây dựng các biểu đồ ưa thích từ những con số phức tạp và thậm chí có thể giải thích những gì đang xảy ra bên trong bảng dữ liệu khó hiểu đó.