Skip to content
This repository was archived by the owner on Apr 13, 2025. It is now read-only.

Attempts to define a unified discipline of computer programming independent of programming language implementations.

License

Notifications You must be signed in to change notification settings

praisetompane/computer_programming

Repository files navigation

What is Computer Programming?

build status

Objectives

  • Attempts to define a unified scientific discipline of computer programming independent of programming language implementations.

Definitions

  • def computer programming: the act of extending or changing a system's functionality (Haridi and Van Roy, 2004:xv).

    • formal: ???

      • in words: ???
    • intuition: ???

    • properties:

      • learning order:

        • concepts and techniques
        • algorithms and data structures
        • program design and software engineering
      • practitioners:

        • general users: by changing the setting of an alarm
        • expert users: by writing new features for the system or updating existing
    • examples:

      • extending a system's functionality:
        • writing a new application for iOS
      • changing a system's functionality:
        • moving iOS from using 4 digits to 7 digits passwords
    • use cases: ???

    • proof: ???

  • def computation model(Haridi and Van Roy, 2004:xiii):

    • formal: ???

      • in words: formal system, that defines how computations are done
    • plain english: ???

    • intuition: ???

    • properties:

      • based on a simple core language called its kernel language (Haridi and Van Roy, 2004:xiv)

        • def kernel language: TBD
      • defined in terms of (Haridi and Van Roy, 2004:xiii):

        • data types
        • operations
        • a programming language

        NB there are other ways to define computation models: - finite automata (Sipser, 2012:xvii)

      • provides:

        • a programming model:
          • def programming model: a set of programming techniques and design principles used to write programs in the language of the computation model (Haridi and Van Roy, 2004:29).
            • def programming techniques: TBD
            • def design principles: TBD
        • set of techniques for:
          • reasoning about programs
    • examples: ???

    • use cases: ???

    • proof: ???

  • def creative extension principle: main criterion for when and which concept to add to a computation mode/kernel language (Haridi and Van Roy, 2004:xiv)

  • def technology(Haridi and Van Roy, 2004:xiii): a tool or concept that enables us to do something.

  • def λ calculus:

  • def π calculus:

  • def abstractions:

Dependencies

Setup Instructions

History

Notation

Tools

State of the art

Community

Computer Programmers

Spell Check

pipenv shell
pyspelling -c spellcheck.yaml

References

  • Van Roy P, Haridi S. 2004. Concepts, Techniques and Models of Computer Programming. The MIT Press.
  • Sipser, M. 2012. Introduction to the Theory of Computation. 3rd ed. Cengage Learning.

Legend

Q: Question for later research
MYINC: My Insight/Conjecture [Could Be Unoriginal/False and Likely Is]

Disclaimer: This is an ongoing and incomplete project to unpack these concepts and serves as my distributed memory.

About

Attempts to define a unified discipline of computer programming independent of programming language implementations.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published