Перевод IT статьи «Безопасность интерфейса в многоязычном программном обеспечении» (Interface Safety in Multilingual Software — translation into Russian)
Ниже приведен образец перевода статьи «Безопасность интерфейса в многоязычном программном обеспечении». Оригинальная статья.
Most real software systems are multilingual; that is, they consist of components developed in different programming languages. Multilingual software systems are convenient in practice. Developers can reuse existing code modules, and can also mix and match strengths of different languages. As an example, imagine that a developer intends to perform data compression in Java. Instead of writing all the code for data compression from scratch, he can reuse the existing ZLib C library and write a thin interface between Java and C, via the Java Native Interface (JNI). In fact, this is exactly how Sun’s JDK implements the classes under java.util.zip. | Большинство реальных программных систем многоязычны, то есть они состоят из компонентов, разработанных на разных языках программирования. Многоязычные программные системы удобны на практике. Разработчики могут повторно использовать существующие программные модули, а также смешивать и задействовать сильные стороны разных языков. Например, представьте, что разработчик собирается осуществить сжатие данных на Java. Вместо того чтобы писать весь код для сжатия данных с нуля, он может использовать существующую библиотеку языка C ZLib и написать небольшой интерфейс между Java и C, используя Java Native Interface (JNI). На самом деле, JDK компании Sun именно так реализует классы под java.util.zip. |
| |
Although multilingual software systems are convenient for developers and ubiquitous in practice, it is difficult to write safe and reliable multilingual software.It usually requires programmers to carefully take into account the discrepancies between languages on issues such as language features, data layout, memory management, safety/security assumptions, and many others. As an example, Java has built-in support for exceptions and exception handling, while C does not. Therefore, when developers write software that consists of both Java and C code, the C code has to check for exceptions in every possible place where they may occur, and provides code to handle them. Failure to do so may result in silent memory corruption. As one can imagine, this is an extremely error-prone process. | Хотя многоязычные программные системы удобны для разработчиков и повсеместно используются на практике, сложно написать безопасное и надежное многоязычное программное обеспечение. При этом обычно разработчикам требуется принимать во внимание различия между языками в таких вопросах как возможности языка, структура данных, управление памятью, допущения по безопасности и многое другое. Например, в Java есть встроенная поддержка исключений и обработка исключений, в то время как в C их нет. Следовательно, когда разработчики пишут программное обеспечение, состоящее как из кода Java, так и из кода C, код C должен проверять на наличие исключений каждое место, где они могут возникнуть, и предоставлять код для их обработки. При невыполнении этого может произойти «тихое» повреждение данных в памяти. Как легко себе представить, это с крайне большой вероятностью приведет к возникновению ошибок. |
To address the safety and reliability issues in multilingual software, this project aims to
| Чтобы решить вопросы безопасности и надежности многоязычного программного обеспечения, настоящий проект нацелен на
|
Publications | Публикации |
|
|
Participants | Участники |
|
|