The paper presents an approach to implementing traits functionality in the C# programming language through the use of Roslyn Source Generators, a compile-time metaprogramming tool introduced in .NET5. Traits, which are composable units of fine-grained reuse, can benefit the C# language by bringing a mechanism for behavior reuse in the context of single inheritance. The article describes the design and implementation of a source generator that allows to annotate classes with metadata attributes, automatically injecting the corresponding member definitions at compile time. To achieve better code generation performance at design time, Incremental Source Generators were used. The composition of trait members is described in detail, focusing on name conflict resolution and type safety by utilizing interfaces and the override mechanism. Defining non-public members in a context of a trait is also discussed and implemented, thus allowing for better code reusability. The article concludes that language-level features such as traits can be implemented in the C# language by using Roslyn Source Generators, thus demonstrating the potential of such an instrument and metaprogramming in general.
PL
Artykuł przedstawia podejście do implementacji funkcjonalności cech w języku programowania C# poprzez wykorzystanie Roslyn Source Generators, narzędzia do metaprogramowania w czasie kompilacji wprowadzonego w .NET5. Traity, które są komponowalnymi jednostkami drobnoziarnistego ponownego użycia, mogą przynieść korzyści językowi C# poprzez wprowadzenie mechanizmu ponownego użycia zachowaniaw kontekście pojedynczego dziedziczenia. W artykule opisano projekt i implementację generatora źródłowego, który umożliwia dodawanie adnotacjido klas za pomocą atrybutów metadanych, automatycznie wstrzykując odpowiednie definicje elementów członkowskich w czasie kompilacji. Aby osiągnąć lepszą wydajność generowania kodu w czasie projektowania, zastosowano przyrostowe generatory źródeł. Szczegółowo opisano skład członków cech, koncentrując się na rozwiązywaniu konfliktów nazw i bezpieczeństwie typów poprzez wykorzystanie interfejsów i mechanizmu zastępowania. Omówionoi zaimplementowano również definiowanie niepublicznych członków w kontekście cechy, co pozwala na lepsze ponowne wykorzystanie kodu. Artykuł podsumowuje, że funkcje na poziomie języka, takie jak cechy, można zaimplementować w języku C# za pomocą Roslyn Source Generators, demonstrującw ten sposób potencjał takiego narzędzia i ogólnie metaprogramowania.
This paper presents an open-sourceand lightweight, object-oriented fuzzy logic controller architecture designed to overcome key limitationsof popular platforms like MATLAB and LabVIEW. These traditional tools, while widely used, are closed-source and license-dependent, creatingbarriersto portability, system-level integration, and long-term flexibility. Thismodular framework breaks the controller into reusable components implementedas separate classes, all coordinated by a central controller class that manages the full inference cycle from input fuzzification to output defuzzification. This central controller can be easily customized for different control scenarios, as demonstrated here through validation on both single-input and multi-input cases. The results confirm that the architecture delivers reliable and consistent performance while scaling smoothly tohandle increased input complexity without redesigning core components. This approach offers a transparent, maintainable, and flexible alternative that empowers developerswith full control over their fuzzy logic implementations and supports integration ina variety of software and embedded environments.
PL
W artykule przedstawiono lekką, zorientowaną obiektowo architekturę kontrolera logiki rozmytej o otwartym kodzie źródłowym, zaprojektowaną w celu przezwyciężenia kluczowych ograniczeń popularnych platform, takich jak MATLAB i LabVIEW. Te tradycyjne narzędzia, choć szeroko stosowane, są zamknięte i zależne od licencji, tworząc bariery dla przenośności, integracji na poziomie systemu i długoterminowej elastyczności. Ta modułowa struktura dzieli kontroler na komponenty wielokrotnego użytku zaimplementowane jako oddzielne klasy, wszystkie koordynowaneprzez centralną klasę kontrolera, która zarządza pełnym cyklem wnioskowania od rozmywania danych wejściowych do rozmywania danych wyjściowych. Ten centralny kontroler można łatwo dostosować do różnych scenariuszy sterowania, co zademonstrowano tutaj poprzez walidację zarówno w przypadku pojedynczego wejścia, jak i wielu wejść. Wyniki potwierdzają, że architektura ta zapewnia niezawodną i spójną wydajność, jednocześnie płynnieskalując się w celu obsługi zwiększonej złożoności danych wejściowych bez konieczności przeprojektowywania podstawowych komponentów. Takie podejście oferuje przejrzystą, łatwą w utrzymaniu i elastyczną alternatywę, która zapewnia programistom pełną kontrolę nad implementacjami logiki rozmyteji wspiera integrację z różnymi środowiskami programistycznymi i wbudowanymi.
Imagine smart Artificial Intelligence (AI) agents that can act on their own, like digital teammates, needing our complete trust, especially in protecting our digital world. Just as early software was chaotic until ideas like ‘object-oriented programming’ (OOP) brought order, today’s powerful AI agents are growing incredibly complex and can be unpredictable. We’re building them so rapidly that clear rules for their trustworthy design are still emerging. Our paper proposes five core ‘building blocks’ or principles for designing these independent AI systems: making them explainable (understanding their decisions), adaptable (learning and evolving safely), collaborative (working together securely), resilient (defending against attacks), and ethical by design (acting responsibly). We examine how current AI frameworks like LangChain, AutoGen, and LlamaIndex are starting to implement these ideas, for instance, by integrating real-time threat data or enabling structured team interactions for cybersecurity. We also highlight the tough challenges that remain, such as fully explaining AI’s internal reasoning and ensuring its inherent robustness against clever manipulations. We conclude by emphasising that a collective effort from auditors, lawmakers, scientists, and industry leaders is crucial to establish these principles and build truly trustworthy autonomous AI.
4
Dostęp do pełnego tekstu na zewnętrznej witrynie WWW
The fourth industrial revolution introduces changes in traditional manufacturing systems and creates basis for a lot-size-one production. The complexity of production processes is significantly increased, alongside the need to enable efficient process simulation, execution, monitoring, real-time decision making and control. The main goal of our research is to define a methodological approach and a software solution in which the Model-Driven Software Development (MDSD) principles and Domain-Specific Modeling Languages (DSMLs) are used to create a framework for the formal description and automatic execution of production processes. In that way production process models are used as central artefacts to manage the production. In this paper, we propose a DSML which can be used to create production process models that are suitable for automatic generation of executable code. The generated code is used for automatic execution of production processes within a simulation or a shop floor.
Celem badawczym omówionym w artykule była weryfikacja - jakie środowisko programowania jest bardziej użyteczne w wybranym zadaniu transportowym. I stąd - chcąc ukazać trajektorie przemieszczających pojazdów na zadanych sieciach dróg, wybrano m.in. otwarte środowisko programistyczne, w odróżnieniu do uprzednio stosowanego – w badaniu podobnego zagadnienia – środowiska o odmiennej licencji. Realizacja postawionego zadania nastąpiła poprzez konsekwentne stosowanie paradygmatu programowania obiektowego.
EN
The article presents results of a study of possibilities to improve the implementation of a road vehicle tracking system previously developed at WTiE UTH Rad. Consequent application of the object-oriented programming paradigm is a key requirement of the task. An intermediate aim of the research is the assessment of available programming environments in the context of scientific problems in the field of transport.
6
Dostęp do pełnego tekstu na zewnętrznej witrynie WWW
Composition is amongst the major challenges faced in language engineering. Erdweg et al. offered a taxonomy for language composition. Mernik catalogued the use of the Language Definitional Framework LISA for composition sorts in that taxonomy. We produce a similar catalogue for embedded language engineering in Scala.
We demonstrate a modularity bug in the interface system of Java 8 on the practical example of a textbook design of a modular interface for vector spaces. Our example originates in our teaching of modular object-oriented design in Java 8 to undergraduate students, simply following standard programming practices and mathematical denitions. The bug shows up as a compilation error and should be xed with a language extension due to the importance of best practices (design delity).
W artykule omówiono główne tendencje rozwoju programów do geometrycznego projektowania dróg, m.in. zastosowanie programowania obiektowego, tworzenie modelu 3D uwzględniającego standardy BIM oraz szeroką automatyzację typowych prac (np. stosowanie Civil Cells).
EN
The paper presents the main trends in the development of road design software, inter alia, using object-oriented programming, creating 3D models according to BIM standards and automation of typical works (for example using Civil Cells).
Research and simulation are important phases of the process of implementing new technologies. Proper test stands and testing procedures may provide significant reduction in time consumption and overall cost of the project. In addition to a configurable physical structure, the test stand has to be controlled by a flexible and modular application providing both ease of modification and safety. In the article, the concept of object oriented programming in LabVIEW is described and the proposed architecture for an application for electric racing car drive system testing is presented.
W pracy opisano możliwość wykorzystania systemów informacji geograficznej do wspomagania złożonych algorytmów obliczeniowych. W pierwszej części przedstawiono charakterystykę algorytmów numerycznych pod względem złożoności obliczeniowej oraz środków potrzebnych do ich realizacji i sposobu przedstawienia wyników. Kolejna część niniejszego artykułu poświęcona jest systemom informacji geograficznej. Scharakteryzowano ich podstawowe własności oraz przedstawiono przykładowy system oparty na internetowej bazie danych OpenStreetMap. Kolejną część stanowi omówienie oprogramowania komunikującego się z systemem OpenStreetMap w celu uzyskania danych umożliwiających wykonywanie obliczeń rozpływu prądów błądzących w rzeczywistych układach trakcyjnych. Pracę kończą podsumowanie i wnioski.
EN
The paper discusses the possibility of using geographic information systems to support complex algorithms. The first part presents the characteristics of numerical algorithms in terms of computational complexity and resources required for their implementation and presentation of results. The next part of this article is devoted to geographic information systems. Their properties are discussed and an example of a system based on the online database is presented. Another part is a discussion of the software communicates with OpenStreetMap system in order to obtain data that allow calculations of stray currents propagation in real d.c. traction systems. The article ends with summary and conclusions.
11
Dostęp do pełnego tekstu na zewnętrznej witrynie WWW
The paper presents a method of data acquisition from a DAQ card using a direct memory access (DMA) and an asynchronous read of data buffer with the FIFO queue. The method can be used to acquire measurement data in Windows™ system when the required read frequency is higher than the system's clock frequency. The method was used in practice to measure high-speed pressure and position changes in a two cylinder hydraulic system with two-state fast switching valves.
PL
W artykule przedstawiono metodę odczytu danych z karty pomiarowej z wykorzystaniem bezpośredniego dostępu do pamięci (DMA) oraz asynchronicznego odczytu bufora danych i kolejki FIFO. Metoda ta ma zastosowanie do akwizycji danych pomiarowych w systemie Windows, jeżeli wymagana częstotliwość odczytu jest większa od częstotliwości zegara systemowego. Opracowaną metodę zastosowano do pomiaru szybkich zmian ciśnienia i położenia w układzie z dwoma siłownikami i dwustanowymi szybkimi zaworami przełączającymi.
Tematem referatu jest dynamiczna aplikacja internetowa, która umożliwia symulację obwodową silnika indukcyjnego trójfazowego z wykorzystaniem interfejsu przeglądarki WWW. Model matematyczny silnika jest zdefiniowany w tzw. osiach naturalnych i sformułowany na podstawie metody energetycznej Lagrange’a. Do implementacji modelu maszyny w aplikacji internetowej wybrano projekt typu Web Forms, który jest składnikiem środowiska programistycznego Microsoft Visual Studio. Kod programu napisano przy użyciu obiektowego (zarządzanego) języka programowania C# oraz składni HTML z wykorzystaniem zasobów biblioteki .NET Framework. Kod ten jest wykonywany pod nadzorem maszyny wirtualnej CLR (ang. Common Language Runtime). Program umożliwia symulację wybranych stanów dynamicznych i ustalonych pracy silnika indukcyjnego. Aplikacja ta jest jednym z komponentów Wirtualnego Laboratorium Maszyn Elektrycznych opracowywanego w Politechnice Gdańskiej.
EN
This paper presents Internet application for circuit simulation of induction motor using Web browser. Mathematical model of the motor is formulated by means of Lagrange’a energy method. The application was developed using Web Forms type project in Visual Studio software and is supported by the .NET Framework as integrated component of Windows. The application is implemented as component of Virtual Laboratory of Electric Machines
Praca dotyczy cyfrowego przetwarzania sygnałów o częstotliwościach radiowych. Opracowano i zrealizowano program komputerowy pozwalający na pracę z sygnałami radiowymi, tj. filtrację, demodulację oraz wzmocnienie. Zastosowanie komputera znacząco rozszerzyło możliwości systemu oraz zapewniło możliwość podglądu widma sygnału radiowego, na podstawie którego możliwa jest ocena rodzaju i jakości odbieranego sygnału. System posiada również możliwość sterowania zewnętrznym urządzeniem odbiorczym z wykorzystaniem transmisji szeregowej.
EN
This paper concerns digital signal processing for radio frequencies. Developed and implemented a computer program which allows to work with radio signals, such as filtration, demodulation and amplification. The use of the computer significantly expanded capabilities of the system and provided the opportunity to preview radio spectrum, on the basis of which it is possible to evaluate the nature and quality of the received signal. The system also has possible to control the external receiver device using serial transmission.
14
Dostęp do pełnego tekstu na zewnętrznej witrynie WWW
Artykuł dotyczy zastosowania dynamicznej aplikacji internetowej do symulacji obwodowej silnika indukcyjnego trójfazowego, wykorzystującej interfejs przeglądarki WWW. Model obwodowy silnika sformułowano w układzie osi naturalnych i ujęciu metody energetycznej Lagrange’a. Implementację modelu maszyny w aplikacji internetowej wykonano w projekcie typu Web Forms, który jest elementem środowiska Microsoft Visual Studio. Kod programu napisano przy użyciu obiektowego (zarządzanego) języka programowania C# oraz składni HTML z wykorzystaniem zasobów biblioteki .NET Framework. Kod ten jest wykonywany pod nadzorem maszyny wirtualnej CLR (ang. Common Language Runtime). Aplikacja umożliwia analizę wybranych stanów pracy silnika indukcyjnego (dynamicznych i ustalonych) w ramach Wirtualnego Laboratorium Maszyn Elektrycznych budowanego w Politechnice Gdańskiej.
EN
This paper presents the dynamic internet application for circuit simulation of induction motor Rusing Web browser. Circuit model of the motor is formulated using Lagrange’a energy method in terms of machine variables. The application was developed using Web Forms type project in Visual Studio software, and Has been supported by the .NET Framework as integrated component of Windows. This application enables a dynamic and steady-state analysis of induction motor, in the frame of the Virtual Laboratory of Electric Machines being developed at the Gdansk University of Technology.
15
Dostęp do pełnego tekstu na zewnętrznej witrynie WWW
Business modeling (generally system modeling) approach with object oriented technology plays very imported role in today business engineering, information system design, and so on. The history of it is practically very short. Early models were built with so called boxes and connecting them into a set. There were two categories of boxes: one named a black box and the other white box. The functionality of boxes named as black was not formally described or unknown. The name white box concerns boxes with functionality formally described or known. In 1956 Henryk Greniewski (University of Warsaw)1 presented the very first theoretical approach to the principle of systems and processes modeling introducing the concept of the relatively isolated system. Two years later, Jay W. Forrester of Harvard University (who earlier specialized in flight simulation and modeling) published results concerning of usage box technique to simulate behavior of industrial dynamics2. The second step was performed by the Swedish team (directed by Ivar Jacobson3 – information system design with prototype of object approach, for Ericson company) around 1965, and the third by the Norwegian team (authors of Simula 674 – extension of Algol 60, first simulation language proposing concepts of primitive classes and objects: Ole-Johan Dahl & Kristen Nygaard of Norwegian Computing Center). Next step in development of the object concepts was the first object oriented programming language Smalltalk5; it was the beginning of further object oriented programming languages like Java, C# and others. The languages like UML6 (Unified Modeling Language) providing options for modeling of business processes, being under continued elaboration, seem to be the latest development up to now.
PL
Modelowanie systemów z użyciem podejścia obiektowego odgrywa współcześnie istotną rolę w inżynierii zarządzania, projektowaniu systemów informatycznych itp. Historia modelowania systemów jest bardzo krótka. Wczesne modele były budowane z tak zwanych skrzynek łączonych w kompletny model systemu. Uwzględniano dwie kategorie skrzynek: nazywanych odpowiednio czarnymi albo białymi skrzynkami. Funkcjonalność czarnych skrzynek była formalnie nieokreślona (domyślna). Funkcjonalność białych skrzynek była formalnie opisana i znane było jej działanie. Pierwsze teoretyczne podejście do zasad modelowania systemów względnie odosobnionych (pierwowzór podejścia obiektowego) przedstawił Henryk Greniewski w 1956 roku. Dalszy rozwój tej idei pokazano w podejściu do projektowania systemu informacyjnego dla firmy Ericson (Szwecja) przez zespół Ivara Jacobsona około 1965 roku. Pierwsza implementacja zasad systemu względnie odosobnionego do programowania komputerów została zrealizowana w języku symulacji Simula 67. Język Smalltalk (1976) był przełomowy w sformułowaniu programowania obiektowego. Graficzny język obiektowy – UML – jest komputerowo zorientowanym narzędziem do modelowania systemów i procesów, stanowiącym rozwinięcie pierwotnych idei systemu względnie odosobnionego.
W artykule zaprezentowano technologię rejestrowania dokładnych pomiarów RTK w czasie rzeczywistym z częstotliwością pozycjonowania większą niż 1 sekunda. Przedstawiono aplikację stworzoną specjalnie do tego celu, podstawowe algorytmy aplikacji oraz szereg rozwiązań, które umożliwiły zastosowanie opracowanej technologii do praktyki geodezyjnej. Poniższe opracowanie zawiera również syntetyczną charakterystykę środowiska programistycznego Delphi, opis urządzeń wykorzystanych w opracowanej technologii RTK oraz ich konfigurację. Na koniec poruszono również problematykę transmisji danych przy pomocy konwerterów RS232 - USB wraz z proponowanym jego rozwiązaniem.
EN
This paper presents the technology of accurate and reliable RTK positioning with more than one second recording interval. It contains description of an application created specifically for this purpose, the basic algorithms and a number of solutions, which enabled the use of the developed technology in geodetic practice. This paper also contains the synthetic characteristics of Delphi programming environment, and description of the equipment used within developed RTK technology and its configuration. At the end, data transmission by means of RS232-USB converters between a notebook and GNSS receivers was characterized together with the solution of the problem.
W artykule przedstawiono propozycję wykorzystania programowania obiektowego w języku Java. Umożliwia on wykonanie modelu elektronicznego oprzyrządowania wybranego skrzyżowania drogowego. Model skrzyżowania został podzielony na pojedyncze struktury w celu odseparowania podobnych klas obiektów od siebie oraz w celu zwiększenia uniwersalności i przejrzystości kodu programu. Wykorzystanie języka Java pozwala na realizację wybranych tematów zajęć dydaktycznych bez potrzeby korzystania z licencjonowanych programów specjalistycznych.
EN
This paper proposes the use of object-oriented programming environment in Java to create a simulation program. It allows the preparation of a model of electronic instrumentation selected cross-road. Cross-road model is divided into objects to separate from each other similar classes of objects in order to improve the flexibility and transparency of the program code. The use software writer in the Java language allows for the implementation of selected topics of classes without then need for specialized licensed software.
W artykule przedstawiono komputerową wizualizację modelu maszyny magnetoelektrycznej z wykorzystaniem techniki programowania obiektowego. Opisano opracowany diagram klas modelu obiektowego maszyny elektrycznej. Wykorzystując opracowany model obiektowy zrealizowano proces dyskretyzacji trójwymiarowego modelu silnika magnetoelektrycznego z uwzględnieniem połączeń czołowych. Pokazano komputerową wizualizację modelu maszyny magnetoelektrycznej
EN
In the paper the computer visualization of model of permanent magnet machine using object-oriented programming is presented. The elaborated diagram class of model of electrical machine is described. The descretization process of three dimensional model of permanent magnet machine with end-tums has been realized using elaborated diagram. The visualization of the model has been presented using computer graphics.
W artykule przedstawiono sposoby analizy sygnałów pomiarowych w pakietach programowych opartych na programowaniu obiektowym, które służą do symulacji procesów pomiarowych takie jak Dasylab oraz Multisim firmy National Instruments. Scharakteryzowano możliwości programów w zakresie budowania schematów przepływu danych pomiarowych i analizy tych danych pod kątem ich wykorzystania w pomiarach grubości warstw wierzchnich. W dalszej części przedstawiono przykładowe układy pomiarowe zbudowane w tych programach. Przybliżono programowe możliwości analizy dokładności wbudowane w prezentowane programy symulacyjne.
EN
Article presents methods of analysis of measurement signals in software packages based on object-oriented software, which are used to simulate measuring processes such as DasyLab and Multisim of the firm National Instruments. It was characterized the possibility of building programs in field of measurement data flow diagrams and analysis of these data in terms of their use in measuring thickness of top layers. The next part of the article gives examples of measurement systems built in these programs. It was brought closer the question of software possibilities of accuracy built into presented simulation programs.
W artykule zaprezentowano doświadczenia autorów w modelowaniu układów elektromechanicznych. Do przeprowadzania tych prac zostały opracowane autorskie aplikacje. Dzięki odpowiedniemu projektowi w oparciu o wykorzystanie techniki programowania obiektowego udało się w łatwy sposób przystosowywać ją do różnych wariantów obliczeń. Na jej bazie zbudowano specjalizowane narzędzia do obliczeń symulacyjnych napędów grupowych i do estymacji parametrów modelu matematycznego badanego obiektu. Pokazano też opis dedykowanego systemu do estymacji parametrów wraz z jego sieciowym rozszerzeniem.
EN
The paper presents the authors' experiences in modeling electromechanical systems. To carry out this work the original applications were developed. The project of application, based on object-oriented programming techniques, has allowed in an easy way adapting it to different variants of calculations and building on its basis the extended, specialized tools for numerical simulations of the group of drives and estimation of the object mathematical model parameters. The authors suggest that the choice of simulation software should satisfy the basic criterion - it should comply with standards. Not all tools used currently meet this criterion. With this approach it will be easy to prevent a situation where the new version of the tool will not work with source files developed in the previous versions. The second recommendation is separation of the code responsible for calculating from the code responsible for user's interaction, so that you can modify the application interface (as shown in Fig. 1). The paper presents also description of a dedicated system for parameter estimation and its network extension. The network version of this application can perform calculations in a flexible way by making use of any number of available computers.
JavaScript jest wyłączony w Twojej przeglądarce internetowej. Włącz go, a następnie odśwież stronę, aby móc w pełni z niej korzystać.