Towards CNC Programming Using Haskell

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3315)


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.


Computer Numerical Control Functional Programming Formal Tool Robot Hand Computerize Numeric Control 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Bird, R.: Introduction to Functional Programming Using Haskell, 2nd edn. Prentice-Hall, Englewood Cliffs (1998)Google Scholar
  2. 2.
    Carr, H., Holt, R.: The AutoLISP Platform for Computer Aided Design. In: 40th Anniversary of Lisp Conference: Lisp in the Mainstream, Berkeley, California (November 1998)Google Scholar
  3. 3.
    International Standardization for Organizations. Technical committee: ISO/TC 184/SC 1. Numerical control of machines – Program format and definition of address words (September 1982)Google Scholar
  4. 4.
    Hughes, J.: Why Functional Programming Matters. Computer Journal 32(2), 98–107 (1989)CrossRefGoogle Scholar
  5. 5.
    Kieburtz, R.: P-logic: Property Verification for Haskell Programs. The Programatica Project (2002),
  6. 6.
    Kieburtz, R.: Automated Soundness Checking of a Programming Logic for haskell. The Programatica Project (2003), available at
  7. 7.
    Kramer, B.: The AutoCADET’s Guide to Visual LISP. CMP Books (2001)Google Scholar
  8. 8.
    Michaloski, J., Birla, S., Yen, C.J., Igou, R., Weinert, G.: An Open System Framework for Component-Based CNC Machines. ACM Computing Surveys 32(23) (2000)Google Scholar
  9. 9.
    Melham, T.F., Gordon, M.J.C.: TIntroduction to HOL. Cambridge University Press, Cambridge (1993)Google Scholar
  10. 10.
    Otto, T.P.: An apl compiler. In: International Conference on APL, editor, Proceedings of the international conference on APL-Berlin-2000 conference, pp. 186–193. ACM Press, New York (2000)CrossRefGoogle Scholar
  11. 11.
    Paulson, L.C.: The Foundation of a Generic Theorem Prover. Journal of Automated Reasoning 5(3), 363–397 (1989)zbMATHCrossRefMathSciNetGoogle Scholar
  12. 12.
    Peyton Jones, S. (ed.): Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press, Cambridge (2003)Google Scholar
  13. 13.
    Rawls, R., Hagen, M.: AutoLISP Programming: Principles and Techniques. Goodheart-Willcox Co (1998)Google Scholar
  14. 14.
    Seames, W.: CNC: Concepts and Programming. Delmar Learning (1994)Google Scholar
  15. 15.
    Thompson, S.: Formulating Haskell. Technical Report 29-92*, University of Kent, Computing Laboratory, University of Kent, Canterbury, UK (November 1992)Google Scholar
  16. 16.
    Richard, J., Maeder, W., Nguyen, V., Stark, J.: Standardisation of the Manufacturing Process: the IMS STEP-NC Project. In: Proc. of the IPLnet Workshop (2002)Google Scholar
  17. 17.
    Vos., T.E.J.: Inductive Datatypes with Negative Occurrences in HOL. In: Workshop on Thirty Five years of Automath, Edinburgh, UK (2002)Google Scholar
  18. 18.
    Wadler, P.: The Essence of Functional Programming. In: Proceedings of the Symposium on Principles of Programming Languages (POPL 1992), Albuquerque. ACM Press, New York (1992)Google Scholar
  19. 19.
    Weck, M., Wolf, J., Kiritsis, D.: Step-nc The STEP Compliant NC Programming Interface: Evaluation and Improvement of the Modern Interface. In: Proc. of the ISM Project Forum 2001 (2001)Google Scholar
  20. 20.
    Wenzel, M.: Type Classes and Overloading in Higher-Order Logic. In: Gunter, E., Felty, A. (eds.) Proceedings of the 10th International Conference on Theorem Proving in Higher Order Logics (TPHOLs 1997), pp. 307–322. Murray Hill, New Jersey (1997)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  1. 1.CIIDETSantiago de QuerétaroMexico
  2. 2.DSICTech. University of ValenciaValenciaSpain

Personalised recommendations