title: Ð Ð°Ð·ÑÐ°Ð±Ð¾ÑÐºÐ° Ð±Ð¸Ð±Ð»Ð¸Ð¾ÑÐµÐºÐ¸ Ð´Ð»Ñ Ð¶ÑÑÐ½Ð°Ð»Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑÐ¾ÑÑÐ¾ÑÐ½Ð¸Ñ Ð¾Ð±ÑÐµÐºÑÐ¾Ð² Ð½Ð° Ð¿Ð»Ð°ÑÑÐ¾ÑÐ¼Ðµ JVM
title: Ð²ÑÐ¿ÑÑÐºÐ½Ð°Ñ ÐºÐ²Ð°Ð»Ð¸ÑÐ¸ÐºÐ°ÑÐ¸Ð¾Ð½Ð½Ð°Ñ ÑÐ°Ð±Ð¾ÑÐ° Ð±Ð°ÐºÐ°Ð»Ð°Ð²ÑÐ°
titleType: Subtitle
title: Development of a library for logging the state of objects on the JVM platform
Creators: name: Ð Ð¾Ð¼Ð°Ð½Ð¾Ð², ÐÐ»ÐµÐºÑÐµÐ¹
Publisher: name: Ð¡Ð°Ð½ÐºÑ-ÐÐµÑÐµÑÐ±ÑÑÐ³ÑÐºÐ¸Ð¹ Ð¿Ð¾Ð»Ð¸ÑÐµÑÐ½Ð¸ÑÐµÑÐºÐ¸Ð¹ ÑÐ½Ð¸Ð²ÐµÑÑÐ¸ÑÐµÑ ÐÐµÑÑÐ° ÐÐµÐ»Ð¸ÐºÐ¾Ð³Ð¾
Year: 2021
Subjects: ÑÑÐ°Ð½ÑÑÐ¾ÑÐ¼Ð°ÑÐ¸Ñ ÐºÐ¾Ð´Ð°
Ð¶ÑÑÐ½Ð°Ð»Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ðµ
Ð»Ð¾Ð³Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ðµ
Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ðµ Ð¾Ð±ÑÐµÐºÑÐ¾Ð²
ÑÑÐ°ÑÐ¸ÑÐµÑÐºÐ¸Ð¹Ð°Ð½Ð°Ð»Ð¸Ð·
Ð°Ð½Ð°Ð»Ð¸Ð· Ð¿ÑÐµÐ²Ð´Ð¾Ð½Ð¸Ð¼Ð¾Ð²
code transformation
logging
changing objects
static analysis
alias analysis

