959 resultados para VHDL (Computer hardware description language)


Relevância:

30.00% 30.00%

Publicador:

Resumo:

Advancements in cloud computing have enabled the proliferation of distributed applications, which require management and control of multiple services. However, without an efficient mechanism for scaling services in response to changing workload conditions, such as number of connected users, application performance might suffer, leading to violations of Service Level Agreements (SLA) and possible inefficient use of hardware resources. Combining dynamic application requirements with the increased use of virtualised computing resources creates a challenging resource Management context for application and cloud-infrastructure owners. In such complex environments, business entities use SLAs as a means for specifying quantitative and qualitative requirements of services. There are several challenges in running distributed enterprise applications in cloud environments, ranging from the instantiation of service VMs in the correct order using an adequate quantity of computing resources, to adapting the number of running services in response to varying external loads, such as number of users. The application owner is interested in finding the optimum amount of computing and network resources to use for ensuring that the performance requirements of all her/his applications are met. She/he is also interested in appropriately scaling the distributed services so that application performance guarantees are maintained even under dynamic workload conditions. Similarly, the infrastructure Providers are interested in optimally provisioning the virtual resources onto the available physical infrastructure so that her/his operational costs are minimized, while maximizing the performance of tenants’ applications. Motivated by the complexities associated with the management and scaling of distributed applications, while satisfying multiple objectives (related to both consumers and providers of cloud resources), this thesis proposes a cloud resource management platform able to dynamically provision and coordinate the various lifecycle actions on both virtual and physical cloud resources using semantically enriched SLAs. The system focuses on dynamic sizing (scaling) of virtual infrastructures composed of virtual machines (VM) bounded application services. We describe several algorithms for adapting the number of VMs allocated to the distributed application in response to changing workload conditions, based on SLA-defined performance guarantees. We also present a framework for dynamic composition of scaling rules for distributed service, which used benchmark-generated application Monitoring traces. We show how these scaling rules can be combined and included into semantic SLAs for controlling allocation of services. We also provide a detailed description of the multi-objective infrastructure resource allocation problem and various approaches to satisfying this problem. We present a resource management system based on a genetic algorithm, which performs allocation of virtual resources, while considering the optimization of multiple criteria. We prove that our approach significantly outperforms reactive VM-scaling algorithms as well as heuristic-based VM-allocation approaches.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Amawaka ([ɑmɨ̃ˈwɐkɑ]) is a highly endangered and underdocumented tonal language of the Headwaters (Fleck 2011) subgroup of the Panoan family in the Southwest Amazon Basin, spoken by approximately 200 people. Undocumented phonetic and phonological phenomena of Amawaka include its tonal structure, both in terms of surface realizations and the patterns underlying these realizations. Original audiovisual data from the author’s fieldwork in various Amawaka communities at the Peru-Brazil border will illuminate the as-yet obscure tonal systematicity of the language. Unlike other elements, monosyllabic bimoraic phonological nominal words with long vowels display variation in their surface realization. All the words with the open back unrounded /ɑ/, like /ˈkɑ̀:/ (patarashca, a traditional Amazonian dish), /ˈnɑ̀:/ “mestizo” etc. [with the exception of /ˈtɑ:/ “reed”, which surfaces with either a H or L tone] bear a low tone in isolation. This realization contrasts with all the encountered nominal monosyllables with vowels from the close and close-mid front and central spectrum /i, ɘ, ɨ, ɨ̃/, which clearly surface as high tone words in isolation, for example /ˈmɨ̃́:/ (a clay-lick for animals), /ˈwí:/ “Anopheles, spp. mosquito”. Monosyllables with close-mid back rounded /o/ have a less restrictive pitch that varies among speakers from low to high realizations, and sometimes even across the speech tokens from an individual speaker, e.g. /wó:/ or /wō:/ “hair”, /ɧō:/ or /ɧò:/ (a type of tarantula). Phrasal tonal phonology is more complex, when these three kinds of monosyllables appear in larger noun phrases. Some retain the same surface tones as their isolation form, while others seem to vary freely in their surface realization, e.g. /ˈtɘ́:.nɑ̀:/ or /ˈtɘ́:.nɑ́:/ ‘one mestizo’. Yet other monosyllables, e.g. /mɑ̀:/, exhibit a falling tone when preceded by a H syllable, suggesting probably latent tone sandhi phenomena, e.g /ˈtɘ́:.mɑ̂:/ (one clay-lick for parrots). In disyllabic, trisyllabic and quadrisyllabic nouns, tonal and stress patterns generally seem to be more consistent and tend to be retained both in isolation and in larger intonational phrases. Disyllabic nouns, for instance, surface as L-H or L-L when a glottal stop is in coda position. The association of L with a glottal stop is a feature that occurs in other Panoan languages as well, like Capanahua (Loos 1969), and more generally it is an areal feature, found in other parts of Amazonia (Hyman 2010). So, tone has significant interactions with the glottal stop and glottalization, which generally co-occurs with L. The data above suggest that the underlying tonal system of Amawaka is much more complex than the privative one-tone analysis (/H/ vs. Ø, i.e. lack of tone) that was proposed by Russell and Russell (1959). Evidence from field data suggests either an equipollent (Hyman 2010) two-tone opposition between /H/ and /L/, or a hybrid system, with both equipollent and privative features; that is, /H/ vs. /L/ vs. either Ø or /M/. This first systematic description of Amawaka tone, in conjunction with ongoing research, is poised to address broader questions concerning interrelationships between surface/underlying tone and other suprasegmental features, such as nasality, metrical stress, and intonation. References Fleck, David W. 2011. Panoan languages and linguistics. In Javier Ruedas and David W. Fleck (Eds.), Panoan Histories and Interethnic Identities, To appear. Hyman, Larry. 2010. Amazonia and the typology of tone systems. Presented at the conference Amazonicas III: The structure of the Amazonian languages. Bogotá. Loos, Eugene E. 1969. The phonology of Capanahua and its grammatical basis. Norman: SIL and U. Oklahoma. Russell, Robert & Dolores. 1959. Syntactotonemics in Amahuaca (Pano). Série Lingüistica Especial, 128-167. Publicaçoes do Museu Nacional, Rio de Janeiro, Brasil.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Amawaka ([ɑmɨ̃ˈwɐkɑ]) is a highly endangered and underdocumented tonal language of the Headwaters (Fleck 2011) subgroup of the Panoan family in the Southwest Amazon Basin, spoken by approximately 200 people. Undocumented phonetic and phonological phenomena of Amawaka include its tonal structure, both in terms of surface realizations and the patterns underlying these realizations. Original audiovisual data from the author’s fieldwork in various Amawaka communities at the Peru-Brazil border will illuminate the as-yet obscure tonal systematicity of the language. Unlike other elements, monosyllabic bimoraic phonological nominal words with long vowels display variation in their surface realization. All the words with the open back unrounded /ɑ/, like /ˈkɑ̀:/ (a traditional Amazonian dish), /ˈnɑ̀:/ “mestizo” etc. [with the exception of /ˈtɑ:/ “reed”, which surfaces with either a H or L tone] bear a low tone in isolation. This realization contrasts with all the encountered nominal monosyllables with vowels from the close and close-mid front and central spectrum /i, ɘ, ɨ, ɨ̃/, which clearly surface as high tone words in isolation, for example /ˈmɨ̃́:/ (a clay-lick for animals), /ˈwí:/ “Anopheles, spp. mosquito”. Monosyllables with close-mid back rounded /o/ have a less restrictive pitch that varies among speakers from low to high realizations, and sometimes even across the speech tokens from an individual speaker, e.g. /wó:/ or /wō:/ “hair”, /ɧō:/ or /ɧò:/ (a type of tarantula). Phrasal tonal phonology is more complex, when these three kinds of monosyllables appear in larger noun phrases. Some retain the same surface tones as their isolation form, while others seem to vary freely in their surface realization, e.g. /ˈtɘ́:.nɑ̀:/ or /ˈtɘ́:.nɑ́:/ ‘one mestizo’. Yet other monosyllables, e.g. /mɑ̀:/, exhibit a falling tone when preceded by a H syllable, suggesting probably latent tone sandhi phenomena, e.g /ˈtɘ́:.mɑ̂:/ (one clay-lick for parrots). In disyllabic, trisyllabic and quadrisyllabic nouns, tonal and stress patterns generally seem to be more consistent and tend to be retained both in isolation and in larger intonational phrases. Disyllabic nouns, for instance, surface as L-H or L-L when a glottal stop is in coda position. The association of L with a glottal stop is a feature that occurs in other Panoan languages as well, like Capanahua (Loos 1969), and more generally it is an areal feature, found in other parts of Amazonia (Hyman 2010). So, tone has significant interactions with the glottal stop and glottalization, which generally co-occurs with L. The data above suggest that the underlying tonal system of Amawaka is much more complex than the privative one-tone analysis (/H/ vs. Ø, i.e. lack of tone) that was proposed by Russell and Russell (1959). Evidence from field data suggests either an equipollent (Hyman 2010) two-tone opposition between /H/ and /L/, or a hybrid system, with both equipollent and privative features; that is, /H/ vs. /L/ vs. either Ø or /M/. This first systematic description of Amawaka tone, in conjunction with ongoing research, is poised to address broader questions concerning interrelationships between surface/underlying tone and other suprasegmental features, such as nasality, metrical stress, and intonation. References Fleck, David W. 2011. Panoan languages and linguistics. In Javier Ruedas and David W. Fleck (Eds.), Panoan Histories and Interethnic Identities, To appear. Hyman, Larry. 2010. Amazonia and the typology of tone systems. Presented at the conference Amazonicas III: The structure of the Amazonian languages. Bogotá. Loos, Eugene E. 1969. The phonology of Capanahua and its grammatical basis. Norman: SIL and U. Oklahoma. Russell, Robert & Dolores. 1959. Syntactotonemics in Amahuaca (Pano). Série Lingüistica Especial, 128-167. Publicaçoes do Museu Nacional, Rio de Janeiro, Brasil.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Femoroacetabular impingement (FAI) is a dynamic conflict of the hip defined by a pathological, early abutment of the proximal femur onto the acetabulum or pelvis. In the past two decades, FAI has received increasing focus in both research and clinical practice as a cause of hip pain and prearthrotic deformity. Anatomical abnormalities such as an aspherical femoral head (cam-type FAI), a focal or general overgrowth of the acetabulum (pincer-type FAI), a high riding greater or lesser trochanter (extra-articular FAI), or abnormal torsion of the femur have been identified as underlying pathomorphologies. Open and arthroscopic treatment options are available to correct the deformity and to allow impingement-free range of motion. In routine practice, diagnosis and treatment planning of FAI is based on clinical examination and conventional imaging modalities such as standard radiography, magnetic resonance arthrography (MRA), and computed tomography (CT). Modern software tools allow three-dimensional analysis of the hip joint by extracting pelvic landmarks from two-dimensional antero-posterior pelvic radiographs. An object-oriented cross-platform program (Hip2Norm) has been developed and validated to standardize pelvic rotation and tilt on conventional AP pelvis radiographs. It has been shown that Hip2Norm is an accurate, consistent, reliable and reproducible tool for the correction of selected hip parameters on conventional radiographs. In contrast to conventional imaging modalities, which provide only static visualization, novel computer assisted tools have been developed to allow the dynamic analysis of FAI pathomechanics. In this context, a validated, CT-based software package (HipMotion) has been introduced. HipMotion is based on polygonal three-dimensional models of the patient’s pelvis and femur. The software includes simulation methods for range of motion, collision detection and accurate mapping of impingement areas. A preoperative treatment plan can be created by performing a virtual resection of any mapped impingement zones both on the femoral head-neck junction, as well as the acetabular rim using the same three-dimensional models. The following book chapter provides a summarized description of current computer-assisted tools for the diagnosis and treatment planning of FAI highlighting the possibility for both static and dynamic evaluation, reliability and reproducibility, and its applicability to routine clinical use.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

