2 The SAL Common Intermediate LanguageMechanized formal analysis start dịch - 2 The SAL Common Intermediate LanguageMechanized formal analysis start Việt làm thế nào để nói

2 The SAL Common Intermediate Langu


2 The SAL Common Intermediate Language
Mechanized formal analysis starts from a description of the problem of interest expressed in the notation of the tool to be employed. Construction of this description often entails considerable work: first to recast the system specification from its native expression in C, Esterel, Java, SCR, UML, Verilog, or whatever, into the notation of the tool concerned, then to extract the part that is relevant to the analysis at hand, and finally to reduce it to a form that the tool can handle. If a second tool is to be employed for a different analysis, then a second description of the problem must be prepared, with considerable duplicationof effort. With source languages and tools, we need translators. This situation naturally suggests use of a common intermediate language, where the numbers of tools required could be reduced to translators.
The intermediate language must serve as a medium for representing the state transition semantics of a system described in a source language such as Java or Esterel. It must also serve as a common representation for driving a number of back-end tools such as theorem provers and model checkers. A useful intermediate language for describing concurrent systems must attempt to preserve both the structure and meaning of the original specification while supporting a modular analysis of the transition system.
For these reasons, the SAL intermediate language is a rather rich language. In the sequel, we give an overview of the main features of the SAL type language, the expression language, the module language, and the context language. For a precise definition and semantics of the SAL language, including comparisons to related languages for expressing concurrent systems, see [31].
The type system of SAL supports basic types such as booleans, scalars, integers and integer subranges, records, arrays, and abstract datatypes. Expressions are strongly typed. The expressions consist of constants, variables, applications of Boolean, arithmetic, and bit-vector operations (bit-vectors are just arrays of Booleans), and array and record selection and updates. mutex : CONTEXT = BEGIN
PC: TYPE = trying, critical, sleeping
mutex [tval:boolean] : MODULE = BEGIN
INPUT pc2: PC, x2: boolean
OUTPUT pc1: PC, x1: boolean
INITIALIZATION
TRUE --> pc1 = sleeping; x1 = tval
TRANSITION pc1 = sleeping
--> pc1’ = trying; x1’ = (x2=tval)
[] pc1 = trying AND
(pc2=sleeping OR x1= (x2/=tval))
--> pc1’ = critical
[] pc1 = critical
--> pc1’ = sleeping; x1’ = (x2=tval) END
system: MODULE = HIDE x1,x2
(mutex[FALSE]
|| RENAME pc2 TO pc1, x2 TO x1, pc1 TO pc2, x1 TO x2 mutex[TRUE])
mutualExclusion: THEOREM system |-
AG(NOT(pc1=critical
AND pc2=critical))
eventually1: LEMMA system |- EF(pc1=critical)
eventually2: LEMMA
system |- EF(pc2=critical)
END
Figure 1. Mutual Exclusion
Conditional expressions are also part of the expression language and user-defined functions may also be introduced.
A module is a self-contained specification of a transition system in SAL. Usually, several modules are collected in a context. Contexts also include type and constant declarations. A transition system module consists of a state type, an initialization condition on this state type, and a binary transition relation of a specific form on the state type. The state type is defined by four pairwise disjoint sets of input, output, global, and local variables. The input and global variables are the observed variables of a module and the output, global, and local variables are the controlled variables of the module. It is good pragmatics to name a module. This name can be used to index the local variables so that they need not be renamed during composition. Also, the properties of the module can be indexed on the name for quick lookup.
Consider, for example, the SAL specification of a variant of Peterson’s mutual exclusion algorithm in Figure 1. Here the state of the module consists of the controlled variables corresponding to its own program counter pc1 and boolean variable x1, and the observed variables are the corresponding pc2 and x2 of the other process.
The transitions of a module can be specified variablewise by means of definitions or transition-wise by guarded commands. Henceforth, primed variables X’ denote next-state variables. A definition is of the form X = f(Y, Z). Both the initializations and transitions can also be specified as guarded assignments. Each guarded command consists of a guarded formula and an assignment part. The guard is a boolean expression in the current controlled (local, global, and output) variables and current-state and next-state input variables. The assignment part is a list of equalities between a lefthand side next-state variable and a right hand side expression in both current-state and next-state variables.
Parametric modules allow the use of logical (stateindependent) and type parameterization in the definition of modules. Module mutex in Figure 1, for example, is parametric in the Boolean tval. Furthermore, modules in SAL can be combined by either synchronous composition ||, or asynchronous composition []. Two instances of the mutex module, for example, are conjoined synchronously to form a module called system in Figure 1. This combination also uses hiding and renaming. Output and global variables can be made local by the HIDE construct. In order to avoid name clashes, variables in a modulecan be renamedusing the RENAME construct.
Besides declaring new types, constants, or modules, SAL also includes constructs for stating module properties and abstractions between modules. CTL formulas are used, for example,in Figure 1 to state safety and liveness properties about the combined module system.
The form of composition in SAL supports a compositional analysis in the sense that any module properties expressed in linear-time temporal logic or in the more expressive universal fragment of CTL* are preserved through composition. A similar claim holds for asynchronous composition with respect to stuttering invariant properties where a stuttering step is one where the local and output variables of the module remain unchanged.
Because SAL is an environmentwhere theorem proving as well as model checking is available, absence of causal loops in synchronous systems is ensured by generating proof obligations, rather than by more restrictive syntactic methods as in other languages. Consider the following definitions:
X = IF A THEN NOT Y ELSE C ENDIF
Y = IF A THEN B ELSE X ENDIF
This pair of definitions is acceptable in SAL because we can prove that X is causally dependent on Y only when A is true, and vice-versa only when it is false—hence there is no causal loop. In general, causality checking generates proof obligations asserting that the conditions that can trigger a causal loop are unreachable.
0/5000
Từ: -
Sang: -
Kết quả (Việt) 1: [Sao chép]
Sao chép!
2 ngôn ngữ trung gian chung SALCơ phân tích chính thức bắt đầu từ một mô tả của vấn đề quan tâm thể hiện theo quan niệm của công cụ để được sử dụng. Xây dựng các mô tả này thường đòi hỏi công việc đáng kể: lần đầu tiên để làm lại tác phâm các đặc tả hệ thống từ biểu hiện bản xứ của nó trong C, Esterel, Java, SCR, UML, Verilog, hoặc bất cứ điều gì, vào ký hiệu của công cụ có liên quan, sau đó để trích xuất phần có liên quan đến phân tích ở bàn tay, và cuối cùng để giảm nó đến một hình thức mà các công cụ có thể xử lý. Nếu một công cụ thứ hai là để được sử dụng cho một phân tích khác nhau, sau đó một mô tả thứ hai của vấn đề phải được chuẩn bị sẵn sàng, với nỗ lực đáng kể duplicationof. Với nguồn ngôn ngữ và các công cụ, chúng tôi cần dịch giả. Tình trạng này tự nhiên cho thấy sử dụng một ngôn ngữ phổ biến trung gian, nơi những con số của công cụ cần thiết có thể được giảm để phiên dịch.Ngôn ngữ trung gian phải phục vụ như một phương tiện để đại diện cho nhà nước chuyển đổi ngữ nghĩa của một hệ thống được mô tả trong một ngôn ngữ nguồn chẳng hạn như Java hoặc Esterel. Nó cũng phải phục vụ như là một đại diện phổ biến cho các lái xe một số trở lại-kết thúc các công cụ như định lý provers và mô hình cờ. Một ngôn ngữ trung gian hữu ích để mô tả hệ thống đồng thời phải cố gắng để bảo tồn cấu trúc và ý nghĩa của đặc điểm kỹ thuật ban đầu trong khi hỗ trợ một phân tích mô-đun của hệ thống quá trình chuyển đổi.Vì những lý do, SAL trung gian ngôn ngữ là một ngôn ngữ khá phong phú. Trong phần tiếp theo, chúng tôi cung cấp cho một tổng quan về các tính năng chính của ngôn ngữ kiểu SAL, ngôn ngữ biểu hiện, ngôn ngữ mô-đun, và bối cảnh ngôn ngữ. Để một định nghĩa chính xác và ngữ nghĩa của ngôn ngữ SAL, bao gồm so sánh với các ngôn ngữ có liên quan để thể hiện các hệ thống đồng thời, hãy xem [31].Hệ thống loại SAL hỗ trợ các loại hình cơ bản như phép toán luận, giả, số nguyên và số nguyên subranges, Hồ sơ, mảng, và trừu tượng datatypes. Biểu hiện mạnh mẽ được gõ. Những biểu hiện bao gồm các hằng số, biến, các ứng dụng hoạt động Boolean, số học, và véc tơ bit (bit-vector là chỉ mảng của các phép toán luận), và mảng và hồ sơ lựa chọn và Cập Nhật. mutex: bối cảnh = bắt đầuPC: Loại = cố gắng, quan trọng, ngủmutex [tval:boolean]: mô-đun = bắt đầuĐầu vào pc2: PC, x 2: booleanSản lượng pc1: PC, x 1: booleanKHỞI TẠOĐÚNG--> pc1 = ngủ; x 1 = tvalQuá trình chuyển đổi pc1 = ngủ--> pc1' = cố gắng; x 1' = (x 2 = tval)[] pc1 = cố gắng và(pc2 = ngủ hoặc x 1 = (x 2 / = tval))--> pc1' = quan trọng[] pc1 = quan trọng--> pc1' = ngủ; x 1' = (x 2 = tval) kết thúcHệ thống: mô-đun = ẩn x 1, x 2(mutex [FALSE]|| Đổi tên pc2 đến pc1, x 2-x 1, pc1 đến pc2, x 1 đến x 2 mutex[TRUE])mutualExclusion: Hệ thống định lý |-AG (NOT(pc1=criticalVÀ pc2 = quan trọng))eventually1: Hệ thống bổ đề |-EF(pc1=critical)eventually2: bổ đềHệ thống |-EF(pc2=critical)KẾT THÚCHình 1. Loại trừ lẫn nhauCó điều kiện biểu hiện cũng là một phần của ngôn ngữ biểu hiện và xác định người sử dụng chức năng có thể cũng được giới thiệu.Một mô-đun là một đặc điểm kỹ thuật khép kín của một hệ thống chuyển đổi trong SAL. Thông thường, một số mô-đun được thu thập trong một bối cảnh. Bối cảnh cũng bao gồm các loại và hằng số tờ khai. Một mô-đun hệ thống chuyển tiếp bao gồm một loại nhà nước, một điều kiện khởi tạo loại nhà nước, và một mối quan hệ nhị phân chuyển tiếp một hình thức cụ thể về các loại nhà nước. Các loại nhà nước được xác định bởi bốn pairwise disjoint bộ biến đầu vào, đầu ra, toàn cầu và địa phương. Các đầu vào và toàn cầu biến là các biến quan sát của một mô-đun và đầu ra, toàn cầu, và biến địa phương là các yếu tố kiểm soát của các mô-đun. Nó là tốt pragmatics để đặt tên một mô-đun. Tên này có thể được sử dụng để lập chỉ mục các biến địa phương do đó họ không cần được đổi tên trong thành phần. Ngoài ra, các tính chất của các mô-đun có thể được lập chỉ mục trên tên cho tìm kiếm nhanh chóng.Hãy xem xét, ví dụ, SAL đặc điểm kỹ thuật của một biến thể của loại trừ lẫn nhau Peterson của thuật toán trong hình 1. Ở đây nhà nước của các mô-đun bao gồm các biến điều khiển tương ứng với chương trình truy cập pc1 và boolean biến x 1 của riêng mình, và quan sát biến là pc2 tương ứng và x 2 của quá trình khác.Quá trình chuyển đổi của một mô-đun có thể được xác định variablewise bằng phương tiện của định nghĩa hoặc transition-wise bằng lệnh bảo vệ. Từ đó, sơn lót biến X' biểu thị biến trạng thái tiếp theo. Một định nghĩa là dạng X = f (Y, Z). Initializations và quá trình chuyển đổi cũng có thể được xác định là bảo vệ bài tập. Mỗi lệnh bảo vệ bao gồm một công thức canh gác và một phần chuyển nhượng. Bảo vệ là một biểu thức boolean trong các hiện tại kiểm soát (địa phương, toàn cầu, và đầu ra) biến và biến đầu vào nhà nước hiện tại và tiếp theo-nhà nước. Phần chuyển nhượng là một danh sách các đẳng giữa một lefthand bên tiếp theo-nhà nước biến và một biểu hiện bên tay phải trong trạng thái hiện tại và tiếp theo-nhà nước biến.Tham số mô-đun cho phép sử dụng hợp lý (stateindependent) và gõ parameterization trong định nghĩa của mô-đun. Mô-đun mutex trong hình 1, ví dụ, là tham số trong Boolean tval. Hơn nữa, mô-đun trong SAL có thể được kết hợp bởi một trong hai thành phần đồng bộ ||, hoặc không đồng bộ thành phần []. Hai thể hiện của các mô-đun mutex, ví dụ, được dính đồng bộ để tạo thành một mô-đun được gọi là hệ thống trong hình 1. Sự kết hợp này cũng sử dụng ẩn và đổi tên. Sản lượng và biến toàn cầu có thể được thực hiện địa phương bằng cách xây dựng ẩn. Để tránh những xung đột tên, biến trong một modulecan là renamedusing xây dựng đổi tên.Bên cạnh việc tuyên bố loại mới, hằng số, mô-đun, SAL cũng bao gồm các cấu trúc cho nêu rõ đặc tính mô-đun và abstractions giữa mô-đun. CTL công thức được sử dụng, ví dụ, trong hình 1 nhà nước an toàn và liveness thuộc tính về hệ thống kết hợp mô-đun.Các hình thức của các thành phần trong SAL hỗ trợ phân tích sáng tác trong ý nghĩa rằng bất kỳ thuộc tính mô-đun được thể hiện trong thời gian tuyến tính thời gian logic hoặc trong các đoạn phổ quát hơn diễn cảm của CTL * được giữ lại thông qua thành phần. Một tuyên bố tương tự như giữ cho các thành phần không đồng bộ đối với nói lắp bất biến tính nơi một bước nói lắp là một trong những nơi địa phương và biến đầu ra của các mô-đun vẫn không thay đổi.Vì SAL là một chứng minh định lý environmentwhere cũng như mô hình kiểm tra có sẵn, không có quan hệ nhân quả vòng trong đồng bộ hệ thống được đảm bảo bằng cách tạo ra các nghĩa vụ chứng minh, thay vì bằng phương pháp cú pháp hạn chế như trong ngôn ngữ khác. Hãy xem xét những định nghĩa sau:X = NẾU MỘT Y SAU ĐÓ KHÔNG KHÁC C ENDIFY = NẾU MỘT KHÁC SAU ĐÓ B X ENDIFĐiều này đôi định nghĩa là chấp nhận được trong SAL bởi vì chúng tôi có thể chứng minh rằng X là nào phụ thuộc vào Y chỉ khi A là đúng, và vice-versa chỉ khi nó là sai-do đó có là không có vòng quan hệ nhân quả. Nói chung, quan hệ nhân quả kiểm tra tạo ra bằng chứng nghĩa vụ khẳng định rằng các điều kiện mà có thể gây ra một loop quan hệ nhân quả là không thể kết nối.
đang được dịch, vui lòng đợi..
Kết quả (Việt) 2:[Sao chép]
Sao chép!

