Công Nghệ & Ứng Dụng

Microsoft: Excel đang trở thành vũ khí tối thượng cho các nhà phát triển

Microsoft: Excel đang trở thành vũ khí tối thượng cho các nhà phát triển

Wikicabinet – Kênh thông tin tri thức nhân loại kính chào quý độc giả ở kỳ trước chúng tôi đã giới thiệu các chủ đề về:

Tại sao chế tạo một con chip thật sự khó khăn

Kỳ này wikicabinet xin giới thiệu đến độc giả một chủ đề Microsoft: Excel đang trở thành vũ khí tối thượng cho các nhà phát triển. Mời quý độc giả đón theo dõi chủ đề này cùng wikicabinet nhé!

Excel không chỉ là một phần mềm văn phòng, mà còn là một ngôn ngữ lập trình. Excel với tư cách là một ngôn ngữ lập trình vẫn còn một số khuyết điểm. Để bù đắp những thiếu sót này, nhóm Excel đã thiết lập mối quan hệ hợp tác lâu dài với Microsoft Research Cambridge.

Microsoft Excel gần như là một cái tên quen thuộc trong phần mềm văn phòng, và nó cũng là ngôn ngữ lập trình được sử dụng rộng rãi nhất trên thế giới. Thậm chí có nhiều người dùng viết công thức Excel hơn cả các lập trình viên C, C ++, C #, Java và Python cộng lại. Mặc dù Excel đã đạt được nhiều thành công nhưng nó vẫn tồn tại một số điểm yếu cơ bản như một ngôn ngữ lập trình. Hai điểm yếu nổi bật nhất là:

Ngôn ngữ công thức Excel thực sự chỉ hỗ trợ các giá trị vô hướng, cụ thể là số, chuỗi và giá trị Boolean.

Người dùng không được phép xác định các chức năng mới.

Để giải quyết hai vấn đề này, Microsoft Cambridge Research đã thiết lập mối quan hệ hợp tác lâu dài với nhóm Excel và cam kết chuyển đổi các công thức bảng tính thành các ngôn ngữ lập trình thuần thục. Kết quả của sự hợp tác giữa hai người dần dần hiện ra trong sản phẩm. Tại Hội thảo Nguyên tắc Ngôn ngữ Lập trình ACM SIGPLAN 2019 (POPL 2019), Microsoft đã công bố hai bước phát triển chính: Các kiểu dữ liệu của Excel không còn giới hạn ở văn bản và số, cho phép các ô chứa các loại bản ghi gốc, bao gồm các thực thể được liên kết với dữ liệu bên ngoài và mảng động ( cho phép các công thức thông thường tính toán toàn bộ mảng và kết quả tràn sang các ô liền kề),… Tất cả những thay đổi này đều nhằm giải quyết vấn đề đầu tiên, đó là xây dựng dữ liệu có cấu trúc phong phú, đầy đủ và nguyên bản trong Excel.

Microsoft: Excel đang trở thành vũ khí tối thượng cho các nhà phát triển

Vào tháng 12 năm 2020, Microsoft phát hành LAMBDA, cho phép người dùng viết các hàm mới thông qua ngôn ngữ công thức của Excel, có thể giải quyết trực tiếp vấn đề thứ hai. Các hàm mới được xác định này có thể gọi các hàm LAMBDA khác với độ sâu không giới hạn và thậm chí là đệ quy. Với LAMBDA, Excel có tính hoàn chỉnh của Turing. Về lý thuyết, bạn có thể sử dụng ngôn ngữ công thức Excel để viết bất kỳ phép tính nào. Giờ đây, người dùng đã tham gia chương trình Insiders: Beta có thể sử dụng LAMBDA. Tại hội nghị POPL vào năm 2021, video của Microsoft đã thảo luận một số nghiên cứu về LAMBDA và bảng tính.

Chức năng của Lambda

Các nhà nghiên cứu biết rằng biểu diễn lambda của Qiu Qi là cơ sở của nhiều ngôn ngữ lập trình kể từ những năm 1960, và do đó, bản thân nó là một cấu trúc lập trình biểu cảm. Việc tích hợp lambda đã mang lại sự cải tiến từ thay đổi định lượng sang thay đổi chất lượng cho Excel.

Để minh họa chức năng mạnh mẽ của LAMBDA, hãy viết một hàm sử dụng ký hiệu này để tính độ dài cạnh huyền của một tam giác vuông:

= LAMBDA (X, Y, SQRT (X * X + Y * Y))

LAMBDA là phần bổ sung cho LET được phát hành vào tháng 3 năm 2020. Do đó, ví dụ này cũng có thể được viết như sau:

= LAMBDA (X, Y, LET (XS, X * X, YS, Y * Y, SQRT (XS + YS)))

Hàm này có hai tham số: X và Y. Chức năng của hàm là ràng buộc giá trị của X * X với XS, và giá trị của Y * Y với YS, và kết quả là trả về SQRT (XS + YS).

Chúng ta có thể sử dụng trình quản lý đặt tên hiện có trong Excel để đặt tên cho công thức này. Nếu chúng ta đặt tên cho hàm là PYTHAGORAS, kết quả của PYTHAGORAS (3,4) bằng 5. Sau khi kết thúc việc đặt tên, bạn có thể gọi hàm bằng tên hàm, do đó không cần lặp lại toàn bộ công thức.