In this work, electrophoretic preconcentration of protein and peptide samples in microchannels was studied theoretically using the 1D dynamic simulator GENTRANS, and experimentally combined with MS. In all configurations studied, the sample was uniformly distributed throughout the channel before power application, and driving electrodes were used as microchannel ends. In the first part, previously obtained experimental results from carrier-free systems are compared to simulation results, and the effects of atmospheric carbon dioxide and impurities in the sample solution are examined. Simulation provided insight into the dynamics of the transport of all components under the applied electric field and revealed the formation of a pure water zone in the channel center. In the second part, the use of an IEF procedure with simple well defined amphoteric carrier components, i.e. amino acids, for concentration and fractionation of peptides was investigated. By performing simulations a qualitative description of the analyte behavior in this system was obtained. Neurotensin and [Glu1]-Fibrinopeptide B were separated by IEF in microchannels featuring a liquid lid for simple sample handling and placement of the driving electrodes. Component distributions in the channel were detected using MALDI- and nano-ESI-MS and data were in agreement with those obtained by simulation. Dynamic simulations are demonstrated to represent an effective tool to investigate the electrophoretic behavior of all components in the microchannel.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

The goal of the present thesis was to investigate the production of code-switched utterances in bilinguals’ speech production. This study investigates the availability of grammatical-category information during bilingual language processing. The specific aim is to examine the processes involved in the production of Persian-English bilingual compound verbs (BCVs). A bilingual compound verb is formed when the nominal constituent of a compound verb is replaced by an item from the other language. In the present cases of BCVs the nominal constituents are replaced by a verb from the other language. The main question addressed is how a lexical element corresponding to a verb node can be placed in a slot that corresponds to a noun lemma. This study also investigates how the production of BCVs might be captured within a model of BCVs and how such a model may be integrated within incremental network models of speech production. In the present study, both naturalistic and experimental data were used to investigate the processes involved in the production of BCVs. In the first part of the present study, I collected 2298 minutes of a popular Iranian TV program and found 962 code-switched utterances. In 83 (8%) of the switched cases, insertions occurred within the Persian compound verb structure, hence, resulting in BCVs. As to the second part of my work, a picture-word interference experiment was conducted. This study addressed whether in the case of the production of Persian-English BCVs, English verbs compete with the corresponding Persian compound verbs as a whole, or whether English verbs compete with the nominal constituents of Persian compound verbs only. Persian-English bilinguals named pictures depicting actions in 4 conditions in Persian (L1). In condition 1, participants named pictures of action using the whole Persian compound verb in the context of its English equivalent distractor verb. In condition 2, only the nominal constituent was produced in the presence of the light verb of the target Persian compound verb and in the context of a semantically closely related English distractor verb. In condition 3, the whole Persian compound verb was produced in the context of a semantically unrelated English distractor verb. In condition 4, only the nominal constituent was produced in the presence of the light verb of the target Persian compound verb and in the context of a semantically unrelated English distractor verb. The main effect of linguistic unit was significant by participants and items. Naming latencies were longer in the nominal linguistic unit compared to the compound verb (CV) linguistic unit. That is, participants were slower to produce the nominal constituent of compound verbs in the context of a semantically closely related English distractor verb compared to producing the whole compound verbs in the context of a semantically closely related English distractor verb. The three-way interaction between version of the experiment (CV and nominal versions), linguistic unit (nominal and CV linguistic units), and relation (semantically related and unrelated distractor words) was significant by participants. In both versions, naming latencies were longer in the semantically related nominal linguistic unit compared to the response latencies in the semantically related CV linguistic unit. In both versions, naming latencies were longer in the semantically related nominal linguistic unit compared to response latencies in the semantically unrelated nominal linguistic unit. Both the analysis of the naturalistic data and the results of the experiment revealed that in the case of the production of the nominal constituent of BCVs, a verb from the other language may compete with a noun from the base language, suggesting that grammatical category does not necessarily provide a constraint on lexical access during the production of the nominal constituent of BCVs. There was a minimal context in condition 2 (the nominal linguistic unit) in which the nominal constituent was produced in the presence of its corresponding light verb. The results suggest that generating words within a context may not guarantee that the effect of grammatical class becomes available. A model is proposed in order to characterize the processes involved in the production of BCVs. Implications for models of bilingual language production are discussed.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

