Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Huiqing Li

dblp:06/1167 · DBLP profile ↗
← Back
16ranked-venue papers
10as first author
0since 2021 · last 2017
0000-0003-2559-0804ORCID · corroborated

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

Software engineering, systems software and programming languages · 12 · 10 first-authorArtificial intelligence and machine learning · 3Systems, architecture and hardware · 1Databases, data management, data science and information retrieval · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Artificial intelligence
1 paper
Learning theory · 75% Image recognition and object detection · 25%
Software engineering, system software, and programming languages
2 papers
Software maintenance and evolution · 54% Runtime systems and virtual machines · 46%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Distributed systems · 100%
Databases, data mining, and information retrieval
1 paper
Data mining · 100%
Theoretical computer science
1 paper
Mathematical optimization · 100%

Topics — the 14 heaviest of 16, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Distributed systems › distributed programming
actor model
0.312017
Scaling Reliably: Improving the Scalability of the Erlang Distributed Actor Platform · ACM Trans. Program. Lang. Syst. 2017
Distributed systems › distributed system dependability
reliable distributed systems
0.312017
Scaling Reliably: Improving the Scalability of the Erlang Distributed Actor Platform · ACM Trans. Program. Lang. Syst. 2017
Data mining
clustering
0.212015
Subspace Clustering Using Log-determinant Rank Approximation · KDD 2015
Data mining › clustering › high-dimensional clustering
subspace clustering
0.212015
Subspace Clustering Using Log-determinant Rank Approximation · KDD 2015
Mathematical optimization › continuous optimization › matrix optimization
low-rank optimization
0.212015
Subspace Clustering Using Log-determinant Rank Approximation · KDD 2015
Mathematical optimization
nonconvex optimization
0.212015
Subspace Clustering Using Log-determinant Rank Approximation · KDD 2015
Computer vision › Image recognition and object detection
image classification
0.212014
A Minimax Framework for Classification with Applications to Images and High Dimensional Data · IEEE Trans. Pattern Anal. Mach. Intell. 2014
Machine learning › Learning theory
minimax analysis
0.212014
A Minimax Framework for Classification with Applications to Images and High Dimensional Data · IEEE Trans. Pattern Anal. Mach. Intell. 2014
Machine learning › Learning theory › classification › classification theory
minimax classification
0.212014
A Minimax Framework for Classification with Applications to Images and High Dimensional Data · IEEE Trans. Pattern Anal. Mach. Intell. 2014
Machine learning › Learning theory › classification
multiclass classification
0.212014
A Minimax Framework for Classification with Applications to Images and High Dimensional Data · IEEE Trans. Pattern Anal. Mach. Intell. 2014
Software maintenance and evolution › software reengineering › software modernization › software migration
API migration
0.112012
Automated API migration in a user-extensible refactoring tool for Erlang programs · ASE 2012
Software maintenance and evolution
refactoring
0.112012
Automated API migration in a user-extensible refactoring tool for Erlang programs · ASE 2012
Data mining › clustering › image clustering
face clustering
0.112015
Subspace Clustering Using Log-determinant Rank Approximation · KDD 2015
Software maintenance and evolution › refactoring
refactoring tools
0.012012
Automated API migration in a user-extensible refactoring tool for Erlang programs · ASE 2012

Methods — techniques the papers use, named apart from their topics

