This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Aleph Library introduction and installation yPBL cookbook
by Angelica Amaya, Johanna Raimundo and Ronald Sulbaranlast update: 23!"2!#$
Introduction
Software engineering is the study of ways in which to create large and comple6 computerapplications and that generally inole many programmers and designers" At the heart of
software engineering is with the oerall design of the applications and on the creation of a designthat is based on the needs and re*uirements of end users" 7hile software engineering inoles
the full life cycle of a software pro(ect0 is includes many different components - specification0
re*uirements gathering0 design0 erification0 coding0 testing0 *uality assurance0 user acceptancetesting0 production0 and ongoing maintenance"
8aing an in-depth understanding on eery component of software engineering is not mandatory0
howeer0 it is important to understand that the sub(ect of data structures and algorithms is
concerned with the coding phase" .he use of data structures and algorithms is the nuts-and-blotsused by programmers to store and manipulate data"
Aleph-w is a library of abstract data types and algorithms around a wide range of fundamental
data structures and computing issues
.he remainder of this coo/boo/ is organi9ed as follows" irst0 some definitions are intended to
proide a basic understanding of Data Structures0 Algorithms and the used tools" .hen0 seeral
recipes will show you how to implement and used Aleph-w library".his coo/boo/ is dedicated to Linu6 users"
Definitions
Data Structures and Algorithms
A data structure is an arrangement of data in a computer;s memory or een dis/ storage" An
e6ample of seeral common data structures are arrays0 lin/ed lists0 *ueues0 stac/s0 binary trees0
and hash tables" Algorithms0 on the other hand0 are used to manipulate the data contained in thesedata structures as in searching and sorting"
<any algorithms apply directly to a specific data structures" 7hen wor/ing with certain data
structures you need to /now how to insert new data0 search for a specified item0 and deleting a
specific item"
Commonly used algorithms include are useful for:
• Searching for a particular data item =or record>"
• Sorting the data" .here are many ways to sort data" Simple sorting0 Adanced sorting
• Iterating through all the items in a data structure" =4isiting each item in turn so as to
display it or perform some other action on these items>
Aleph Library introduction and installation yPBL cookbook
by Angelica Amaya, Johanna Raimundo and Ronald Sulbaranlast update: 23!"2!#$
Aleph%& Library
Aleph-w is a library of data structures and algorithms implemented in and for C"
It contains the main data structures: single and double lists0 special arrays =dynamic and of bits>0many types of trees: multitrees0 binary search trees0 al0 red-blac/0 randomi9ed0 treaps0 splay
and other interesting types"
Seeral types of hash tables are implemented: separated chaining0 open adressing with linear
probing and double function hash? this last one has a garbage colector mechanism that allows tofree deleted entries" Dynamic linear hash tables are implemented too"
.he main algorithms on graphs are implemented in an easy way and with good performancefeatures" @etwor/ low =ma6imum and min cost>0 cut points0 topological sort0 spanning trees0
min paths" etc" .he graphs are generic in the sense that they can contain data independent of the
algorithm"
Seeral containers of the C S.L library are implemented with Aleph-w" .heir performance is
better than @B implementation
'lang
Clang is a compiler front end for the C0 C0 )b(ectie-C and )b(ectie-C programminglanguages" It uses LL4< as its bac/ end and has been part of the LL4< release cycle since
LL4< $""It is designed to offer a complete replacement to the @B Compiler Collection =CC>" It is
open-source0 deeloped by Apple? other companies such as oogle are inoled" Its source codeis aailable under the Bniersity of Illinois@CSA License"
.he Clang pro(ect includes the Clang front end and the Clang static analy9er and seeral code
Aleph Library introduction and installation yPBL cookbook
by Angelica Amaya, Johanna Raimundo and Ronald Sulbaranlast update: 23!"2!#$
deb-src http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.4 main
'hird$
nstall (stable branch)
• .o retriee the archie signature:
type in a terminal sudo wget - - http$%%llm.org%apt%llm-snapshot.gpg.+eysudo apt-
+ey add -
• .o install (ust clang0 lldb and llm =%"! release>:
type in a terminal sudo apt-get install clang-.! lldb-.! llm-.!
Step': Installing the aleph library
irstly0 you need to open the Ima/efile file that is inside the folder of the Aleph-w library and (ust delete or comment lines if you wish to use gnu or clang suite0 in this case we are going to useclang suite:
Second:
.ype in a terminal : sudo ind % -name /cconig.h/ -e0ec echo 12 34 and press enter"
Aleph Library introduction and installation yPBL cookbook
by Angelica Amaya, Johanna Raimundo and Ronald Sulbaranlast update: 23!"2!#$
Select the path that contains c%!."
5%usr%include%i"6-linu0-gnu%c%!."7
.hird:
loo/ for the line that contains 589L&D:S ; -.%7 in the Ima/efile file and change it by89L&D:S ; -.% -%usr%include%i"6-linu0-gnu%c%!."7 obtained before"
ourth:
)pen a terminal cd to aleph directory and run: 0m+m