description: ÐÐ°ÐºÐ°Ð»Ð°Ð²ÑÑÐºÐ°Ñ ÑÐ°Ð±Ð¾ÑÐ° ÑÐ°ÑÑÐ¼Ð°ÑÑÐ¸Ð²Ð°ÐµÑ ÑÐ°Ð·ÑÐ°Ð±Ð¾ÑÐºÑ Ð¸Ð½ÑÑÑÑÐ¼ÐµÐ½ÑÐ° Ð¶ÑÑÐ½Ð°Ð»Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑÐ¾ÑÑÐ¾ÑÐ½Ð¸Ñ Java Ð¾Ð±ÑÐµÐºÑÐ¾Ð². Ð ÐºÐ°ÑÐµÑÑÐ²Ðµ ÑÐ·ÑÐºÐ° ÑÐ°Ð·ÑÐ°Â­Ð±Ð¾ÑÐºÐ¸ ÑÐ°ÐºÐ¶Ðµ Ð²ÑÐ±ÑÐ°Ð½ ÑÐ·ÑÐº Ð¿ÑÐ¾Ð³ÑÐ°Ð¼Ð¼Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ Java. ÐÑÑÐ¾Ð´Ð½Ð°Ñ Ð·Ð°Ð´Ð°Â­ÑÐ° ÑÐ°Ð·Ð±Ð¸Ð²Ð°ÐµÑÑÑ Ð½Ð° Ð´Ð²Ðµ Ð¿Ð¾Ð´Ð·Ð°Ð´Ð°ÑÐ¸: Ð¾ÑÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ðµ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ ÑÐ¾ÑÑÐ¾ÑÐ½Ð¸Ñ Ð¾Ð±ÑÐµÐºÑÐ¾Ð² (ÑÑÐµÐºÐ¸Ð½Ð³) Ð¸ Ð»Ð¾Ð³Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ðµ. Ð ÐºÐ°ÑÐµÑÑÐ²Ðµ Ð¾ÑÐ½Ð¾Ð²Ð½Ð¾Ð³Ð¾ Ð¿Ð¾Ð´ÑÐ¾Ð´Ð° Ðº ÑÐµÑÐµÐ½Ð¸Ñ Ð·Ð°Ð´Ð°ÑÐ¸ ÑÑÐµÐºÐ¸Ð½Ð³Ð° Ð¸ÑÂ­Ð¿Ð¾Ð»ÑÐ·ÑÐµÑÑÑ ÑÑÐ°Ð½ÑÑÐ¾ÑÐ¼Ð°ÑÐ¸Ñ Ð¸ÑÑÐ¾Ð´Ð½Ð¾Ð³Ð¾ ÐºÐ¾Ð´Ð° Ð¿ÑÐ¾Ð³ÑÐ°Ð¼Ð¼Ñ, ÑÐ°Ðº ÐºÐ°Ðº ÑÑÐ¾ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÐµÑ Ð¾ÑÐ²Ð¾Ð±Ð¾Ð´Ð¸ÑÑ Ð¿Ð¾Ð»ÑÐ·Ð¾Ð²Ð°ÑÐµÐ»Ñ Ð¾Ñ Ð½Ð°Ð¿Ð¸ÑÐ°Ð½Ð¸Ñ ÐºÐ¾Ð´Ð° Ð´Ð»Ñ ÑÑÐµÐºÐ¸Ð½Ð³Ð°Ð²ÑÑÑÐ½ÑÑ, Ð° ÑÐ°ÐºÐ¶Ðµ ÑÐºÑÑÑÑ Ð¾Ñ Ð¿Ð¾Ð»ÑÐ·Ð¾Ð²Ð°ÑÐµÐ»Ñ Ð´ÐµÑÐ°Ð»Ð¸ ÑÐµÐ°Ð»Ð¸Ð·Ð°ÑÐ¸Ð¸ Ð¸Ð½ÑÑÑÑÂ­Ð¼ÐµÐ½ÑÐ°. ÐÐ»Ñ Ð¾Ð¿ÑÐ¸Ð¼Ð¸Ð·Ð°ÑÐ¸Ð¸ ÑÑÐµÐºÐ¸Ð½Ð³Ð° Ð¸ÑÐ¿Ð¾Ð»ÑÐ·ÑÐµÑÑÑ ÑÑÐ°ÑÐ¸ÑÐµÑÐºÐ¸Ð¹ Ð°Ð½Ð°Ð»Ð¸Ð·,ÑÐµÐ»ÑÑ ÐºÐ¾ÑÐ¾ÑÐ¾Ð³Ð¾ ÑÐ²Ð»ÑÐµÑÑÑ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ðµ Ð¿Ð¾Ð»ÐµÐ¹, ÐºÐ¾ÑÐ¾ÑÑÐµ Ð¼Ð¾Ð³ÑÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑÂ­ÑÑ Ð²Ð¾ Ð²ÑÐµÐ¼Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿ÑÐ¾Ð³ÑÐ°Ð¼Ð¼Ñ. ÐÐ°Ð½Ð½Ð°Ñ Ð¾Ð¿ÑÐ¸Ð¼Ð¸Ð·Ð°ÑÐ¸Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÂ­ÐµÑ Ð¾ÑÑÐ»ÐµÐ¶Ð¸Ð²Ð°ÑÑ ÑÐ¾Ð»ÑÐºÐ¾ ÑÐµ Ð¿Ð¾Ð»Ñ, ÐºÐ¾ÑÐ¾ÑÑÐµ Ð¼Ð¾Ð³ÑÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑÑÑ. ÐÐ¾Ð¼Ð¸Ð¼Ð¾ ÑÑÐ¾Ð³Ð¾, Ð´Ð»Ñ ÑÐ¾Ð³Ð¾, ÑÑÐ¾Ð±Ñ ÑÐ´ÐµÐ»Ð°ÑÑ ÑÐµÐ·ÑÐ»ÑÑÐ°Ñ ÑÑÐ°ÑÐ¸ÑÐµÑÐºÐ¾Ð³Ð¾ Ð°Ð½Ð°Ð»Ð¸Ð·Ð° Ð±Ð¾Ð»ÐµÐµ ÑÐ¾ÑÐ½ÑÐ¼, Ð±ÑÐ» ÑÐµÐ°Ð»Ð¸Ð·Ð¾Ð²Ð°Ð½ Ð°Ð»Ð³Ð¾ÑÐ¸ÑÐ¼ Ð°Ð½Ð°Ð»Ð¸Ð·Ð° Ð¿ÑÐµÐ²Ð´Ð¾Ð½Ð¸Ð¼Ð¾Ð² ÐÐ½Ð´ÐµÑÑÐµÐ½Ð°,ÐºÐ¾ÑÐ¾ÑÑÐ¹ Ð¿Ð¾Ð¼Ð¾Ð³Ð°ÐµÑ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÐµÐ¹ Ð² ÑÐ»ÑÑÐ°ÑÑ, ÐºÐ¾Ð³Ð´Ð° Ð¿Ð¾Ð»Ðµ Ð¾Ð±ÑÐµÐºÑÐ° Ð¼ÐµÐ½ÑÐµÑÑÑ Ð½Ðµ ÑÐµÑÐµÐ· ÑÑÑÐ»ÐºÑ Ð½Ð° ÑÐ°Ð¼Ð¾Ð³Ð¾ ÑÐµÐ±Ñ. ÐÐ»Ñ ÑÐµÐ°Ð»Ð¸Ð·Ð°ÑÐ¸Ð¸ Ð»Ð¾Ð³Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑÐ¸Ð¼ÐµÐ½ÑÐµÑÑÑ ÑÑÐ°Ð½Ð´Ð°ÑÑÐ½ÑÐ¹ Ð¼ÐµÑÐ°Ð½Ð¸Ð·Ð¼ Ð»Ð¾Ð³Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑÐ·ÑÐºÐ° Java. Ð Ð°Ð·ÑÐ°Ð±Ð¾ÑÐ°Ð½Ð½ÑÐ¹ Ð¸Ð½ÑÑÑÑÐ¼ÐµÐ½Ñ Ð±ÑÐ» Ð¿ÑÐ¾ÑÐµÑÑÐ¸ÑÐ¾Ð²Ð°Ð½, Ð° ÑÐ°ÐºÐ¶Ðµ Ð±ÑÐ»Ð¾ Ð¿ÑÐ¾Ð²ÐµÐ´ÐµÐ½Ð¾ Ð¸ÑÑÐ»ÐµÐ´Ð¾Ð²Ð°Ð½Ð¸Ðµ ÑÐ°Ð±Ð¾ÑÑ Ð¸Ð½ÑÑÑÑÐ¼ÐµÐ½ÑÐ° Ð½Ð° ÑÐµÐ°Ð»ÑÐ½Ð¾Ð¼ Ð¿ÑÐ¾ÐµÐºÑÐµ Ñ Ð´Ð°Ð»ÑÐ½ÐµÐ¹ÑÐ¸Ð¼ Ð°Ð½Ð°Ð»Ð¸Ð·Ð¾Ð¼ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð½ÑÑ ÑÐ°ÑÐ°ÐºÑÐµÑÐ¸ÑÑÐ¸Ðº.
description: The bachelorâs work considers the development of a tool for loggingstate for Java objects. The Java programming language was also chosen asthe development language. The original task is divided into two subtasks: tracking changes in the state of an object (tracking) and logging. As the main approach to solving the tracking problem, thetransformation of the program source code is used, since this allows you tohide the details of the instrument implementation from the user, and alsofree the user from writing the tracking code manually. Also, to optimizetracking, static analysis is used, the purpose of which is to identify fieldsthat can change during program execution. This optimization allows you to track only those fields that can change. In addition, in order to makethe result of static analysis more accurate, the Andersen alias analysisalgorithm was implemented, which helps to determine field changes incases where the objectâs field changes not through a reference to itself. To implement logging, the standard Java language logging mechanism isused.