16 research outputs found
An investigation of nondeterminism in functional programming languages
This thesis investigates nondeterminism in functional programming languages. To establish a precise understanding of nondeterministic language properties, Sondergaard and Sestoft's analysis and definitions of functional language properties are adopted as are the characterizations of weak and strong nondeterminism. This groundwork is followed by a denotational semantic description of a nondeterministic language (suggested by Sondergaard and Sestoft). In this manner, a precise characterization of the effects of strong nondeterminism is developed. Methods used to hide nondeterminism to in order to overcome or sidestep the problem of strong nondeterminism in pure functional languages are defined. These different techniques ensure that functional languages remain pure but also include some of the advantages of nondeterminism. Lastly, this discussion of nondeterminism is applied to the area of functional parallel language implementation to indicate that the related problem and the possible solutions are not purely academic. This application gives rise to an interesting discussion on optimization of list parallelism. This technique relies on the ability to decide when a bag may be used instead of a list
R programming in phylogenetics and evolution
This dissertation addresses the application of the statistical computing language
R in the study of evolution and diversification of plants. The topics included
range from the worldwide historical biogeography of the cucurbit family and the
phylogenetic composition of the Mediterranean Oxalis flora in central Chile to the
interplay between population genetics and climatic niche evolution in four Horde-
um clades in the Americas. In these studies, I drew on existing methods in R and
on java and C programs that could be easily integrated with R. Whenever necessary,
I created additional software available in four new R packages. R's features,
e.g., intersystem-interfaces, extensibility, reproducibility and advanced graphical
capability, proved well suited for evolutionary and phylogenetic research.
My coauthors and I addressed the history of Cucurbitaceae, one of the most economically
important families of plants, using a multi-gene phylogeny for 114 of the
115 genera and 25 per cent of the 960 species. Worldwide sampling was achieved by
using specimens from 30 herbaria. Results reveal an Asian origin of Cucurbitaceae
in the Late Cretaceous, followed by the repeated spread of lineages into the African,
American and Australian continents via transoceanic long-distance dispersal
(LDD). North American cucurbits stem from at least seven range expansions of
Central and South American lineages; Madagascar was colonized 13 times, always
from Africa; Australia was reached 12 times, apparently always from Southeast
Asia. Overall, Cucurbitaceae underwent at least 43 successful LDD events over
the past 60 Myr, which would translate into an average of seven LDDs every 10
Myr. These and similar findings from other angiosperms stress the need for an increased
tapping of museum collections to achieve extensive geographical sampling in plant phylogenetics.
The second study focused on the interplay of population demography with the
evolution of ecological niches during or after speciation in Hordeum. While large
populations maintain a high level of standing genetic diversity, gene
ow and recombination buffers against fast alterations in ecological adaptation. Small populations harbor lower allele diversity but can more easily shift to new niches if
they initially survive under changed conditions. Thus, large populations should
be more conservative regarding niche changes in comparison to small populations.
My coauthors and I used environmental niche modeling together with phylogenetic,
phylogeographic and population genetic analyses to infer the correlation of
population demography with changes in ecological niche dimensions in 12 diploid
Hordeum species from the New World, forming four monophyletic groups. Our
analyses found both shifts and conservatism in certain niche dimensions within
and among clades. Speciation due to vicariance resulted in three species with no
pronounced climate niche differences, while species originating due to long-distance
dispersals or otherwise encountering genetic bottlenecks mostly revealed climate
niche shifts. Niche convergence among clades indicates a niche-filling pattern during
the last 2 Myr in South American Hordeum. We provide evidence that species
that did not encounter population reductions mainly show ecoclimatic niche conservatism,
while major niche shifts have occurred in species that have undergone
population bottlenecks. Our analyses allow the conclusion that population demography
influences adaptation and niche shifts or conservatism in South American
Hordeum species.
Finally, I studied the phylogenetic composition of Oxalis flora of Mediterranean
zone of Chile by asking whether in such a species-rich clade xerophytic adaptations
arose in parallel, at different times, or simultaneously. Answering this type
of question has been a major concern of evolutionary biology over the past few
years, with a growing consensus that lineages tend to be conservative in their vegetative
traits and niche requirements. Combined nuclear and chloroplast DNA
sequences for 112 species of Oxalidales (4900 aligned nucleotides) were used for
a fossil-calibrated phylogeny that includes 43 of the 54 species of Chilean Oxalis,
and species distribution models (SDMs) incorporating precipitation, temperature,
and fog, and the phylogeny were used to reconstruct ancestral habitat preferences,
relying on likelihood and Bayesian techniques. Since uneven collecting can reduce the power of SDMs, we compared 3 strategies to correct for collecting effort. Unexpectedly,
the Oxalis flora of Chile consists of 7 distant lineages that originated
at different times prior to the last Andean uplift pulse; some had features preadapting
them to seasonally arid or xeric conditions. Models that incorporated fog
and a `collecting activity surface' performed best and identified the Mediterranean
zone as a hotspot of Oxalis species as well as lineage diversity because it harbors
a mix of ancient and young groups, including insuficiently arid-adapted species.
There is no evidence of rapid adaptive radiation
Comparison of Haskell and F# Programming Languages for Enterprise Applications Development
Tato práce porovnává dva funkcionální jazyky Haskell a F#. Oba jazyky jsou analyzovány na základě kritérií, které by byly použity při výběru nejvhodnějšího jazyka pro vývoj podnikové aplikace. Práce také vysvětluje event sourcing a jeho implementaci v obou jazycích. Důvodem, proč je Haskell oproti F# lepší pro event sourcing je, že je referenčně transparentní. Dále práce vysvětluje, že je jednodušší psát frontend aplikace v F# ve srovnání s Haskellem, z důvodu toho, že F# není čistě funkcionální. V závěru se v práci dospěje k tomu, že ve většině případů je F# vhodnější pro vývoj podnikových aplikací.This thesis compares two functional languages Haskell and F#. Both languages are analyzed based on the criteria that would be used in order to choose the most suitable language for developing an enterprise application. It explains event sourcing and its implementation in both of the languages and why Haskell is better for event sourcing due to the fact it is referentially transparent. It explains how it is easier to write F# frontend applications compared to Haskell, due to its impurity. It concludes that it seems, that in most of the cases, F# is more suitable for enterprise application development
Singular and Plural Functions for Functional Logic Programming
Functional logic programming (FLP) languages use non-terminating and
non-confluent constructor systems (CS's) as programs in order to define
non-strict non-determi-nistic functions. Two semantic alternatives have been
usually considered for parameter passing with this kind of functions: call-time
choice and run-time choice. While the former is the standard choice of modern
FLP languages, the latter lacks some properties---mainly
compositionality---that have prevented its use in practical FLP systems.
Traditionally it has been considered that call-time choice induces a singular
denotational semantics, while run-time choice induces a plural semantics. We
have discovered that this latter identification is wrong when pattern matching
is involved, and thus we propose two novel compositional plural semantics for
CS's that are different from run-time choice.
We study the basic properties of our plural semantics---compositionality,
polarity, monotonicity for substitutions, and a restricted form of the bubbling
property for constructor systems---and the relation between them and to
previous proposals, concluding that these semantics form a hierarchy in the
sense of set inclusion of the set of computed values. We have also identified a
class of programs characterized by a syntactic criterion for which the proposed
plural semantics behave the same, and a program transformation that can be used
to simulate one of them by term rewriting. At the practical level, we study how
to use the expressive capabilities of these semantics for improving the
declarative flavour of programs. We also propose a language which combines
call-time choice and our plural semantics, that we have implemented in Maude.
The resulting interpreter is employed to test several significant examples
showing the capabilities of the combined semantics.
To appear in Theory and Practice of Logic Programming (TPLP)Comment: 53 pages, 5 figure
Verification of floating point programs
In this thesis we present an approach to automated verification of floating point programs. Existing techniques for automated generation of correctness theorems are extended to produce proof obligations for accuracy guarantees and absence of floating point exceptions. A prototype automated real number theorem prover is presented, demonstrating a novel application of function interval arithmetic in the context of subdivision-based numerical theorem proving. The prototype is tested on correctness theorems for two simple yet nontrivial programs, proving exception freedom and tight accuracy guarantees automatically. The prover demonstrates a novel application of function interval arithmetic in the context of subdivision-based numerical theorem proving. The experiments show how function intervals can be used to combat the information loss problems that limit the applicability of traditional interval arithmetic in the context of hard real number theorem proving.EThOS - Electronic Theses Online ServiceGBUnited Kingdo
Classifying and Identifying Negative Poisson's Ratio. An Examination of the Auxeticity in Zeolitic Materials
The aim of this thesis is to advance the understanding of auxeticity. This is achieved by developing a more accurate way to classify materials exhibiting the property, by carrying out high-throughput atomistic simulations of framework materials based on the SiO2 and GeO2 chemistries, and by exploring mechanistic models and possible correlations with directional density variations. At first this thesis outlines the development of a typographic system for negative Poisson's ratio. Materials are given classifications based on the degree to which auxetic behaviour is observed along specific axes of deformation and the frequency of occurrence of these axes. A systematic study is then performed on the elastic properties of zeolitic silicon dioxide and germanium dioxide structures. The typology is applied to these materials to better understand their auxetic behaviour. The JST framework is identified as isotropically auxetic, the first crystal to exhibit such general negative Poisson's ratios. An exploration into the effects of local density variations between parallel planes on Poisson's ratio is undertaken, but no clear correlation is found. Finally, software for systematically creating and evaluating two dimensional networks of triangles is produced. The geometrical analysis of these rotating structures predicts a high level of auxeticity and further work into three dimensional equivalents is recommended