Insoftware development, there are various problems for which union types are a suitable solution. In \mathbf{C}, and in the earlier \mathrm{C}++ versions only untagged unions were available. \mathbf{C}++17 introduced ...
详细信息
Insoftware development, there are various problems for which union types are a suitable solution. In $\mathbf{C}$, and in the earlier $\mathrm{C}++$ versions only untagged unions were available. $\mathbf{C}++17$ intro...
详细信息
ISBN:
(数字)9798350386592
ISBN:
(纸本)9798350386608
Insoftware development, there are various problems for which union types are a suitable solution. In $\mathbf{C}$, and in the earlier $\mathrm{C}++$ versions only untagged unions were available. $\mathbf{C}++17$ introduced the standard library class std::variant as a tagged union type. A tagged union keeps track of the type of the last inserted object. Variants are safer, as they offer various compile-time and runtime mechanisms to guard against misuse. However, it is not impossible to make mistakes with them. In this paper, we surveyed seven large, open source projects, that use std::variant. The purpose of the survey was (1) to understand how $\mathrm{C}++$ projects are using tagged unions, (2) what programming errors can be made with them, and (3) in what way the application of static analysis tools could facilitate the creation of safer code. We observed that variants are used for a wide range of tasks, including network communications, giving alternative implementations to classes, or even in a mechanism reminiscent of inheritance. We learned that values are retrieved from variants in almost all various standard-provided manners except for exceptions. Based on our observations we specified and implemented an open source static analysis checker to detect one of the most critical variant-related problems occurring in $\mathrm{C}++$ programs.
Image generation using deep learning generative models has witnessed significant strides in various domains, particularly in scene and object generation. However, the complexities escalate when applied to facial image...
详细信息
ISBN:
(数字)9798350386592
ISBN:
(纸本)9798350386608
Image generation using deep learning generative models has witnessed significant strides in various domains, particularly in scene and object generation. However, the complexities escalate when applied to facial image generation, especially in healthcare scenarios where detailed and realistic depictions are crucial. This paper introduces a pioneering approach to generating lifelike faces with specific attributes, including age, hair color, and gender, leveraging the manipulable latent space of a Generative Adversarial Network (GAN). The proposed system not only holds promise for applications such as criminal identification and film production but also showcases practical implications in the healthcare domain. By offering a user-friendly interface for attribute input and face display, the system facilitates healthcare professionals in generating diverse patient avatars for medical training simulations. The implementation utilizes Python, PyTorch, and the CelebA dataset, with the training process conducted on Google Colab for computational efficiency. This work represents a novel intersection of advanced deep learning, human-computer interaction, and real-world healthcare applications, providing a holistic exploration of attribute-driven face synthesis in the medical field.
Static program analysis is a popular software technique performed by automated tools for verifying large scale software systems. It works without executing the program, just analyzing the source code and applying vari...
详细信息
In C/C++, test code often inuences the source code of the unit we want to test. During the test development process we often have to introduce new interfaces to replace existing dependencies, e.g. a supplementary sett...
详细信息
Concurrent programming with classical mutex/lock techniques does not scale well when reads are way more frequent than writes. In such situations the read-copy-update (RCU) locking pattern guarantees minimal overhead f...
详细信息
Resolving symbol references is an important part of many application areas from development environments to various static analyser tools, especially when it is used for code comprehension purposes. Different occurren...
详细信息
Concurrent programming with classical mutex/lock techniques does not scale well when reads are way more frequent than writes. Such situation happens in operating system kernels among other performance critical multith...
详细信息
Symbol reference has an important role in various areas of software technology. Some modern object-oriented languages use it for implementing function and operator overloading, linkers use it for connecting objects be...
详细信息
The high level optimizations are becoming more and more sophisticated, the importance of low level optimizations should not be underestimated. Due to the changes in the inner architecture of modern processors, some op...
详细信息
The high level optimizations are becoming more and more sophisticated, the importance of low level optimizations should not be underestimated. Due to the changes in the inner architecture of modern processors, some optimization techniques may become more or less effective. Existing techniques need, from time to time, to be reconsidered, and new techniques, targeting these modern architectures, may emerge. Due to the growing instruction pipeline of modern processors, recovering after branch mis-predictions is becoming more expensive, and so avoiding that is becoming more critical. In this paper we introduce a novel approach to branch elimination using conditional move operations, namely the CMOVcc instruction group. The inappropriate use of these instructions may result in sensible performance regression, but in many cases they outperform the sequence of a conditional jump and an unconditional move instruction. Our goal is to analyze the usage of CMOVcc in different contexts on modern processors, and based on these results, propose a technique to automatically decide whether the conditional move or the sequence of a conditional jump and an unconditional move should be performed in a given situation.
暂无评论