20 research outputs found

    Microbial growth in continuous cultures subject to single and multiple limitations involving carbon and/or nitrogen

    No full text
    Mathematical models which utilize standard reaction kinetics to describe microbial growth are generally successful under carbon-limiting conditions in batch and steady-state continuous cultures. However, when a class of substrate other than the available carbon source is limiting even these models fail in predicting microbial behavior under conditions in which they were previously successful. Regardless of the substrate limitation standard kinetic models also poorly represent microbial dynamics exhibited under transient conditions in continuous cultures since they largely ignore the significance of cellular regulatory processes. Therefore, such models are incapable of describing the transitions between different metabolic pathways when limiting substrates are complementary as well as during transient conditions. The need for a versatile and robust modeling framework to describe microbial behavior when limited by complementary as well as substitutable substrates is clearly present. By combining the ideals of the cybernetic framework with a topological perspective of metabolic pathways this work develops an expanded framework which overcomes the previous difficulties in describing the utilization of complementary substrates while retaining the original results proposed by Ramkrishna and co-workers to describe the utilization of substitutable substrates. The growth characteristics of the bacterium Escherichia coli W are experimentally studied in steady-state and transient continuous cultures. Three limiting conditions are investigated: carbon-limiting, nitrogen-limiting, and dual-limiting. Glucose serves as the required carbon source while NH\sbsp{4}{+} supplies the necessary nitrogen. The proposed model quantitatively describes the results under singly-limiting conditions and accurately identifies the limiting substrate as well as the substrate present in excess. All of the model parameters are estimated from results under singly-limiting conditions or results available in the literature. Without any additional modifications the proposed model is also applied to cultures which are dual-limited by both carbon and nitrogen. The model accurately predicts the occurrence of a transition between the carbon- and nitrogen-limiting conditions. Overall, the agreement between the model simulations and the experimental results under dual-limiting conditions is quantitative as well as qualitative. Operating a fermenter under any one of the three limiting conditions offers distinct advantages which are due primarily to the presence of metabolic regulation. (Abstract shortened with permission of author.

    Modular Data-flow Analysis of Statically Typed Object-oriented Programming Languages

    No full text
    The solution of data-flow analysis of object-oriented programming languages such as C++/Java is needed for many important applications: aggressive code optimization, side-effect analysis, program specialization, program slicing and data-flow-based testing. However, data-flow analysis of object-oriented programming languages is difficult due to a large number of heap-allocated objects whose fields point to other heap-allocated objects (recursive structures), dynamic dispatch, frequent method invocations, a large number of methods, many invocation contexts per method and exceptions. In this thesis we present a new data-flow analysis technique called Relevant Context Inference (RCI) for modular, flow- and context-sensitive data-flow analysis of statically typed object-oriented programming languages such as C++ and Java. This technique has been designed to overcome the above difficulties. RCI has several long sought-after characteristics: 1. It can analyze programs by keeping only a part of the programs in memory at a time, with a constant bound on the number of times a procedure needs to be in memory. 2. It can analyze incomplete programs such as libraries. 3. It can analyze programs that have exceptions. We have built a prototype of RCI for points-to analysis of C++ programs. The empirical results obtained using this prototype and presented in this thesis show that RCI is effective in practice. We present several new complexity characterizations of points-to analysis in the presence of object-oriented language constructs: exceptions and dynamic dispatch. Our results clearly identify the difficult features and indicate approximations that any efficient algorithm has to make. We also present a new approach to data-flow-based testing of object-oriented libraries using RCI . We show how the information computed by RCI can be used for generating relevant test cases.Technical report DCS-TR-40

    Scalable, flow-sensitive type inference for statically typed object-oriented languages

    No full text
    An important problem in the analysis of programs written in object-oriented languages like C++/Java is to determine the values that a pointer variable ( a reference to an object in Java ) can have at run-time. This information can be used for applications such as virtual function resolution, side-e ect analysis, detecting memory errors etc. We address issues involved in designing a scalable, ow-sensitive solution for this and related compile-time analysis questions. First we present a ow-sensitive solution which uses conditional points-to analysis. Although we show that it is better than a solution using alias analysis, it has several limitations which a ect its scalability and precision. Next we identify properties necessary for any scalable, ow-sensitive algorithm solving these problems. Using this characterization, we propose two techniques: preprocessing using types and analysis-usingabstract-values, which remove many of these limitations. We show that these techniques can represent a part of the solution implicitly, and thus facilitate ecient demand-driven computation. We introduce analysis-using-abstract-values by presenting an algorithm for nding the precise solution for may points-to in the presence of only single-level pointers (pointers with a single level of indirection). We show that this algorithm improves the worst-case bound from O(n5 ) to O(n4 ). Finally, we present an extension of this technique for multi-level pointers (pointers with multiple levels of indirection), with examples to show improvements in eciency as well as precision. We also show that this technique can adaptively change ow-sensitivity when it is pro table to do so. We also show that analysis-using-abstract-values aids in modular analysis by allowing the analysis of part of a program and avoiding the need to keep the whole program in memory.Technical report DCS-TR-32

    Data-flow-based testing of object-oriented libraries

    No full text
    Data-flow-based testing is a well-established approach to program testing. Much object-oriented code is written as libraries; hence data-flow-based testing of object-oriented libraries is of great importance. However, finding def-use relationships in libraries written in object-oriented languages (e.g., Java and C++) is difficult because of unknown aliasing between parameters, unknown concrete types of the parameters, dynamic dispatch, and exceptions. We present the first algorithm for finding def-use relationships in object-oriented libraries that overcomes the above difficulties. We also show how the information computed by our algorithm can be used in generating relevant test cases. Our algorithm is flow- and context-sensitive and based on our earlier points-to analysis [CRL99]Technical report DCS-TR-43

    Modular Concrete Type-Inference for Statically Typed Object-oriented Programming Languages

    No full text
    The problem of concrete type-inference for statically typed object-oriented programming languages (e.g., Java, C++) determines at each program point, those objects to which a reference may refer or a pointer may point during execution. We present a new technique called analysis-using-abstract-values which performs modular and demand driven concrete type-inference of a robust subset of Java without threads and exceptions and C++ without exceptions. Our algorithm is provably precise on programs with only single-level types2 and without dynamic dispatch, and has the worst-case complexity of O(n4 ) which is an improvement over the O(n7 ) worst-case bound achievable by applying previous approaches of [RHS95] and [LR91] to this case. For general programs, the algorithm is polynomial-time and computes a safe solution.Technical report DCS-TR-34

    Data-flow-based Testing of Object-Oriented Libraries

    No full text
    Data-flow-based testing is a well-established approach to program testing. Much object-oriented code is written as libraries; hence data-flow-based testing of object-oriented libraries is of great importance. However, finding def-use associations in libraries written in object-oriented languages (e.g., C++ and Java) is difficult because of unknown aliasing between parameters, unknown concrete types of the parameters, dynamic dispatch and exceptions. We present the first algorithm for finding def-uses in object-oriented libraries that overcomes the above difficulties. We also show how the information computed by our algorithm can be used in generating relevant test cases.Technical report DCS-TR-38

    Alternative strategies of for-profit, not-for-profit and state-owned Nepalese microfinance institutions for poverty alleviation and women empowerment

    No full text
    AbstractMicrofinance is the provision of financial services to disadvantaged people and the financially excluded, often with a social mission of poverty alleviation and women empowerment. There are many different forms of microfinance institutions (MFIs): for-profit, not-for-profit and state-owned, all of which use different strategies to improve socio-economic status of their clients. The objective of this paper is to examine the alternative strategies of MFIs in Nepal. Primary data was collected through structured questionnaires from 240 women clients of three MFIs. Parametric and non-parametric tests, and exploratory factor analysis have been applied for analysis. The results show that MFIs have different segmentation strategies for their clients, focusing on income levels, total consumption and the number of children. Surprisingly, it was found that the private MFI was reaching poorer people than other MFIs. Our results show that MFIs look at total consumption expenditure rather than total income. Private MFIs target different activities for giving loans compared to government-owned MFIs. The communication strategy of the MFIs is different since the clients of government-owned MFI are better educated and are more likely to read the newspaper. The exploratory factor analysis shows that respondents perceived poverty alleviation and empowerment. The most influencing factors are related to an increase in consumption expenditure, followed by an increase in capital expenditure

    Complexity of Concrete Type-inference in the Presence of Exceptions

    No full text
    Concrete type-inference for statically typed object-oriented programming languages (e.g., Java, C++) determines at each program point, those objects to which a reference may refer or a pointer may point during execution. A precise compile-time solution for this problem requires a ow-sensitive analysis. Our new complexity results for concrete type-inference distinguish the diculty of the intraprocedural and interprocedural problem for languages with combinations of single-level types3 , exceptions with or without subtyping, and dynamic dispatch. Our results include: { The rst polynomial-time algorithm for concrete type-inference in the presence of exceptions, which handles Java without threads, and C++ ; { Proofs that the above algorithm is always safe and provably precise on programs with single-level types, exceptions without subtyping, and without dynamic dispatch; { Proof that interprocedural concrete type-inference problem with single-level types and exceptions with subtyping, and without dynamic dispatch is PSPACE-hard, while the intraprocedural problem is PSPACE-complete. Other complexity characterizations of concrete type-inference for programs without exceptions are also presented.Technical report DCS-TR-34

    Relevant Context Inference

    No full text
    Relevant context inference (RCI) is a modular technique for flow- and context-sensitive data-flow analysis of statically typed object-oriented programming languages such as C++ and Java. RCI can be used to analyze complete programs as well as incomplete programs such as libraries; this approach does not require that the entire program be memory-resident during the analysis. We show that RCI can handle exceptions. We also discuss application of RCI to unit testing of libraries and explain how the information computed by RCI can be used for generating relevant test cases. RCI is presented in the context of points-to analysis. The empirical evidence obtained from a prototype implementation argues the effectiveness of RCI.Technical report DCS-TR-36

    Drop coalescence in turbulent liquid-liquid dispersions

    No full text
    The evolution of drop size spectra of a purely coalescing system can be predicted using the population balance equation provided the size specific coalescence frequencies of drop pairs are available. Small amounts of surface active matter can have a profound effect on the behavior of a dispersion. A proper understanding of the dependence of coalescence frequencies on physical parameters such as drop-pair sizes, interfacial tension, turbulence energy dissipation and surface viscosities is vital for the control of drop size distributions to meet delicate stipulations in chemical reaction conversion and selectivity, product quality and stability, etc. in many applications. The coalescence frequency is written as the product of the collision frequency and the coalescence efficiency. In the past, models have been developed to derive expressions for the coalescence efficiency based on severe assumptions and as such do not represent a realistic picture of the coalescence process. The coalescence of drops is viewed as the drainage of a continuous phase film separating the drops under the action of forces arising from the contiguous turbulent flow field. A detailed time-scale analysis of competing dynamical processes is employed to derive realistic descriptions of the film drainage process. Such a timescale analysis shows the force acting on the drop pair is in general a random process. The effects of different physical parameters are systematically analyzed by developing models corresponding to limiting situations. Analysis of the models reveals that drop deformation and interfacial mobility influence the coalescence process most significantly. The coalescence efficiency can show reversed dependencies on physical parameters in different situations. The models yield functional forms for the efficiency in terms of dimensionless groups with coefficients to be identified from transient coalescence data. Dynamic simulations of agglomerating populations are performed using expressions of the coalescence efficiency derived from different models. The results indicate that different drop size spectra differ quite significantly emphasizing the need for detailed models for drop coalescence. These size spectra are also investigated for self-preserving behavior by a method developed in this thesis. Self-preserving size spectra present an alternative approach to arrive at the coalescence frequency by the inverse problem approach. (Abstract shortened with permission of author.
    corecore