Luyện dịch

Chủ đề 40: LẬP TRÌNH PARADIGMS VÀ NGÔN NGỮ CHỨC NĂNG

Bài 1: Dịch các từ sau sang tiếng Anh (Chuyên sâu)


STTTiếng ViệtXEM ĐÁP ÁN (English / IPA)
1.Mô hình lập trình (Programming Paradigm)
ĐÁP ÁN Programming Paradigm
/ˈprəʊɡræmɪŋ ˈpærədaɪm/
2.Lập trình chức năng (Functional Programming)
ĐÁP ÁN Functional Programming (FP)
/ˈfʌŋkʃənəl ˈprəʊɡræmɪŋ/
3.Trạng thái bất biến
ĐÁP ÁN Immutability
/ɪˌmjuːtəˈbɪləti/
4.Hàm bậc cao (Higher-Order Function)
ĐÁP ÁN Higher-Order Function (HOF)
/ˌhaɪər ˈɔːrdər ˈfʌŋkʃn/
5.Tác dụng phụ
ĐÁP ÁN Side effects
/saɪd ɪˈfekts/
6.Tham chiếu minh bạch
ĐÁP ÁN Referential transparency
/ˌrefərˈenʃl trænsˈpærənsi/
7.Đệ quy đuôi
ĐÁP ÁN Tail recursion
/teɪl rɪˈkɜːrʒn/
8.Hàm thuần khiết
ĐÁP ÁN Pure function
/pjʊər ˈfʌŋkʃn/
9.Tính toán song song
ĐÁP ÁN Parallel computation
/ˈpærəlel ˌkɒmpjʊˈteɪʃn/
10.Xác định kiểu tĩnh
ĐÁP ÁN Static typing
/ˈstætɪk ˈtaɪpɪŋ/

Bài 2: Dịch các câu sau


Dịch Việt – Anh:
  1. Lập trình chức năng (FP) là một mô hình lập trình dựa trên việc sử dụng hàm thuần khiết và trạng thái bất biến.
    ĐÁP ÁN Functional Programming (FP) is a programming paradigm based on the use of pure functions and immutability.
    /ˈfʌŋkʃənəl ˈprəʊɡræmɪŋ ɪz ə ˈprəʊɡræmɪŋ ˈpærədaɪm beɪst ɒn ðə juːs əv pjʊər ˈfʌŋkʃnz ænd ɪˌmjuːtəˈbɪləti./
  2. Sự vắng mặt của tác dụng phụ trong các hàm thuần khiết đảm bảo tham chiếu minh bạch và tạo điều kiện cho tính toán song song.
    ĐÁP ÁN The absence of side effects in pure functions ensures referential transparency and facilitates parallel computation.
    /ðiː ˈæbsəns əv saɪd ɪˈfekts ɪn pjʊər ˈfʌŋkʃnz ɪnˈʃʊərz ˌrefərˈenʃl trænsˈpærənsi ænd fəˈsɪlɪteɪts ˈpærəlel ˌkɒmpjʊˈteɪʃn./
  3. Các ngôn ngữ chức năng thường sử dụng đệ quy đuôi thay vì vòng lặp, và nhiều ngôn ngữ có xác định kiểu tĩnh để tăng độ tin cậy.
    ĐÁP ÁN Functional languages often use tail recursion instead of loops, and many feature static typing for increased reliability.
    /ˈfʌŋkʃənəl ˈlæŋɡwɪdʒɪz ˈɔːfn juːz teɪl rɪˈkɜːrʒn ɪnˈsted əv luːps, ænd ˈmeni ˈfiːʧər ˈstætɪk ˈtaɪpɪŋ fər ɪnˈkriːst rɪˌlaɪəˈbɪləti./
