Phuong-Lan Nguyen

Learn More
The application of nanotechnology in biological research is beginning to have a major impact leading to the development of new types of tools for human health. One focus of nanobiotechnology is the development of nanoparticle-based formulations for use in drug or gene delivery systems. However most of the nano probes currently in use have varying levels of(More)
Techniques to reduce the memory footprint of an application include representation sharing between multiple copies of some data. Representation sharing has been implemented through hash-consing in functional languages. Representation sharing for Prolog was not given that much attention in the past. Here, representation sharing is defined for Prolog(More)
A simple addition to findall/3 achieves sharing between answers in the solution list and the input to findall/3. This reduces the time and space complexity of some queries. Its overhead is extremely small. It can be integrated in any WAM-like Prolog implementation. Abstract. A simple addition to findall/3 achieves sharing between answers in the solution(More)
The TOAM reuses eagerly allocated stack frames, while the WAM avoids to allocate environments. This is investigated by using the tak/4 benchmark as an inital case study for better understanding what one can expect from environment reuse for deterministic predicates in the WAM. Additionally, artificial programs are used to amplify the findings. The(More)
The original WAM uses one stack on which the choice points and the environements are allocated in an interleaved way. Some WAM implementations currently use a separate stack for these two data structures. We evaluate experimentally the difference between these two choices within hProlog and without changing any other feature of the system. The experiments(More)
Starting from dProlog, we developed hProlog to become a back end for HAL. We incorporated attributed variables, the data types string and character and support for bigints. We describe how we managed to cater for all these, while not further restricting the heap address space and without efficiency loss. We explain the rationale behind some decisions, the(More)
The WAM traditionally optimizes for lists in two ways: by a list-specialized instruction set (LSIS) and by a list-specialized data representation (LSDR). These are partly orthogonal and their relative merit is unknown. In this paper, we perform an experiment within hProlog, which compares the schemas (LSIS+LSDR), (LSIS) and (). If no LSDR is used, it means(More)