2 Các SAL Common Intermediate Language
Cơ giới phân tích chính thức bắt đầu từ một mô tả của vấn đề quan tâm thể hiện trong ký hiệu của các công cụ được sử dụng. Xây dựng các mô tả này thường đòi hỏi công việc đáng kể: đầu tiên để viết lại các đặc điểm kỹ thuật hệ thống từ ngữ bản địa của nó trong C, Esterel, Java, SCR, UML, Verilog, hoặc bất cứ điều gì, vào ký hiệu của các công cụ liên quan, sau đó để trích xuất các phần đó là có liên quan đến việc phân tích ở bàn tay, và cuối cùng để giảm bớt nó thành một dạng công cụ này có thể xử lý. Nếu một công cụ thứ hai là để được làm việc cho một phân tích khác nhau, sau đó là một mô tả thứ hai của vấn đề phải được chuẩn bị, với sự nỗ lực duplicationof đáng kể. Với ngôn ngữ nguồn và các công cụ, chúng ta cần dịch. Tình trạng này một cách tự nhiên cho thấy việc sử dụng một ngôn ngữ trung gian phổ biến, nơi con số của các công cụ cần thiết có thể được giảm đến phiên dịch.
Các ngôn ngữ trung gian phải phục vụ như một phương tiện để biểu diễn ngữ nghĩa chuyển đổi trạng thái của một hệ thống được mô tả trong một ngôn ngữ nguồn như Java hay Esterel . Nó cũng phải phục vụ như là một biểu tượng chung cho lái xe một số công cụ back-end như provers lý, người kiểm tra mô hình. Một ngôn ngữ trung gian hữu ích để mô tả hệ thống đồng thời phải cố gắng giữ gìn cả các cấu trúc và ý nghĩa của các đặc điểm kỹ thuật ban đầu khi hỗ trợ một phân tích mô-đun của hệ thống chuyển đổi.
Đối với những lý do này, các ngôn ngữ trung gian SAL là một ngôn ngữ khá phong phú. Trong phần tiếp theo, chúng tôi cung cấp một cái nhìn tổng quan về các tính năng chính của ngôn ngữ loại SAL, ngôn ngữ biểu hiện, ngôn ngữ mô-đun, và ngôn ngữ ngữ cảnh. Đối với một định nghĩa chính xác và ngữ nghĩa của ngôn ngữ SAL, kể cả so sánh với ngôn ngữ liên quan để diễn tả hệ thống đồng thời, xem [31].
Các loại hệ thống của SAL hỗ trợ các loại cơ bản như toán luận, vô hướng, số nguyên và subranges số nguyên, hồ sơ, mảng, và kiểu dữ liệu trừu tượng. Biểu thức được đánh mạnh. Các biểu thức bao gồm các hằng, biến, ứng dụng của Boolean, số học, và các hoạt động bit-vector (bit-vectơ chỉ là mảng Boolean), và mảng và ghi lại lựa chọn và cập nhật. mutex: BỐI CẢNH = BEGIN
PC: TYPE = cố gắng, quan trọng, ngủ
mutex [tval: boolean]: MODULE = BEGIN
VÀO PC2: PC, x2: boolean
OUTPUT pc1: PC, x1: boolean
INITIALIZATION
TRUE -> pc1 = ngủ; x1 = tval
CHUYỂN pc1 = ngủ
-> pc1 '= cố gắng; x1 '= (x2 = tval)
[] = pc1 cố gắng VÀ
(PC2 = ngủ OR x1 = (x2 / = tval))
-> pc1 '= critical
[] pc1 = critical
-> pc1 '= ngủ; x1 '= (x2 = tval) END
hệ thống: MODULE = HIDE x1, x2
(mutex [FALSE]
|| RENAME PC2 TO pc1, x2 TO x1, pc1 TO PC2, x1 x2 TO mutex [TRUE])
mutualExclusion: Hệ thống Định lý | -
AG (NOT (pc1 = critical
và PC2 = critical))
eventually1: hệ thống bổ đề | - EF (pc1 = critical)
eventually2: Bổ đề
hệ thống | - EF (PC2 = critical)
END
Hình 1. Loại trừ lẫn nhau
biểu thức có điều kiện cũng là một phần của ngôn ngữ biểu hiện và chức năng người dùng định nghĩa cũng có thể được giới thiệu.
Một module là một đặc điểm kỹ thuật khép kín của một hệ thống chuyển tiếp trong SAL. Thông thường, một số mô-đun được thu thập trong một bối cảnh. Bối cảnh cũng bao gồm các loại tờ khai và liên tục. Một module hệ thống chuyển tiếp bao gồm tên kiểu nhà nước, một điều kiện khởi tạo vào loại trạng thái này, và một mối quan hệ chuyển đổi nhị phân của một hình thức cụ thể về các loại hình nhà nước. Các loại nhà nước được quy định bởi bốn bộ tách rời cặp đầu vào, đầu ra, toàn cầu, và các biến địa phương. Các đầu vào và các biến toàn cầu là các biến quan sát của một mô-đun và các đầu ra, toàn cầu, và các biến địa phương là các biến kiểm soát của các mô-đun. Nó là dụng pháp tốt để đặt tên cho một module. Tên này có thể được sử dụng để chỉ các biến địa phương để họ không cần phải được đổi tên trong thành phần. Ngoài ra, các tính chất của các mô-đun có thể được lập chỉ mục trên các tên để tra cứu nhanh chóng.
Xem xét, ví dụ, các đặc điểm kỹ thuật SAL của một biến thể của thuật toán loại trừ lẫn nhau của Peterson trong Hình 1. Ở đây, nhà nước của các mô-đun bao gồm các biến kiểm soát tương ứng riêng pc1 nó đếm chương trình và boolean biến x1, và các biến quan sát là PC2 tương ứng và x2 của quá trình khác.
Quá trình biến đổi của một mô-đun có thể được chỉ định variablewise bằng phương tiện của các định nghĩa hoặc chuyển khôn ngoan bằng cách ra lệnh canh gác. Từ đó về sau, sơn lót biểu thị biến tiếp theo trạng thái biến X '. Một định nghĩa có dạng X = f (Y, Z). Cả khởi tạo và chuyển tiếp cũng có thể được quy định như bài tập bảo vệ. Mỗi lệnh bảo vệ bao gồm một công thức bảo vệ và một phần chuyển nhượng. Bảo vệ là một biểu thức boolean trong kiểm soát (địa phương, toàn cầu, và đầu ra) biến và hiện tại, nhà nước và các biến đầu vào tiếp theo nhà nước hiện hành. Các phần chuyển nhượng là một danh sách các bất đẳng giữa một biến tiếp theo nhà nước ở phía bên trái và một biểu hiện bên tay phải trong các biến cả hiện tại-nhà nước và tiếp theo nhà nước.
modules Parametric cho phép sử dụng hợp lý (stateindependent) và kiểu tham số trong định nghĩa của mô-đun. Module mutex trong hình 1, ví dụ, là tham số trong tval Boolean. Hơn nữa, mô-đun trong SAL có thể được kết hợp bởi hai thành phần đồng bộ ||, hoặc thành phần không đồng bộ []. Hai trường hợp của module mutex, ví dụ, là dính liền đồng bộ để tạo thành một module gọi là hệ thống trong Hình 1. Sự kết hợp này cũng sử dụng ẩn và đổi tên. Đầu ra và các biến toàn cầu có thể được thực hiện tại địa phương bởi các cấu trúc hide. Để tránh xung đột tên, các biến trong một modulecan được renamedusing các cấu trúc RENAME.
Bên cạnh đó tuyên bố mới các loại, các hằng số, hoặc mô-đun, SAL cũng bao gồm các cấu trúc để nêu đặc tính mô-đun và trừu tượng hóa giữa các module. Công thức CTL được sử dụng, ví dụ, trong hình 1 để an toàn và tài sản nhà nước liveness về hệ thống mô-đun kết hợp.
Các hình thức của các thành phần trong SAL hỗ trợ một phân tích thành phần trong ý nghĩa rằng bất kỳ thuộc tính mô-đun hiện trong thời gian tuyến tính logic của thời gian hoặc trong fragment phổ quát biểu cảm hơn của CTL * được bảo tồn thông qua thành phần. Một tuyên bố tương tự như giữ cho các thành phần không đồng bộ đối với nói lắp thuộc tính bất biến nơi một bước nói lắp là một nơi mà các biến địa phương và đầu ra của các mô-đun vẫn không thay đổi.
Bởi vì SAL là một định lý environmentwhere minh cũng như mô hình kiểm tra có sẵn, sự vắng mặt của các vòng nhân quả trong các hệ thống đồng bộ được đảm bảo bằng cách tạo ra các nghĩa vụ chứng minh, chứ không phải bằng các phương pháp cú pháp chặt chẽ hơn như trong các ngôn ngữ khác. Hãy xem xét các định nghĩa sau:
X = IF THEN ELSE A KHÔNG Y C ENDIF
Y = IF A THEN ELSE B X ENDIF
Điều này đôi nghĩa là chấp nhận được trong SAL bởi vì chúng ta có thể chứng minh rằng X là nhân quả phụ thuộc vào Y chỉ khi A là đúng, và ngược lại chỉ khi nó là giả do đó không có vòng lặp nhân quả. Nói chung, kiểm tra nguyên nhân tạo ra nghĩa vụ chứng minh khẳng định rằng các điều kiện có thể kích hoạt một vòng lặp nhân quả là không thể truy cập.
đang được dịch, vui lòng đợi..
 