Dịch Anh – Việt:
  1. Higher-Order Functions (HOFs) are a defining feature of the functional programming paradigm, allowing functions to be treated as first-class citizens./ˌhaɪər ˈɔːrdər ˈfʌŋkʃnz ər ə dɪˈfaɪnɪŋ ˈfiːʧər əv ðə ˈfʌŋkʃənəl ˈprəʊɡræmɪŋ ˈpærədaɪm, əˈlaʊɪŋ ˈfʌŋkʃnz tuː biː ˈtriːtɪd æz fɜːrst klɑːs ˈsɪtɪznz./
    ĐÁP ÁN

    Hàm bậc cao (HOFs) là một tính năng xác định của mô hình lập trình chức năng, cho phép các hàm được coi là công dân hạng nhất.

  2. Immutability means that once a data structure is created, its state cannot be changed, eliminating entire classes of concurrency bugs in parallel computation./ɪˌmjuːtəˈbɪləti miːnz ðæt wʌns ə ˈdeɪtə ˈstrʌkʧər ɪz kriˈeɪtɪd, ɪts steɪt ˈkænɒt biː ʧeɪnd, ɪˈlɪmɪneɪtɪŋ ɪnˈtaɪər ˈklɑːsɪz əv kənˈkʌrənsi bʌɡz ɪn ˈpærəlel ˌkɒmpjʊˈteɪʃn./
    ĐÁP ÁN

    Trạng thái bất biến có nghĩa là một khi một cấu trúc dữ liệu được tạo ra, trạng thái của nó không thể thay đổi, loại bỏ toàn bộ các loại lỗi đồng thời (concurrency bugs) trong tính toán song song.

  3. Tail recursion is a special case of recursion that can be optimized by the compiler into simple iteration, preventing stack overflow errors often associated with deep recursion./teɪl rɪˈkɜːrʒn ɪz ə ˈspeʃl keɪs əv rɪˈkɜːrʒn ðæt kæn biː ˈɒptɪmaɪzd baɪ ðə kəmˈpaɪlər ˈɪntuː ˈsɪmpl ˌɪtəˈreɪʃn, prɪˈventɪŋ stæk ˈəʊvərfləʊ ˈerərz ˈɔːfn əˌsəʊʃiˈeɪtɪd wɪð diːp rɪˈkɜːrʒn./
    ĐÁP ÁN

    Đệ quy đuôi là một trường hợp đặc biệt của đệ quy có thể được trình biên dịch tối ưu hóa thành phép lặp đơn giản, ngăn ngừa lỗi tràn ngăn xếp (stack overflow) thường liên quan đến đệ quy sâu.

Bài 3: Dịch hội thoại sau (Anh – Việt)


English (English / IPA)XEM ĐÁP ÁN (Tiếng Việt)
A: What is the primary advantage of immutability and pure functions in the functional programming paradigm?

/wɒt ɪz ðə ˈpraɪməri ədˈvɑːntɪdʒ əv ɪˌmjuːtəˈbɪləti ænd pjʊər ˈfʌŋkʃnz ɪn ðə ˈfʌŋkʃənəl ˈprəʊɡræmɪŋ ˈpærədaɪm?/
ĐÁP ÁN

Lợi ích chính của trạng thái bất biến và hàm thuần khiết trong mô hình lập trình chức năng là gì?

B: They eliminate side effects and shared mutable state, which vastly simplifies debugging and makes parallel computation safe and easy due to guaranteed referential transparency.

/ðeɪ ɪˈlɪmɪneɪt saɪd ɪˈfekts ænd ʃeərd ˈmjuːtəbl steɪt, wɪʧ ˈvæstli ˈsɪmplɪfaɪz dɪˈbʌɡɪŋ ænd meɪks ˈpærəlel ˌkɒmpjʊˈteɪʃn seɪf ænd ˈiːzi duː tuː ˌɡærənˈtiːd ˌrefərˈenʃl trænsˈpærənsi./
ĐÁP ÁNChúng loại bỏ tác dụng phụ và trạng thái có thể thay đổi được chia sẻ, điều này đơn giản hóa đáng kể việc gỡ lỗi và làm cho tính toán song song an toàn và dễ dàng nhờ vào tham chiếu minh bạch được đảm bảo.
A: Why do functional languages favor tail recursion over traditional loop structures?

/waɪ duː ˈfʌŋkʃənəl ˈlæŋɡwɪdʒɪz ˈfeɪvər teɪl rɪˈkɜːrʒn ˈəʊvər trəˈdɪʃənl luːp ˈstrʌkʧərz?/
ĐÁP ÁN

Tại sao các ngôn ngữ chức năng lại ưu tiên đệ quy đuôi hơn các cấu trúc vòng lặp truyền thống?

B: Because recursion naturally fits the functional style without mutable state. Tail recursion specifically allows the compiler to perform tail call optimization, making it as efficient as an iterative loop while maintaining the functional paradigm.

/bɪˈkɒz rɪˈkɜːrʒn ˈnæʧrəli fɪts ðə ˈfʌŋkʃənəl staɪl wɪˈðaʊt ˈmjuːtəbl steɪt. teɪl rɪˈkɜːrʒn spəˈsɪfɪkli əˈlaʊz ðə kəmˈpaɪlər tuː pərˈfɔːrm teɪl kɔːl ˌɒptɪmaɪˈzeɪʃn, ˈmeɪkɪŋ ɪt æz ɪˈfɪʃnt æz ən ˈɪtərətɪv luːp waɪl meɪnˈteɪnɪŋ ðə ˈfʌŋkʃənəl ˈpærədaɪm./
ĐÁP ÁN

Bởi vì đệ quy tự nhiên phù hợp với phong cách chức năng mà không cần trạng thái có thể thay đổi. Đệ quy đuôi đặc biệt cho phép trình biên dịch thực hiện tối ưu hóa cuộc gọi đuôi (tail call optimization), làm cho nó hiệu quả như một vòng lặp lặp đi lặp lại trong khi vẫn duy trì mô hình chức năng.

A: What is the benefit of static typing in a functional language compared to dynamic typing?

/wɒt ɪz ðə ˈbenɪfɪt əv ˈstætɪk ˈtaɪpɪŋ ɪn ə ˈfʌŋkʃənəl ˈlæŋɡwɪdʒ kəmˈpeərd tuː daɪˈnæmɪk ˈtaɪpɪŋ?/
ĐÁP ÁN

Lợi ích của xác định kiểu tĩnh trong một ngôn ngữ chức năng so với xác định kiểu động là gì?

B: Static typing catches a large class of errors at compile time, improving reliability and performance. It also makes the code self-documenting by explicitly defining the data types for all functions and data structures.

/ˈstætɪk ˈtaɪpɪŋ ˈkæʧɪz ə lɑːrdʒ klɑːs əv ˈerərz æt kəmˈpaɪl taɪm, ɪmˈpruːvɪŋ rɪˌlaɪəˈbɪləti ænd pərˈfɔːrməns. ɪt ˈɔːlsəʊ meɪks ðə kəʊd self ˈdɒkjuməntɪŋ baɪ ɪkˈsplɪsɪtli dɪˈfaɪnɪŋ ðə ˈdeɪtə taɪps fər ɔːl ˈfʌŋkʃnz ænd ˈdeɪtə ˈstrʌkʧərz./
ĐÁP ÁN

Xác định kiểu tĩnh bắt được một loại lỗi lớn ngay tại thời điểm biên dịch, cải thiện độ tin cậy và hiệu suất. Nó cũng làm cho mã tự tài liệu hóa bằng cách xác định rõ ràng các loại dữ liệu cho tất cả các hàm và cấu trúc dữ liệu.

Bài 4: Dịch các đoạn văn sau


Dịch Việt – Anh:

“Lập trình chức năng (FP) là một mô hình lập trình tập trung vào việc tính toán các hàm toán học. Đặc điểm chính của nó là **trạng thái bất biến** và việc sử dụng **hàm thuần khiết**, tức là các hàm không có **tác dụng phụ** và đảm bảo **tham chiếu minh bạch**. Điều này cho phép **tính toán song song** an toàn và dễ dàng hơn nhiều. Các ngôn ngữ chức năng tận dụng **Hàm bậc cao** (HOFs) và **đệ quy đuôi** thay vì vòng lặp, thường kết hợp **xác định kiểu tĩnh** để tăng cường khả năng kiểm tra lỗi trong quá trình biên dịch.”

ĐÁP ÁN “Functional Programming (FP) is a programming paradigm focused on the computation of mathematical functions. Its key features are immutability and the use of pure functions, meaning functions that have no side effects and ensure referential transparency. This allows for much safer and easier parallel computation. Functional languages leverage Higher-Order Functions (HOFs) and tail recursion instead of loops, often incorporating static typing to enhance error checking during compilation.”
/ˈfʌŋkʃənəl ˈprəʊɡræmɪŋ ɪz ə ˈprəʊɡræmɪŋ ˈpærədaɪm ˈfəʊkəsɪŋ ɒn ðə ˌkɒmpjʊˈteɪʃn əv ˌmæθəˈmætɪkl ˈfʌŋkʃnz. ɪts kiː ˈfiːʧərz ər ɪˌmjuːtəˈbɪləti ænd ðə juːs əv pjʊər ˈfʌŋkʃnz, ˈmiːnɪŋ ˈfʌŋkʃnz ðæt hæv nəʊ saɪd ɪˈfekts ænd ɪnˈʃʊər ˌrefərˈenʃl trænsˈpærənsi. ðɪs əˈlaʊz fər mʌʧ ˈseɪfər ænd ˈiːziər ˈpærəlel ˌkɒmpjʊˈteɪʃn. ˈfʌŋkʃənəl ˈlæŋɡwɪdʒɪz ˈlevərɪdʒ ˌhaɪər ˈɔːrdər ˈfʌŋkʃnz ænd teɪl rɪˈkɜːrʒn ɪnˈsted əv luːps, ˈɔːfn ˌɪnkɔːrpəˈreɪtɪŋ ˈstætɪk ˈtaɪpɪŋ tuː ɪnˈhɑːns ˈerər ˈʧekɪŋ ˈdjʊərɪŋ ˌkɒmpɪˈleɪʃn./
Dịch Anh – Việt:

“The functional programming paradigm emphasizes **immutability** to prevent **side effects** that plague concurrency in imperative languages. By strictly using **pure functions**, the output for a given input is always the same, ensuring **referential transparency**. This inherent quality simplifies debugging and enables efficient **parallel computation**. Furthermore, advanced features like **Higher-Order Functions** and **tail recursion** provide powerful tools for abstraction, often supported by robust **static typing** systems found in modern functional languages.”

/ðə ˈfʌŋkʃənəl ˈprəʊɡræmɪŋ ˈpærədaɪm ˈemfəsaɪzɪz ɪˌmjuːtəˈbɪləti tuː prɪˈvent saɪd ɪˈfekts ðæt pleɪɡ kənˈkʌrənsi ɪn ɪmˈperətɪv ˈlæŋɡwɪdʒɪz. baɪ ˈstrɪktli ˈjuːzɪŋ pjʊər ˈfʌŋkʃnz, ðiː ˈaʊtpʊt fər ə ˈɡɪvn ˈɪnpʊt ɪz ˈɔːlweɪz ðə seɪm, ɪnˈʃʊərɪŋ ˌrefərˈenʃl trænsˈpærənsi. ðɪs ɪnˈherənt ˈkwɒləti ˈsɪmplɪfaɪz dɪˈbʌɡɪŋ ænd ɪˈneɪblz ɪˈfɪʃnt ˈpærəlel ˌkɒmpjʊˈteɪʃn. ˈfɜːrðərmɔːr, ədˈvɑːnst ˈfiːʧərz laɪk ˌhaɪər ˈɔːrdər ˈfʌŋkʃnz ænd teɪl rɪˈkɜːrʒn prəˈvaɪd ˈpaʊərfl tuːlz fər æbˈstrækʃn, ˈɔːfn səˈpɔːrtɪd baɪ rəʊˈbʌst ˈstætɪk ˈtaɪpɪŋ ˈsɪstəmz faʊnd ɪn ˈmɒdərn ˈfʌŋkʃənəl ˈlæŋɡwɪdʒɪz./
ĐÁP ÁN

“Mô hình lập trình chức năng nhấn mạnh **trạng thái bất biến** để ngăn chặn **tác dụng phụ** gây khó khăn cho tính đồng thời (concurrency) trong các ngôn ngữ mệnh lệnh. Bằng cách sử dụng nghiêm ngặt **hàm thuần khiết**, đầu ra cho một đầu vào nhất định luôn giống nhau, đảm bảo **tham chiếu minh bạch**. Chất lượng vốn có này đơn giản hóa việc gỡ lỗi và cho phép **tính toán song song** hiệu quả. Hơn nữa, các tính năng nâng cao như **Hàm bậc cao** và **đệ quy đuôi** cung cấp các công cụ mạnh mẽ để trừu tượng hóa, thường được hỗ trợ bởi các hệ thống **xác định kiểu tĩnh** mạnh mẽ có trong các ngôn ngữ chức năng hiện đại.”

TRỞ LẠI