Tamás Szabó

dblp:55/6968 · DBLP profile ↗
← Back
20ranked-venue papers
11as first author
4since 2021 · last 2023
—ORCID · conflict

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 10 · 5 first-author · 4 since 2021Artificial intelligence and machine learning · 5 · 5 first-authorGraphics, computer vision, multimedia, augmented reality and games · 2 · 2 first-authorDatabases, data management, data science and information retrieval · 1Human-computer interaction and ubiquitous computing · 1Theory of computation · 1Applied, interdisciplinary, general and emerging computing · 1
YearPublicationVenuePosition
2023 Incrementalizing Production CodeQL Analyses
abstract
Instead of repeatedly re-analyzing from scratch, an incremental static analysis only analyzes a codebase once completely, and then it updates the previous results based on the code changes. While this sounds promising to achieve speed-ups, the reality is that sophisticated static analyses typically employ features that can ruin incremental performance, such as inter-procedurality or context-sensitivity. In this study, we set out to explore whether incrementalization can help to achieve speed-ups for production CodeQL analyses that provide automated feedback on pull requests on GitHub. We first empirically validate the idea by measuring the potential for reuse on real-world codebases, and then we create a prototype incremental solver for CodeQL that exploits incrementality. We report on experimental results showing that we can indeed achieve update times proportional to the size of the code change, and we also discuss the limitations of our prototype.
Tamás Szabó
ESEC/SIGSOFT FSE1
2022 Incremental Processing of Structured Data in Datalog
abstract
Incremental computations react to input changes by updating their outputs. Compared to a non-incremental rerun, incremental computations can provide order-of-magnitude speedups, since often small input changes trigger small output changes. One popular means for implementing incremental computations is to encode the computation in Datalog, for which efficient incremental solvers exist. However, Datalog is very restrictive in terms of the data types it can process: Atomic data organized in relations. While structured tree and graph-shaped data can be encoded in relations, a naive encoding inhibits incrementality. In this paper, we present an encoding of structured data in Datalog that supports efficient incrementality such that small input changes are expressible. We explain how to efficiently implement and integrate this encoding into an existing incremental Datalog engine, and we show how tree diffing algorithms can be used to change the encoded data.
André Pacak, Tamás Szabó, Sebastian Erdweg
GPCE2
2021 Concise, type-safe, and efficient structural diffing
abstract
A structural diffing algorithm compares two pieces of tree-shaped data and computes their difference. Existing structural diffing algorithms either produce concise patches or ensure type safety, but never both. We present a new structural diffing algorithm called truediff that achieves both properties by treating subtrees as mutable, yet linearly typed resources. Mutation is required to derive concise patches that only mention changed nodes, but, in contrast to prior work, truediff guarantees all intermediate trees are well-typed. We formalize type safety, prove truediff has linear run time, and evaluate its performance and the conciseness of the derived patches empirically for real-world Python documents. While truediff ensures type safety, the size of its patches is on par with Gumtree, a popular untyped diffing implementation. Regardless, truediff outperforms Gumtree and a typed diffing implementation by an order of magnitude.
Sebastian Erdweg, Tamás Szabó, André Pacak
PLDI2
2021 Incremental whole-program analysis in Datalog with lattices
abstract
Incremental static analyses provide up-to-date analysis results in time proportional to the size of a code change, not the entire code base. This promises fast feedback to programmers in IDEs and when checking in commits. However, existing incremental analysis frameworks fail to deliver on this promise for whole-program lattice-based data-flow analyses. In particular, prior Datalog-based frameworks yield good incremental performance only for intra-procedural analyses.
Tamás Szabó, Sebastian Erdweg, Gábor Bergmann
PLDI1
2020 Scirpy: a Scanpy extension for analyzing single-cell T-cell receptor-sequencing data
abstract
SUMMARY: Advances in single-cell technologies have enabled the investigation of T-cell phenotypes and repertoires at unprecedented resolution and scale. Bioinformatic methods for the efficient analysis of these large-scale datasets are instrumental for advancing our understanding of adaptive immune responses. However, while well-established solutions are accessible for the processing of single-cell transcriptomes, no streamlined pipelines are available for the comprehensive characterization of T-cell receptors. Here, we propose single-cell immune repertoires in Python (Scirpy), a scalable Python toolkit that provides simplified access to the analysis and visualization of immune repertoires from single cells and seamless integration with transcriptomic data. AVAILABILITY AND IMPLEMENTATION: Scirpy source code and documentation are available at https://github.com/icbi-lab/scirpy. SUPPLEMENTARY INFORMATION: Supplementary data are available at Bioinformatics online.
Gregor Sturm, Tamás Szabó, Georgios Fotakis, Marlene Haider, Dietmar Rieder, Zlatko Trajanoski, Francesca Finotello
Bioinform.2
2020 A systematic approach to deriving incremental type checkers
abstract
Static typing can guide programmers if feedback is immediate. Therefore, all major IDEs incrementalize type checking in some way. However, prior approaches to incremental type checking are often specialized and hard to transfer to new type systems. In this paper, we propose a systematic approach for deriving incremental type checkers from textbook-style type system specifications. Our approach is based on compiling inference rules to Datalog, a carefully limited logic programming language for which incremental solvers exist. The key contribution of this paper is to discover an encoding of the infinite typing relation as a finite Datalog relation in a way that yields efficient incremental updates. We implemented the compiler as part of a type system DSL and show that it supports simple types, some local type inference, operator overloading, universal types, and iso-recursive types.
André Pacak, Sebastian Erdweg, Tamás Szabó
Proc. ACM Program. Lang.3
2019 Lessons learned from developing mbeddr: a case study in language engineering with MPS
Markus Völter, Bernd Kolb, Tamás Szabó, Daniel Ratiu, Arie van Deursen
Softw. Syst. Model.3
2018 Incrementalizing lattice-based program analyses in Datalog
abstract
Program analyses detect errors in code, but when code changes frequently as in an IDE, repeated re-analysis from-scratch is unnecessary: It leads to poor performance unless we give up on precision and recall. Incremental program analysis promises to deliver fast feedback without giving up on precision or recall by deriving a new analysis result from the previous one. However, Datalog and other existing frameworks for incremental program analysis are limited in expressive power: They only support the powerset lattice as representation of analysis results, whereas many practically relevant analyses require custom lattices and aggregation over lattice values. To this end, we present a novel algorithm called DRedL that supports incremental maintenance of recursive lattice-value aggregation in Datalog. The key insight of DRedL is to dynamically recognize increasing replacements of old lattice values by new ones, which allows us to avoid the expensive deletion of the old value. We integrate DRedL into the analysis framework IncA and use IncA to realize incremental implementations of strong-update points-to analysis and string analysis for Java. As our performance evaluation demonstrates, both analyses react to code changes within milliseconds.
Tamás Szabó, Gábor Bergmann, Sebastian Erdweg, Markus Völter
Proc. ACM Program. Lang.1
2016 An extensible framework for variable-precision data-flow analyses in MPS
abstract
Data-flow analyses are used as part of many software engineering tasks: they are the foundations of program under- standing, refactorings and optimized code generation. Similar to general-purpose languages (GPLs), state-of-the-art domain-specific languages (DSLs) also require sophisticated data-flow analyses. However, as a consequence of the different economies of DSL development and their typically relatively fast evolution, the effort for developing and evolving such analyses must be lowered compared to GPLs. This tension can be resolved with dedicated support for data-flow analyses in language workbenches.
Tamás Szabó, Simon Alperovich, Markus Völter, Sebastian Erdweg
ASE1
2016 IncA: a DSL for the definition of incremental program analyses
abstract
Program analyses support software developers, for example, through error detection, code-quality assurance, and by enabling compiler optimizations and refactorings. To provide real-time feedback to developers within IDEs, an analysis must run efficiently even if the analyzed code base is large.
Tamás Szabó, Sebastian Erdweg, Markus Völter
ASE1
2016 Efficient development of consistent projectional editors using grammar cells
Markus Völter, Tamás Szabó, Sascha Lisson, Bernd Kolb, Sebastian Erdweg, Thorsten Berger
SLE2
2012 Incremental Pattern Matching for the Efficient Computation of Transitive Closure
Gábor Bergmann, István Ráth, Tamás Szabó, Paolo Torrini, Dániel Varró
ICGT3
2011 Parallel Saturation Based Model Checking
abstract
Formal verification is becoming a fundamental step of safety-critical and model-based software development. As part of the verification process, model checking is one of the current advanced techniques to analyze the behavior of a system. In this paper, we examine an existing parallel model checking algorithm and we propose improvements to eliminate some computational bottlenecks. Our measurements show that the resulting new algorithm has better scalability and performance than both the former parallel approach and the sequential algorithm.
András Vörös 0001, Tamás Szabó, Attila Jámbor, Dániel Darvas, Ákos Horváth 0001, Tamás Bartha
ISPDC2
2007 Kernel CMAC With Improved Capability
abstract
The cerebellar model articulation controller (CMAC) has some attractive features, namely fast learning capability and the possibility of efficient digital hardware implementation. Although CMAC was proposed many years ago, several open questions have been left even for today. The most important ones are about its modeling and generalization capabilities. The limits of its modeling capability were addressed in the literature, and recently, certain questions of its generalization property were also investigated. This paper deals with both the modeling and the generalization properties of CMAC. First, a new interpolation model is introduced. Then, a detailed analysis of the generalization error is given, and an analytical expression of this error for some special cases is presented. It is shown that this generalization error can be rather significant, and a simple regularized training algorithm to reduce this error is proposed. The results related to the modeling capability show that there are differences between the one-dimensional (1-D) and the multidimensional versions of CMAC. This paper discusses the reasons of this difference and suggests a new kernel-based interpretation of CMAC. The kernel interpretation gives a unified framework. Applying this approach, both the 1-D and the multidimensional CMACs can be constructed with similar modeling capability. Finally, this paper shows that the regularized training algorithm can be applied for the kernel interpretations too, which results in a network with significantly improved approximation capabilities.
Gábor Horváth 0001, Tamás Szabó
IEEE Trans. Syst. Man Cybern. Part B2
2004 An Efficient Hardware Implementation of Feed-Forward Neural Networks
Tamás Szabó, Gábor Horváth 0001
Appl. Intell.1
2001 An Efficient Hardware Implementation of Feed-Forward Neural Networks
Tamás Szabó, Gábor Horváth 0001
IEA/AIE1
2000 A Full-Parallel Digital Implementation for Pre-Trained NNs
abstract
In many applications the most significant advantages of neural networks come mainly from their parallel architectures ensuring rather high operation speed. The difficulties of parallel digital hardware implementation arise mostly from the high complexity of the parallel many-multiplier structure. This paper suggests a new bit-serial/parallel neural network implementation method for pre-trained networks. The method makes possible significant hardware cost savings. The proposed approach-which is based on the results of a previously suggested method for efficient implementation of digital filters-uses bit-serial distributed arithmetic. The efficient implementation of a matrix-vector multiplier is based on an optimization algorithm which utilizes the advantages of CSD (canonic signed digit) encoding and bit-level pattern coincidences. The resulting architecture performs full-precision computation and allows high-speed bit-level pipeline operation. The proposed approach seems to be a promising one for FPGA and ASIC realization of pre-trained neural networks and can be integrated into automatic neural network design environments. However, these implementation methods can be useful in many other fields of digital signal processing.
Tamás Szabó, Lörinc Antoni, Gábor Horváth 0001, Béla Fehér
IJCNN (2)1
2000 Improving the Generalization Capability of the Binary CMAC
abstract
Deals with some important questions of the binary CMAC neural networks. CMAC-which belongs to the family of feed-forward networks with a single linear trainable layer-has some attractive features. The most important ones are its extremely fast learning capability and the special architecture that allows effective digital hardware implementation. Although the CMAC architecture was proposed in the middle of the seventies quite a lot open questions have been left even for today. Among them the most important ones are its modeling and generalization capabilities. While some essential questions of its modeling capability were addressed in the literature no detailed analysis of its generalization properties can be found. This paper shows that the CMAC may have significant generalization error, even in one-dimensional case, where the network can learn any training data set exactly. The paper shows that this generalization error is caused mainly by the training rule of the network. It derives a general expression of the generalization error and proposes a modified training algorithm that helps to reduce this error significantly.
Tamás Szabó, Gábor Horváth 0001
IJCNN (3)1
1998 Neural network implementation using distributed arithmetic
abstract
Deals with the direct hardware implementation of trained neural networks and suggests a matrix-vector multiplier synthesis method which makes possible very efficient hardware realization. The full parallel, bit-serial architecture can be efficiently used for FPGA and ASIC implementations. The new neural network realization approach can be integrated into automatic neural design environments. The algorithm is based on bit-level optimization and signal flow graph reduction/merging. The new synthesis approach results in significant hardware cost saving and increases the operating speed by decreasing the average fan-out which allows higher clock rate. This result is achieved without any precision loss during the computation.
Tamás Szabó, Béla Fehér, Gábor Horváth 0001
KES (3)1
1997 A roundoff error analysis of the Oja's subspace rule
abstract
This paper deals with the effects of finite precision data representation and arithmetic in principal component analysis (PCA) networks. PCA or Karhunen Loeve transform (KLT) is a statistical method that determines an optimal linear transformation of input vectors of a stationary stochastic process. The PCA networks are single layer linear neural networks that use some versions of Oja's (1989) learning rule. The paper concentrates on the errors which will arise during learning if fixed point data representation and arithmetic are used. It gives analytical results based on the additive noise model of quantization. In the analysis all three components of the finite precision effects are considered: (i) the error due to the input data quantization, (ii) the error caused by finite precision representation of the weights of the network, and (iii) the effects of the finite precision arithmetic. The results can be used directly to determine the required word-lengths for special hardware implementation of the neural net.
Tamás Szabó, Gábor Horváth 0001
ICASSP1