0000000000350385

AUTHOR

Germán Vidal

0000-0002-1857-6951

showing 4 related works from this author

Towards CNC Programming Using Haskell

2004

Recent advances in Computerized Numeric Control (CNC) have allowed the manufacturing of products with high quality standards. Since CNC programs consist of a series of assembler-like instructions, several high-level languages (e.g., AutoLISP, APL, OMAC) have been proposed to raise the programming abstraction level. Unfortunately, the lack of a clean semantics prevents the development of formal tools for the analysis and manipulation of programs. In this work, we propose the use of Haskell for CNC programming. The declarative nature of Haskell provides an excellent basis to develop program analysis and manipulation tools and, most importantly, to formally prove their correctness.

Functional programmingCorrectnessProgramming languageSemantics (computer science)Computer sciencecomputer.software_genreFormal methodsProgram analysisHigh-level programming languageProgramming abstractionHaskellcomputerAutoLISPcomputer.programming_language
researchProduct

Run-time profiling of functional logic programs

2005

In this work, we introduce a profiling scheme for modern functional logic languages covering notions like laziness, sharing, and non-determinism. Firstly, we instrument a natural (big-step) semantics in order to associate a symbolic cost to each basic operation (e.g., variable updates, function unfoldings, case evaluations). While this cost semantics provides a formal basis to analyze the cost of a computation, the implementation of a cost-augmented interpreter based on it would introduce a huge overhead. Therefore, we also introduce a sound transformation that instruments a program such that its execution—under the standard semantics—yields not only the corresponding results but also the a…

Profiling (computer programming)Functional programmingTheoretical computer sciencebusiness.industryComputer scienceSubroutineComputationSoftware developmentProgram transformationcomputer.software_genreSemanticsSemantics of logicLogical programmingbusinesscomputerInterpreter
researchProduct

An offline partial evaluator for curry programs

2005

Narrowing-driven partial evaluation is a powerful technique for the specialization of functional logic programs. In this paper, we describe the implementation of a narrowing-driven partial evaluator for Curry programs which follows the offline approach to ensuring termination. Although the new partial evaluator is less precise than previous (online) partial evaluators for Curry, it is much faster and, thus, allows the specialization of larger programs.

Computer scienceProgramming languageSpecialization (functional)Currycomputer.software_genrecomputerPartial evaluationcomputer.programming_languageProceedings of the 2005 ACM SIGPLAN workshop on Curry and functional logic programming
researchProduct

Fast narrowing-driven partial evaluation for inductively sequential programs

2005

Narrowing-driven partial evaluation is a powerful technique for the specialization of (first-order) functional and functional logic programs. However, although it gives good results on small programs, it does not scale up well to realistic problems (e.g., interpreter specialization). In this work, we introduce a faster partial evaluation scheme by ensuring the termination of the process offline . For this purpose, we first characterize a class of programs which are quasi-terminating , i.e., the computations performed with needed narrowing—the symbolic computation mechanism of narrowing-driven partial evaluation—only contain finitely many different terms (and, thus, partial evaluation termi…

Scheme (programming language)Class (computer programming)Functional programmingTheoretical computer scienceComputer scienceComputationProgram transformationcomputer.software_genreSymbolic computationComputer Graphics and Computer-Aided DesignPartial evaluationProgram analysisLogical programmingSpecialization (logic)Automatic programmingcomputerSoftwareInterpretercomputer.programming_languageProceedings of the tenth ACM SIGPLAN international conference on Functional programming
researchProduct