File Download
  Links for fulltext
     (May Require Subscription)
Supplementary

postgraduate thesis: Reusability and modularity in consumer, producer, and transformation operations

TitleReusability and modularity in consumer, producer, and transformation operations
Authors
Advisors
Issue Date2019
PublisherThe University of Hong Kong (Pokfulam, Hong Kong)
Citation
Zhang, H. [张浩源]. (2019). Reusability and modularity in consumer, producer, and transformation operations. (Thesis). University of Hong Kong, Pokfulam, Hong Kong SAR.
AbstractSince 1954 when the first high-level programming language Fortran was invented, the past decades have witnessed several significant revolutions of modularization in programming areas: structured programming, modules and encapsulation, abstract objects and datatypes, inheritance, and many other paradigms of type systems and recursion patterns. The essence of modularization is that, by separating the functionality of a program into a network of independent or loosely dependent components, each component is easier to be reused and maintained without affecting others. And the ultimate goal of modularization, is to enhance the efficiency/productivity of programmers and reduce the cost of software development and maintenance, and meanwhile ensure (type) safety and execution performance as much as possible. Newly proposed modularization techniques in existing languages, can in turn promote the development of new language features and even new language paradigms. In recent few years, researchers have put great effort on resolving the Expression Problem (coined by Philip Wadler) in different languages. The requirements for modularization are well described in the Expression Problem, especially it highlights two dimensions of extensibility at the same time: on data variants and operations. Unfortunately, although existing approaches satisfy this primary requirement, the term "operation" is not well identified; more specifically, most existing approaches focus on the modularity of consumer operations that consume data structures and collect information, but not producer operations that build data structures. Additionally, it is difficult to balance modularity with other attributes, including type-safety, conciseness, expressiveness, and efficiency. This dissertation investigates modularization techniques for consumers and producers with simple, type-safe and reusable patterns, without breaking the modularity of data variants. Specifically, three research problems are studied in this dissertation: boilerplate traversals, type-safe modular parsing and modular unfolds. As a result, this dissertation proposes: Shy, a Java library that captures generic traversal patterns and automatically generates boilerplate traversal code with extensibility; a type-safe pattern for writing modular parsers in object-oriented programming; and SCCL, a specialized coalgebra combinator library for modularizing producers by modularizing categorical f-coalgebras in Haskell. Consequently, there is a significant reduction in client code due to modularity and reusability, evidenced by a number of case studies and applications.
DegreeDoctor of Philosophy
SubjectProgramming languages (Electronic computers)
Modularity (Engineering)
Dept/ProgramComputer Science
Persistent Identifierhttp://hdl.handle.net/10722/273775

 

DC FieldValueLanguage
dc.contributor.advisorDos Santos Oliveira, BC-
dc.contributor.advisorTse, TH-
dc.contributor.authorZhang, Haoyuan-
dc.contributor.author张浩源-
dc.date.accessioned2019-08-14T03:29:51Z-
dc.date.available2019-08-14T03:29:51Z-
dc.date.issued2019-
dc.identifier.citationZhang, H. [张浩源]. (2019). Reusability and modularity in consumer, producer, and transformation operations. (Thesis). University of Hong Kong, Pokfulam, Hong Kong SAR.-
dc.identifier.urihttp://hdl.handle.net/10722/273775-
dc.description.abstractSince 1954 when the first high-level programming language Fortran was invented, the past decades have witnessed several significant revolutions of modularization in programming areas: structured programming, modules and encapsulation, abstract objects and datatypes, inheritance, and many other paradigms of type systems and recursion patterns. The essence of modularization is that, by separating the functionality of a program into a network of independent or loosely dependent components, each component is easier to be reused and maintained without affecting others. And the ultimate goal of modularization, is to enhance the efficiency/productivity of programmers and reduce the cost of software development and maintenance, and meanwhile ensure (type) safety and execution performance as much as possible. Newly proposed modularization techniques in existing languages, can in turn promote the development of new language features and even new language paradigms. In recent few years, researchers have put great effort on resolving the Expression Problem (coined by Philip Wadler) in different languages. The requirements for modularization are well described in the Expression Problem, especially it highlights two dimensions of extensibility at the same time: on data variants and operations. Unfortunately, although existing approaches satisfy this primary requirement, the term "operation" is not well identified; more specifically, most existing approaches focus on the modularity of consumer operations that consume data structures and collect information, but not producer operations that build data structures. Additionally, it is difficult to balance modularity with other attributes, including type-safety, conciseness, expressiveness, and efficiency. This dissertation investigates modularization techniques for consumers and producers with simple, type-safe and reusable patterns, without breaking the modularity of data variants. Specifically, three research problems are studied in this dissertation: boilerplate traversals, type-safe modular parsing and modular unfolds. As a result, this dissertation proposes: Shy, a Java library that captures generic traversal patterns and automatically generates boilerplate traversal code with extensibility; a type-safe pattern for writing modular parsers in object-oriented programming; and SCCL, a specialized coalgebra combinator library for modularizing producers by modularizing categorical f-coalgebras in Haskell. Consequently, there is a significant reduction in client code due to modularity and reusability, evidenced by a number of case studies and applications.-
dc.languageeng-
dc.publisherThe University of Hong Kong (Pokfulam, Hong Kong)-
dc.relation.ispartofHKU Theses Online (HKUTO)-
dc.rightsThe author retains all proprietary rights, (such as patent rights) and the right to use in future works.-
dc.rightsThis work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.-
dc.subject.lcshProgramming languages (Electronic computers)-
dc.subject.lcshModularity (Engineering)-
dc.titleReusability and modularity in consumer, producer, and transformation operations-
dc.typePG_Thesis-
dc.description.thesisnameDoctor of Philosophy-
dc.description.thesislevelDoctoral-
dc.description.thesisdisciplineComputer Science-
dc.description.naturepublished_or_final_version-
dc.identifier.doi10.5353/th_991044128171803414-
dc.date.hkucongregation2019-
dc.identifier.mmsid991044128171803414-

Export via OAI-PMH Interface in XML Formats


OR


Export to Other Non-XML Formats