This paper describes a preprocessing module for improving the performance of a Spanish into Spanish Sign Language (Lengua de Signos Espanola: LSE) translation system when dealing with sparse training data. This preprocessing module replaces Spanish words with associated tags. The list with Spanish words (vocabulary) and associated tags used by this module is computed automatically considering those signs that show the highest probability of being the translation of every Spanish word. This automatic tag extraction has been compared to a manual strategy achieving almost the same improvement. In this analysis, several alternatives for dealing with non-relevant words have been studied. Non-relevant words are Spanish words not assigned to any sign. The preprocessing module has been incorporated into two well-known statistical translation architectures: a phrase-based system and a Statistical Finite State Transducer (SFST). This system has been developed for a specific application domain: the renewal of Identity Documents and Driver's License. In order to evaluate the system a parallel corpus made up of 4080 Spanish sentences and their LSE translation has been used. The evaluation results revealed a significant performance improvement when including this preprocessing module. In the phrase-based system, the proposed module has given rise to an increase in BLEU (Bilingual Evaluation Understudy) from 73.8% to 81.0% and an increase in the human evaluation score from 0.64 to 0.83. In the case of SFST, BLEU increased from 70.6% to 78.4% and the human evaluation score from 0.65 to 0.82.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

In this paper the hardware implementation of an inner hair cell model is presented. Main features of the design are the use of Meddis’ transduction structure and the methodology for Design with Reusability. Which allows future migration to new hardware and design refinements for speech processing and custom-made hearing aids

Relevância:

30.00% 30.00%

Publicador:

Resumo:

En este proyecto se estudian y analizan las diferentes técnicas de procesado digital de señal aplicadas a acelerómetros. Se hace uso de una tarjeta de prototipado, basada en DSP, para realizar las diferentes pruebas. El proyecto se basa, principalmente, en realizar filtrado digital en señales provenientes de un acelerómetro en concreto, el 1201F, cuyo campo de aplicación es básicamente la automoción. Una vez estudiadas la teoría de procesado y las características de los filtros, diseñamos una aplicación basándonos sobre todo en el entorno en el que se desarrollaría una aplicación de este tipo. A lo largo del diseño, se explican las diferentes fases: diseño por ordenador (Matlab), diseño de los filtros en el DSP (C), pruebas sobre el DSP sin el acelerómetro, calibración del acelerómetro, pruebas finales sobre el acelerómetro... Las herramientas utilizadas son: la plataforma Kit de evaluación 21-161N de Analog Devices (equipado con el entorno de desarrollo Visual DSP 4.5++), el acelerómetro 1201F, el sistema de calibración de acelerómetros CS-18-LF de Spektra y los programas software MATLAB 7.5 y CoolEditPRO 2.0. Se realizan únicamente filtros IIR de 2º orden, de todos los tipos (Butterworth, Chebyshev I y II y Elípticos). Realizamos filtros de banda estrecha, paso-banda y banda eliminada, de varios tipos, dentro del fondo de escala que permite el acelerómetro. Una vez realizadas todas las pruebas, tanto simulaciones como físicas, se seleccionan los filtros que presentan un mejor funcionamiento y se analizan para obtener conclusiones. Como se dispone de un entorno adecuado para ello, se combinan los filtros entre sí de varias maneras, para obtener filtros de mayor orden (estructura paralelo). De esta forma, a partir de filtros paso-banda, podemos obtener otras configuraciones que nos darán mayor flexibilidad. El objetivo de este proyecto no se basa sólo en obtener buenos resultados en el filtrado, sino también de aprovechar las facilidades del entorno y las herramientas de las que disponemos para realizar el diseño más eficiente posible. In this project, we study and analize digital signal processing in order to design an accelerometer-based application. We use a hardware card of evaluation, based on DSP, to make different tests. This project is based in design digital filters for an automotion application. The accelerometer type is 1201F. First, we study digital processing theory and main parameters of real filters, to make a design based on the application environment. Along the application, we comment all the different steps: computer design (Matlab), filter design on the DSP (C language), simulation test on the DSP without the accelerometer, accelerometer calibration, final tests on the accelerometer... Hardware and software tools used are: Kit of Evaluation 21-161-N, based on DSP, of Analog Devices (equiped with software development tool Visual DSP 4.5++), 1201-F accelerometer, CS-18-LF calibration system of SPEKTRA and software tools MATLAB 7.5 and CoolEditPRO 2.0. We only perform 2nd orden IIR filters, all-type : Butterworth, Chebyshev I and II and Ellyptics. We perform bandpass and stopband filters, with very narrow band, taking advantage of the accelerometer's full scale. Once all the evidence, both simulations and physical, are finished, filters having better performance and analyzed and selected to draw conclusions. As there is a suitable environment for it, the filters are combined together in different ways to obtain higher order filters (parallel structure). Thus, from band-pass filters, we can obtain many configurations that will give us greater flexibility. The purpose of this project is not only based on good results in filtering, but also to exploit the facilities of the environment and the available tools to make the most efficient design possible.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Competitive abstract machines for Prolog are usually large, intricate, and incorpórate sophisticated optimizations. This makes them difñcult to code, optimize, and, especially, maintain and extend. This is partly due to the fact that efñciency considerations make it necessary to use low-level languages in their implementation. Writing the abstract machine (and ancillary code) in a higher-level language can help harness this inherent complexity. In this paper we show how the semantics of basic components of an efficient virtual machine for Prolog can be described using (a variant of) Prolog which retains much of its semantics. These descriptions are then compiled to C and assembled to build a complete bytecode emulator. Thanks to the high level of the language used and its closeness to Prolog the abstract machine descriptions can be manipulated using standard Prolog compilation and optimization techniques with relative ease. We also show how, by applying program transformations selectively, we obtain abstract machine implementations whose performance can match and even exceed that of highly-tuned, hand-crafted emulators.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

A new formalism, called Hiord, for defining type-free higherorder logic programming languages with predicate abstraction is introduced. A model theory, based on partial combinatory algebras, is presented, with respect to which the formalism is shown sound. A programming language built on a subset of Hiord, and its implementation are discussed. A new proposal for defining modules in this framework is considered, along with several examples.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

The Andorra family of languages (which includes the Andorra Kernel Language -AKL) is aimed, in principie, at simultaneously supporting the programming styles of Prolog and committed choice languages. On the other hand, AKL requires a somewhat detailed specification of control by the user. This could be avoided by programming in Prolog to run on AKL. However, Prolog programs cannot be executed directly on AKL. This is due to a number of factors, from more or less trivial syntactic differences to more involved issues such as the treatment of cut and making the exploitation of certain types of parallelism possible. This paper provides basic guidelines for constructing an automatic compiler of Prolog programs into AKL, which can bridge those differences. In addition to supporting Prolog, our style of translation achieves independent and-parallel execution where possible, which is relevant since this type of parallel execution preserves, through the translation, the user-perceived "complexity" of the original Prolog program.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

This report addresses speculative parallelism (the assignment of spare processing resources to tasks which are not known to be strictly required for the successful completion of a computation) at the user and application level. At this level, the execution of a program is seen as a (dynamic) tree —a graph, in general. A solution for a problem is a traversal of this graph from the initial state to a node known to be the answer. Speculative parallelism then represents the assignment of resources to múltiple branches of this graph even if they are not positively known to be on the path to a solution. In highly non-deterministic programs the branching factor can be very high and a naive assignment will very soon use up all the resources. This report presents work assignment strategies other than the usual depth-first and breadth-first. Instead, best-first strategies are used. Since their definition is application-dependent, the application language contains primitives that allow the user (or application programmer) to a) indícate when intelligent OR-parallelism should be used; b) provide the functions that define "best," and c) indícate when to use them. An abstract architecture enables those primitives to perform the search in a "speculative" way, using several processors, synchronizing them, killing the siblings of the path leading to the answer, etc. The user is freed from worrying about these interactions. Several search strategies are proposed and their implementation issues are addressed. "Armageddon," a global pruning method, is introduced, together with both a software and a hardware implementation for it. The concepts exposed are applicable to áreas of Artificial Intelligence such as extensive expert systems, planning, game playing, and in general to large search problems. The proposed strategies, although showing promise, have not been evaluated by simulation or experimentation.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

