92 research outputs found

    One Parser to Rule Them All

    Get PDF
    Despite the long history of research in parsing, constructing parsers for real programming languages remains a difficult and painful task. In the last decades, different parser generators emerged to allow the construction of parsers from a BNF-like specification. However, still today, many parsers are handwritten, or are only partly generated, and include various hacks to deal with different peculiarities in programming languages. The main problem is that current declarative syntax definition techniques are based on pure context-free grammars, while many constructs found in programming languages require context information. In this paper we propose a parsing framework that embraces context information in its core. Our framework is based on data-dependent grammars, which extend context-free grammars with arbitrary computation, variable binding and constraints. We present an implementation of our framework on top of the Generalized LL (GLL) parsing algorithm, and show how common idioms in syntax of programming languages such as (1) lexical disambiguation filters, (2) operator precedence, (3) indentation-sensitive rules, and (4) conditional preprocessor directives can be mapped to data-dependent grammars. We demonstrate the initial experience with our framework, by parsing more than 20000 Java, C#, Haskell, and OCaml source files

    Disposition of WR-1065 in the liver of tumor-bearing rats following regional vs systemic administration of amifostine

    Full text link
    Purpose —Amifostine is a prodrug in which selectivity is largely determined by the preferential formation and uptake of its cytoprotective metabolite, WR-1065, in normal tissues as a result of differences in membrane-bound alkaline phosphatase activity. It was hypothesized that amifostine may be a good candidate for regional drug delivery to the liver because of its large hepatic extraction and total body clearance. Methods —Rat livers were implanted with Walker-256 tumors. The tumor-bearing rats received 15 min infusions of amifostine (200 mg/kg) via the portal vein or the femoral vein. WR-1065 concentrations in the blood, liver and tumor were measured at various times. Results —The WR-1065 tumor portal dosing AUC 15−60 was 40% of systemic dosing, and tumor concentrations following portal dosing were one-fifth of that following systemic dosing. The portal dosing WR-1065 liver AUC 15−60 was 60% higher than the values for systemic dosing. The liver/tumor concentration ratios of WR-1065 following portal dosing were up to 8-fold higher than the ratio following systemic administration. Unfortunately, systemic exposure to WR-1065 was greater following portal vs systemic amifostine. Conclusions —Amifostine may provide increased liver protection and decreased tumor protection from radio- or chemotherapy when administered by the portal vein. However, portal dosing also increases systemic exposure to WR-1065, which is associated with hypotension. Copyright © 2004 John Wiley & Sons, Ltd.Peer Reviewedhttp://deepblue.lib.umich.edu/bitstream/2027.42/34602/1/380_ftp.pd

    “Maximal-munch” tokenization in linear time

    Full text link

    Macroeconomic Fluctuations, Inequality, and Human Development

    Get PDF
    This paper examines the two-way relationship between inequality and economic fluctuations, and the implications for human development. For years, the dominant paradigm in macroeconomics, which assumed that income distribution did not matter, at least for macroeconomic behavior, ignored inequality--both its role in causing crises and the effect of fluctuations in general, and crises in particular, on inequality. But the most recent financial crisis has shown the errors in this thinking, and these views are finally beginning to be questioned. Economists who had looked at the average equity of a homeowner--ignoring the distribution--felt comfortable that the economy could easily withstand a large fall in housing prices. When such a fall occurred, however, it had disastrous effects, because a large fraction of homeowners owed more on their homes than the value of the home, leading to waves of foreclosure and economic stress. Policy-makers and economists alike have begun to take note: inequality can contribute to volatility and the creation of crises, and volatility can contribute to inequality. Here, we explore the variety of channels through which inequality affects fluctuations and fluctuations affect inequality, and explore how some of the changes in our economy may have contributed to increased inequality and volatility both directly and indirectly. After describing the two-way relationship, the paper discusses hysteresis--the fact that the consequences of an economic downturn can be long-lived. Then, it examines how policy can either mitigate or exacerbate the inequality consequences of economic downturns, and shows how well-intentioned policies can sometimes be counterproductive. Finally, it links these issues to human development, especially in developing countries

    A Federated Design for a Neurobiological Simulation Engine: The CBI Federated Software Architecture

    Get PDF
    Simulator interoperability and extensibility has become a growing requirement in computational biology. To address this, we have developed a federated software architecture. It is federated by its union of independent disparate systems under a single cohesive view, provides interoperability through its capability to communicate, execute programs, or transfer data among different independent applications, and supports extensibility by enabling simulator expansion or enhancement without the need for major changes to system infrastructure. Historically, simulator interoperability has relied on development of declarative markup languages such as the neuron modeling language NeuroML, while simulator extension typically occurred through modification of existing functionality. The software architecture we describe here allows for both these approaches. However, it is designed to support alternative paradigms of interoperability and extensibility through the provision of logical relationships and defined application programming interfaces. They allow any appropriately configured component or software application to be incorporated into a simulator. The architecture defines independent functional modules that run stand-alone. They are arranged in logical layers that naturally correspond to the occurrence of high-level data (biological concepts) versus low-level data (numerical values) and distinguish data from control functions. The modular nature of the architecture and its independence from a given technology facilitates communication about similar concepts and functions for both users and developers. It provides several advantages for multiple independent contributions to software development. Importantly, these include: (1) Reduction in complexity of individual simulator components when compared to the complexity of a complete simulator, (2) Documentation of individual components in terms of their inputs and outputs, (3) Easy removal or replacement of unnecessary or obsoleted components, (4) Stand-alone testing of components, and (5) Clear delineation of the development scope of new components
    corecore