Hơn nữa, LAMBDA là lambda mà chúng ta biết và yêu thích: lambda có thể là tham số hoặc kết quả của lambda khác; bạn có thể xác định số Qiu Qi; lambda có thể trả về lambda, do đó, cũng có thể thực hiện currying; sử dụng LAMBDA để xác định các tổ hợp điểm cố định, Và sau đó viết các hàm đệ quy; v.v. (Ngoài ra, lambdas cũng có thể có tên hàm, vì vậy chúng có thể trực tiếp gọi chính nó một cách đệ quy, điều này thuận tiện hơn nhiều so với việc sử dụng các tổ hợp điểm cố định.)

Lệnh gọi đệ quy: chuỗi đảo ngược và tổ hợp điểm cố định

Chuỗi đảo ngược không phải là một hàm tích hợp sẵn của Excel và chỉ có thể được viết bằng các ngôn ngữ như Visual Basic hoặc JavaScript. Trong hình dưới đây, REVERSE là một LAMBDA đệ quy, sử dụng một cặp hàm phụ HEAD và TAIL để lấy ký tự đầu tiên và tất cả các ký tự ngoại trừ ký tự đầu tiên.

Ngay cả khi không dựa vào tên của định nghĩa đệ quy, ngôn ngữ công thức của Excel là Turing hoàn chỉnh, vì chúng ta có thể sử dụng tổ hợp điểm cố định gọi theo giá trị truyền thống để mã hóa định nghĩa hàm đệ quy. Trên thực tế, việc chạy tổ hợp này trong cơ sở mã Excel cũng là một trong những thử nghiệm căng thẳng ban đầu của LAMBDA. Hình dưới đây xác định một hàm giai thừa.

Microsoft: Excel đang trở thành vũ khí tối thượng cho các nhà phát triểnMicrosoft: Excel đang trở thành vũ khí tối thượng cho các nhà phát triển

Bước tiếp theo

Chúng tôi vẫn còn nhiều kế hoạch. Cũng sẽ được phát hành trong tương lai gần là các mảng có thể lồng nhau, cũng như các tổ hợp hiệu quả hơn để xử lý mảng, chẳng hạn như MAP và REDUCE, có thể lấy các hàm lambda làm tham số. Ngoài ra, chúng tôi cũng hy vọng rằng không chỉ các hàm có thể được xác định bằng công thức mà toàn bộ trang tính có thể được sử dụng để định nghĩa các hàm, cái gọi là hàm định nghĩa trang tính hoặc thậm chí là các hàm định nghĩa trang tính linh hoạt. Trên thực tế, các hàm được xác định trong trang tính tuân theo thiết kế bảng tính chung và người dùng có thể xác định các hàm lớn hơn thông qua nhiều công thức được phân phối trên nhiều ô.

Cộng đồng phản hồi

Chỉ khi người dùng có thể sử dụng một cách dễ dàng và hiệu quả một ngôn ngữ lập trình nhất định thì ngôn ngữ đó mới được cho là thành công. Một số người có thể nghĩ rằng LAMBDA chỉ phù hợp với những người yêu thích ngôn ngữ lập trình, nhưng nó lại quá khó đối với người dùng cuối. Khi LAMBDA được phát hành, Microsoft đã khởi động một thử nghiệm trên quy mô toàn cầu để xem liệu người dùng cuối có thể thích ứng với việc lập trình các chức năng bậc cao hơn hay không.

Một số phản hồi ban đầu là rất đáng khích lệ. Vào tháng 12, trong vòng 24 giờ kể từ khi LAMBDA phát hành, chúng tôi đã nhận được rất nhiều video, bao gồm cả video chia dữ liệu thành nhiều cột và sử dụng LAMBDA và LET để tạo báo cáo đơn ô và một số bài đăng trên blog, bao gồm tính toán thang đo trục Chờ, cộng đồng cung cấp rất nhiều cách để áp dụng LAMBDA mà chúng tôi chưa từng nghĩ đến.

Ngoài ra, mặc dù viết lambda đòi hỏi kỹ năng và kiến ​​thức chuyên môn, nhưng việc gọi lambda không đòi hỏi công nghệ cao cấp. Các kỹ thuật viên có thể sử dụng LAMBDA để mở rộng Excel và viết các hàm dành riêng cho ứng dụng và đồng nghiệp của họ có thể gọi các hàm này trực tiếp trong Excel.

Chúng tôi hy vọng rằng người dùng sẽ tiến hành nhiều thử nghiệm khác nhau, không chỉ LAMBDA mà còn cả các kiểu dữ liệu và mảng động. Chúng tôi tin rằng các tính năng lập trình hàm mới này sẽ thay đổi cách mọi người sử dụng Excel để đưa ra quyết định.

Trong kỳ tiếp theo, Wikicabinet  trân trọng mời độc giả đón đọc chủ đề Tại sao điện thoại Android hiện tại không cần “ROOT” nữa?

Nếu có những thắc mắc hay muốn tìm hiểu về bất kỳ chủ đề nào, hãy liên hệ với Wikicabinet bằng cách bình luận ở phía dưới nhé.

Leave a Reply