We describe lpdoc, a tool which generates documentation manuals automatically from one or more logic program source files, written in ISO-Prolog, Ciao, and other (C)LP languages. It is particularly useful for documenting library modules, for which it automatically generates a rich description of the module interface. However, it can also be used quite successfully to document full applications. A fundamental advantage of using lpdoc is that it helps maintaining a true correspondence between the program and its documentation, and also identifying precisely to what version of the program a given printed manual corresponds. The quality of the documentation generated can be greatly enhanced by including within the program text assertions (declarations with types, modes, etc.) for the predicates in the program, and machine-readable comments. One of the main novelties of lpdoc is that these assertions and comments are written using the Ciao system assertion language, which is also the language of communication between the compiler and the user and between the components of the compiler. This allows a significant synergy among specification, documentation, optimization, etc. A simple compatibility library allows conventional (C)LP systems to ignore these assertions and comments and treat normally programs documented in this way. The documentation can be generated in many formats including texinfo, dvi, ps, pdf, info, html/css, Unix nroff/man, Windows help, etc., and can include bibliographic citations and images. lpdoc can also generate “man” pages (Unix man page format), nicely formatted plain ascii “readme” files, installation scripts useful when the manuals are included in software distributions, brief descriptions in html/css or info formats suitable for inclusion in on-line indices of manuals, and even complete WWW and info sites containing on-line catalogs of documents and software distributions. The lpdoc manual, all other Ciao system manuals, and parts of this paper are generated by lpdoc.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Modularity allows the construction of complex designs from simpler, independent units that most of the time can be developed separately. In this paper we are concerned with developing mechanisms for easily implementing modular extensions to modular (logic) languages. By (language) extensions we refer to different groups of syntactic definitions and translation rules that extend a language. Our application of the concept of modularity in this context is twofold. We would like these extensions to be modular, in the above sense, i.e., we should be able to develop different extensions mostly separately. At the same time, the sources and targets for the extensions are modular languages, i.e., such extensions may take as input separate pieces of code and also produce separate pieces of code. Dealing with this double requirement involves interesting challenges to ensure that modularity is not broken: first, combinations of extensions (as if they were a single extension) must be given a precise meaning. Also, the separate translation of multiple sources (as if they were a single source) must be feasible. We present a detailed description of a code expansion-based framework that proposes novel solutions for these problems. We argue that the approach, while implemented for Ciao, can be adapted for other languages and Prolog-based systems.