Các ngôn ngữ khác
Hỗ trợ công cụ dịch thuật: Albania, Amharic, Anh, Armenia, Azerbaijan, Ba Lan, Ba Tư, Bantu, Basque, Belarus, Bengal, Bosnia, Bulgaria, Bồ Đào Nha, Catalan, Cebuano, Chichewa, Corsi, Creole (Haiti), Croatia, Do Thái, Estonia, Filipino, Frisia, Gael Scotland, Galicia, George, Gujarat, Hausa, Hawaii, Hindi, Hmong, Hungary, Hy Lạp, Hà Lan, Hà Lan (Nam Phi), Hàn, Iceland, Igbo, Ireland, Java, Kannada, Kazakh, Khmer, Kinyarwanda, Klingon, Kurd, Kyrgyz, Latinh, Latvia, Litva, Luxembourg, Lào, Macedonia, Malagasy, Malayalam, Malta, Maori, Marathi, Myanmar, Mã Lai, Mông Cổ, Na Uy, Nepal, Nga, Nhật, Odia (Oriya), Pashto, Pháp, Phát hiện ngôn ngữ, Phần Lan, Punjab, Quốc tế ngữ, Rumani, Samoa, Serbia, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenia, Somali, Sunda, Swahili, Séc, Tajik, Tamil, Tatar, Telugu, Thái, Thổ Nhĩ Kỳ, Thụy Điển, Tiếng Indonesia, Tiếng Ý, Trung, Trung (Phồn thể), Turkmen, Tây Ban Nha, Ukraina, Urdu, Uyghur, Uzbek, Việt, Xứ Wales, Yiddish, Yoruba, Zulu, Đan Mạch, Đức, Ả Rập, dịch ngôn ngữ.

Copyright ©2024 I Love Translation. All reserved.

E-mail: