Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Lisp-машина с современной точки зрения

Dd3f18c87b851137000c7427d7bd5d32?s=47 fwdays
August 14, 2014

Lisp-машина с современной точки зрения

Всеволод Демкин



August 14, 2014

More Decks by fwdays

Other Decks in Programming


  1. Today's view of the Lisp Machine Vsevolod Dyomkin Most Functional

    Day 2014
  2. A bit about me * Lisp programmer * Research lead

    at Grammarly * Teacher at KPI: Operating Systems * Links: http://lisp-univ-etc.blogspot.com http://github.com/vseloved http://twitter.com/vseloved
  3. What is Lisp Machine? * Special hardware environment * Software

  4. Hardware * Data type testing (tagged architecture) * CDR coding

    support * Run-time array bounds checking * Incremental garbage collection * Single address-space * Support for multiple execution threads (processes)
  5. Software * Open architecture * Intelligence * Extensibility

  6. Genera The rest of the talk is based on: http://lispm.de/genera-concepts

  7. OS Traditional operating systems require the user to interact with

    a command monitor in order to access applications and the facilities of the operating system. The Lisp Environment, consisting of all the function and data objects in virtual memory. Activities are just collections of functions and data.
  8. Genera basics * Extensible generic operations * Automatic storage (memory)

    management * Dynamic linking * Generic networking * Single address space for processes * Event-driven scheduler * Program-building assistance
  9. Genera concepts * Data-level integration * Open system * Layered

    architecture * Support for incremental change * Reusability * Extensibility * "Self-revealing" system
  10. Data-level Integration

  11. Data-level Integration * All functions and data share the same

    virtual memory * Memory - a set of data objects, not uninterpreted bits or bytes * Each data object contains knowledge of its own type * Programs can communicate with each other via shared data
  12. Open Architecture

  13. Open Architecture * The concept of a world * You

    can change anything that is part of Genera Ways to use and change Genera: * Use what's there * Use what's almost there (through hooks) * Extend through inheritance/polymorphism * Replace what's there Replacing part of the open system is usually done by bypassing the original
  14. Transparent system * Always available status information * Peek utility

    * Examiner (static inspection) * Inspector (dynamic inspection) * Always available debugger * Document examiner provides context-sensitive documentation + mouse documentation display
  15. Program-building

  16. Program-building support * Always-available debugger * Database of caller, source,

    arguments & other program information * Structured view of the source code * SCT configuration manager with dependency management, file versioning, patch management, and distribution generation
  17. Recap * Data-level integration permits the construction of integrated, communicating

    tools * Reusability permits to start a new project from a much higher base * Open architecture allows to explore an idea as far as your own creativity takes you rather than as far as the Genera developers will let you go
  18. Learn more * Kalman Reti, the Last Symbolics Developer, Speaks

    of Lisp Machines http://www.loper-os.org/?p=932 * A few things I know about LISP Machines http://fare.tunes.org/LispM.html * LoperOS on Lisp Machines http://www.loper-os.org/?cat=10 * Ergonomics of the Symbolics Lisp Machine - Reflections on the Developer Productivity http://lispm.de/symbolics-lisp-machine-ergo nomics