Development of a search algorithms library in go using DOT language

Thumbnail Image
Publication date
Defense date
Journal Title
Journal ISSN
Volume Title
Google Scholar
Research Projects
Organizational Units
Journal Issue
The Go programming language, also known as Golang, is a powerful general purpose language used in high-performance concurrent tasks with a growing community of developers and open source contributors, known mostly for its unique parallel programming paradigm using channels. The language has a reputation for heavily opinionated architectural decisions and therefore inclusions and omissions in the specification. Notably, most established data structures included in traditional programming languages are purposefully excluded from it. Part of the reason for it is the lack of generics: programmers are encouraged instead to generate structures based on interface definitions and fulfill their needs per-implementation. The project of the thesis is hereby presented, with the following goals: providing a robust and flexible search algorithms library, contributing to the Go community with an open source library, and employing the state-of-the-art in search and heuristic search theory and underlying data structure optimizations, with the peculiarity of the inclusion of a module which enables the modeling and solving of problems using dot [1] files as input. The work details the entire process: formal specification, design, planning, development and testing, detailing justifications for any decisions taken and also analyzing the performance of several data structures along the way. Finally, the Appendix contains additional resources and project documentation, generated via godoc [2] (Appendix B).
Open source, Go, Programming language, Data structures, Interfaces
Bibliographic citation