partitioning · 0.6chaos monkey testing · 0.6low-rank representation · 0.4log-determinant rank approximation · 0.4augmented lagrangian multipliers · 0.2augmented lagrangian multiplier · 0.2ridge regression · 0.2regression model · 0.2lasso · 0.2kernel methods · 0.2elastic net · 0.2template-based transformation · 0.1rule-based transformation · 0.1
YearPublicationVenuePosition
2017 Scaling Reliably: Improving the Scalability of the Erlang Distributed Actor Platform
abstract
Distributed actor languages are an effective means of constructing scalable reliable systems, and the Erlang programming language has a well-established and influential model. While the Erlang model conceptually provides reliable scalability, it has some inherent scalability limits and these force developers to depart from the model at scale. This article establishes the scalability limits of Erlang systems and reports the work of the EU RELEASE project to improve the scalability and understandability of the Erlang reliable distributed actor model. We systematically study the scalability limits of Erlang and then address the issues at the virtual machine, language, and tool levels. More specifically: (1) We have evolved the Erlang virtual machine so that it can work effectively in large-scale single-host multicore and NUMA architectures. We have made important changes and architectural improvements to the widely used Erlang/OTP release. (2) We have designed and implemented Scalable Distributed (SD) Erlang libraries to address language-level scalability issues and provided and validated a set of semantics for the new language constructs. (3) To make large Erlang systems easier to deploy, monitor, and debug, we have developed and made open source releases of five complementary tools, some specific to SD Erlang. Throughout the article we use two case studies to investigate the capabilities of our new technologies and tools: a distributed hash table based Orbit calculation and Ant Colony Optimisation (ACO). Chaos Monkey experiments show that two versions of ACO survive random process failure and hence that SD Erlang preserves the Erlang reliability model. While we report measurements on a range of NUMA and cluster architectures, the key scalability experiments are conducted on the Athos cluster with 256 hosts (6,144 cores). Even for programs with no global recovery data to maintain, SD Erlang partitions the network to reduce network traffic and hence improves performance of the Orbit and ACO benchmarks above 80 hosts. ACO measurements show that maintaining global recovery data dramatically limits scalability; however, scalability is recovered by partitioning the recovery data. We exceed the established scalability limits of distributed Erlang, and do not reach the limits of SD Erlang for these benchmarks at this scale (256 hosts, 6,144 cores).
Philip W. Trinder, Natalia Chechina, Nikolaos S. Papaspyrou, Konstantinos Sagonas, Simon J. Thompson, Stephen Adams 0002, Stavros Aronis, Robert Baker 0001, Eva Bihari, Olivier Boudeville, Francesco Cesarini, Maurizio Di Stefano, Sverker Eriksson, Viktória Fördós, Amir Ghaffari, Aggelos Giantsios, Rickard Green, Csaba Hoch, David Klaftenegger, Huiqing Li, Kenneth Lundin, Kenneth MacKenzie, Katerina Roukounaki, Yiannis Tsiouris, Kjell Winblad
ACM Trans. Program. Lang. Syst.20
2016 Improving the network scalability of Erlang
abstract
As the number of cores grows in commodity architectures so does the likelihood of failures. A distributed actor model potentially facilitates the development of reliable and scalable software on these architectures. Key components include lightweight processes which ‘share nothing’ and hence can fail independently. Erlang is not only increasingly widely used, but the underlying actor model has been a beacon for programming language design, influencing for example Scala, Clojure and Cloud Haskell. While the Erlang distributed actor model is inherently scalable, we demonstrate that it is limited by some pragmatic factors. We address two network scalability issues here: globally registered process names must be updated on every node (virtual machine) in the system, and any Erlang nodes that communicate maintain an active connection. That is, there is a fully connected O ( n 2 ) network of n nodes. We present the design, implementation, and initial evaluation of a conservative extension of Erlang — Scalable Distributed (SD) Erlang. SD Erlang partitions the global namespace and connection network using s_groups. An s_group is a set of nodes with its own process namespace and with a fully connected network within the s_group, but only individual connections outside it. As a node may belong to more than one s_group it is possible to construct arbitrary connection topologies like trees or rings. We present an operational semantics for the s_group functions, and outline the validation of conformance between the implementation and the semantics using the QuickCheck automatic testing tool. Our preliminary evaluation in comparison with distributed Erlang shows that SD Erlang dramatically improves network scalability even if the number of global operations is tiny (0.01%). Moreover, even in the absence of global operations the reduced connection maintenance overheads mean that SD Erlang scales better beyond 80 nodes (1920 cores).
Natalia Chechina, Huiqing Li, Amir Ghaffari, Simon J. Thompson, Philip W. Trinder
J. Parallel Distributed Comput.2
2015 Subspace Clustering Using Log-determinant Rank Approximation
abstract
A number of machine learning and computer vision problems, such as matrix completion and subspace clustering, require a matrix to be of low-rank. To meet this requirement, most existing methods use the nuclear norm as a convex proxy of the rank function and minimize it. However, the nuclear norm simply adds all nonzero singular values together instead of treating them equally as the rank function does, which may not be a good rank approximation when some singular values are very large. To reduce this undesirable weighting effect, we use a log-determinant function as a non-convex rank approximation which reduces the contributions of large singular values while keeping those of small singular values close to zero. We apply the method of augmented Lagrangian multipliers to optimize this non-convex rank approximation-based objective function and obtain closed-form solutions for all subproblems of minimizing different variables alternatively. The log-determinant low-rank optimization method is used to solve subspace clustering problem, for which we construct an affinity matrix based on the angular information of the low-rank representation to enhance its separability property. Extensive experimental results on face clustering and motion segmentation data demonstrate the effectiveness of the proposed method.
Chong Peng 0001, Zhao Kang 0001, Huiqing Li, Qiang Shawn Cheng
KDD3
2015 Safe Concurrency Introduction through Slicing
abstract
Traditional refactoring is about modifying the structure of existing code without changing its behaviour, but with the aim of making code easier to understand, modify, or reuse. In this paper, we introduce three novel refactorings for retrofitting concurrency to Erlang applications, and demonstrate how the use of program slicing makes the automation of these refactorings possible.
Huiqing Li, Simon J. Thompson
PEPM1
2014 Automating property-based testing of evolving web services
abstract
Web services are the most widely used service technology that drives the Service-Oriented Computing~(SOC) paradigm. As a result, effective testing of web services is getting increasingly important. In this paper, we present a framework and toolset for testing web services and for evolving test code in sync with the evolution of web services. Our approach to testing web services is based on the Erlang programming language and QuviQ QuickCheck, a property-based testing tool written in Erlang, and our support for test code evolution is added to Wrangler, the Erlang refactoring tool.
Huiqing Li, Simon J. Thompson, Pablo Lamela Seijas, Miguel Angel Francisco
PEPM1
2014 A Minimax Framework for Classification with Applications to Images and High Dimensional Data
abstract
This paper introduces a minimax framework for multiclass classification, which is applicable to general data including, in particular, imagery and other types of high-dimensional data. The framework consists of estimating a representation model that minimizes the fitting errors under a class of distortions of interest to an application, and deriving subsequently categorical information based on the estimated model. A variety of commonly used regression models, including lasso, elastic net and ridge regression, can be regarded as special cases that correspond to specific classes of distortions. Optimal decision rules are derived for this classification framework. By using kernel techniques the framework can account for nonlinearity in the input space. To demonstrate the power of the framework we consider a class of signal-dependent distortions and build a new family of classifiers as new special cases. This family of new methods-minimax classification with generalized multiplicative distortions-often outperforms the state-of-the-art classification methods such as the support vector machine in accuracy. Extensive experimental results on images, gene expressions and other types of data verify the effectiveness of the proposed framework.
Qiang Shawn Cheng, Hongbo Zhou 0001, Jie Cheng 0002, Huiqing Li
IEEE Trans. Pattern Anal. Mach. Intell.4
2013 Refactoring tools for functional languages
abstract
Abstract Refactoring is the process of changing the design of a program without changing what it does. Typical refactorings, such as function extraction and generalisation, are intended to make a program more amenable to extension, more comprehensible and so on. Refactorings differ from other sorts of program transformation in being applied to source code, rather than to a ‘core’ language within a compiler, and also in having an effect across a code base, rather than to a single function definition, say. Because of this, there is a need to give automated support to the process. This paper reflects on our experience of building tools to refactor functional programs written in Haskell (HaRe) and Erlang (Wrangler). We begin by discussing what refactoring means for functional programming languages, first in theory, and then in the context of a larger example. Next, we address system design and details of system implementation as well as contrasting the style of refactoring and tooling for Haskell and Erlang. Building both tools led to reflections about what particular refactorings mean, as well as requiring analyses of various kinds, and we discuss both of these. We also discuss various extensions to the core tools, including integrating the tools with test frameworks; facilities for detecting and eliminating code clones; and facilities to make the systems extensible by users. We then reflect on our work by drawing some general conclusions, some of which apply particularly to functional languages, while many others are of general value.
Simon J. Thompson, Huiqing Li
J. Funct. Program.2
2012 A Domain-Specific Language for Scripting Refactorings in Erlang
Huiqing Li, Simon J. Thompson
FASE1
2012 Automated API migration in a user-extensible refactoring tool for Erlang programs
abstract
Wrangler is a refactoring and code inspection tool for Erlang programs. Apart from providing a set of built-in refactorings and code inspection functionalities, Wrangler allows users to define refactorings, code inspections, and general program transformations for themselves to suit their particular needs. These are defined using a template- and rule-based program transformation and analysis framework built into Wrangler.
Huiqing Li, Simon J. Thompson
ASE1
2011 Incremental Clone Detection and Elimination for Erlang Programs
Huiqing Li, Simon J. Thompson
FASE1
2010 Similar Code Detection and Elimination for Erlang Programs
Huiqing Li, Simon J. Thompson
PADL1
2010 Refactoring Support for Modularity Maintenance in Erlang
abstract
Low coupling between modules and high cohesion inside each module are key features of good software architecture. Systems written in modern programming languages generally start with some reasonably well-designed module structure, however with continuous feature additions, modifications and bug fixes, software modularity gradually deteriorates. So, there is a need for incremental improvements to modularity to avoid the situation when the structure of the system becomes too complex to maintain. We demonstrate how Wrangler, a general-purpose refactoring tool for Erlang, can be used to maintain and improve the modularity of programs written in Erlang without dramatically changing the existing module structure. We identify a set of "modularity smells", and show how they can be detected by Wrangler and removed by way of a variety of refactorings implemented in Wrangler. Validation of the approach and usefulness of the tool are demonstrated by case studies.
Huiqing Li, Simon J. Thompson
SCAM1
2009 Clone detection and removal for Erlang/OTP within a refactoring environment
abstract
A well-known bad code smell in refactoring and software maintenance is duplicated code, or code clones. A code clone is a code fragment that is identical or similar to another. Unjustified code clones increase code size, make maintenance and comprehension more difficult, and also indicate design problems such as lack of encapsulation or abstraction.
Huiqing Li, Simon J. Thompson
PEPM1
2008 Tool support for refactoring functional programs
abstract
We demonstrate the Haskell Refactorer, HaRe, and the Erlang Refactorer, Wrangler, as examples of fully-functional refactoring tools for functional programming languages. HaRe and Wrangler are designed to handle multi-module projects in complete languages: Haskell 98 and Erlang/OTP. They are embedded in Emacs (and gVim) and respect programmer layout styles.
Huiqing Li, Simon J. Thompson
PEPM1
2004 A naiive bayes learning based website reconfiguration system
abstract
The continuous and sharp growth of web sites in terms of size and complexity has made improving the website organization to facilitate users' navigation something of an emergency. To address this problem, in this paper we propose a website reconfiguration system using the machine learning approach. First, a Naive Bayes Classifier is trained and then applied to identify each page in a web site as important or unimportant in terms of fulfilling visitors' information needs. For those important pages, we check the reasonableness of their locations, which is measured by the average number of hops needed to reach them during visitor sessions. Those important but difficult reach pages are considered for reconfiguration, which is done by either automatically moving them to some level closer to the visitors' starting point, making it easier for users to access them, or presenting webmasters with a list of suggestions. We also propose a formula to evaluate the "global structure" of a web site, and use it to examine the effect of our system on improving website design.
Huiqing Li, Xiumei Jia
ICMLA2
2003 Tool support for refactoring functional programs
Huiqing Li, Claus Reinke, Simon J. Thompson
Haskell1