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

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

fwdays
August 14, 2014

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

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

fwdays

August 14, 2014
Tweet

More Decks by fwdays

Other Decks in Programming

Transcript

  1. 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
  2. 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)
  3. 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.
  4. Genera basics * Extensible generic operations * Automatic storage (memory)

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

    architecture * Support for incremental change * Reusability * Extensibility * "Self-revealing" system
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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