diff --git a/.gitignore b/.gitignore index 7e3c5d2..d87b1f2 100644 --- a/.gitignore +++ b/.gitignore @@ -172,5 +172,8 @@ node_modules .metals .DS_Store +accreditation/ +ecosystem/ +scratch_pad/ journal/ -accreditation.txt \ No newline at end of file +applications/ \ No newline at end of file diff --git a/0_computation_models/0_general/0_declarative/0_def.txt b/0_computation_models/0_general/0_declarative/0_declarative.txt similarity index 100% rename from 0_computation_models/0_general/0_declarative/0_def.txt rename to 0_computation_models/0_general/0_declarative/0_declarative.txt diff --git a/0_computation_models/0_general/0_declarative/1_programming_model.txt b/0_computation_models/0_general/0_declarative/1_programming_model.txt new file mode 100644 index 0000000..31f5b67 --- /dev/null +++ b/0_computation_models/0_general/0_declarative/1_programming_model.txt @@ -0,0 +1,18 @@ +def programming_model: + - formal: ??? + + - in words: ??? + + - plain english: ??? + + - intuition: ??? + + - properties: ??? + + - examples: ??? + + - use cases: ??? + + - proof: ??? + +References: ??? diff --git a/0_computation_models/0_general/1_concurrent_declarative/0_def.txt b/0_computation_models/0_general/1_declarative_concurrency/0_declarative_concurrency.txt similarity index 100% rename from 0_computation_models/0_general/1_concurrent_declarative/0_def.txt rename to 0_computation_models/0_general/1_declarative_concurrency/0_declarative_concurrency.txt diff --git a/0_computation_models/0_general/1_declarative_concurrency/1_programming_model.txt b/0_computation_models/0_general/1_declarative_concurrency/1_programming_model.txt new file mode 100644 index 0000000..31f5b67 --- /dev/null +++ b/0_computation_models/0_general/1_declarative_concurrency/1_programming_model.txt @@ -0,0 +1,18 @@ +def programming_model: + - formal: ??? + + - in words: ??? + + - plain english: ??? + + - intuition: ??? + + - properties: ??? + + - examples: ??? + + - use cases: ??? + + - proof: ??? + +References: ??? diff --git a/0_computation_models/0_general/2_lazy_declarative/0_def.txt b/0_computation_models/0_general/2_lazy_declarative/0_lazy_declarative.txt similarity index 100% rename from 0_computation_models/0_general/2_lazy_declarative/0_def.txt rename to 0_computation_models/0_general/2_lazy_declarative/0_lazy_declarative.txt diff --git a/0_computation_models/0_general/2_lazy_declarative/1_programming_model.txt b/0_computation_models/0_general/2_lazy_declarative/1_programming_model.txt new file mode 100644 index 0000000..31f5b67 --- /dev/null +++ b/0_computation_models/0_general/2_lazy_declarative/1_programming_model.txt @@ -0,0 +1,18 @@ +def programming_model: + - formal: ??? + + - in words: ??? + + - plain english: ??? + + - intuition: ??? + + - properties: ??? + + - examples: ??? + + - use cases: ??? + + - proof: ??? + +References: ??? diff --git a/0_computation_models/0_general/3_stateful/0_def.txt b/0_computation_models/0_general/3_stateful/0_stateful.txt similarity index 100% rename from 0_computation_models/0_general/3_stateful/0_def.txt rename to 0_computation_models/0_general/3_stateful/0_stateful.txt diff --git a/0_computation_models/0_general/3_stateful/1_programming_model.txt b/0_computation_models/0_general/3_stateful/1_programming_model.txt new file mode 100644 index 0000000..31f5b67 --- /dev/null +++ b/0_computation_models/0_general/3_stateful/1_programming_model.txt @@ -0,0 +1,18 @@ +def programming_model: + - formal: ??? + + - in words: ??? + + - plain english: ??? + + - intuition: ??? + + - properties: ??? + + - examples: ??? + + - use cases: ??? + + - proof: ??? + +References: ??? diff --git a/0_computation_models/0_general/4_object_orientated/0_def.txt b/0_computation_models/0_general/4_object_orientated/0_object_orientated.txt similarity index 100% rename from 0_computation_models/0_general/4_object_orientated/0_def.txt rename to 0_computation_models/0_general/4_object_orientated/0_object_orientated.txt diff --git a/0_computation_models/0_general/4_object_orientated/1_programming_model.txt b/0_computation_models/0_general/4_object_orientated/1_programming_model.txt new file mode 100644 index 0000000..31f5b67 --- /dev/null +++ b/0_computation_models/0_general/4_object_orientated/1_programming_model.txt @@ -0,0 +1,18 @@ +def programming_model: + - formal: ??? + + - in words: ??? + + - plain english: ??? + + - intuition: ??? + + - properties: ??? + + - examples: ??? + + - use cases: ??? + + - proof: ??? + +References: ??? diff --git a/0_computation_models/0_general/5_shared_state_concurrent/0_def.txt b/0_computation_models/0_general/5_shared_state_concurrency/0_shared_state_concurrency.txt similarity index 100% rename from 0_computation_models/0_general/5_shared_state_concurrent/0_def.txt rename to 0_computation_models/0_general/5_shared_state_concurrency/0_shared_state_concurrency.txt diff --git a/0_computation_models/0_general/5_shared_state_concurrency/1_programming_model.txt b/0_computation_models/0_general/5_shared_state_concurrency/1_programming_model.txt new file mode 100644 index 0000000..31f5b67 --- /dev/null +++ b/0_computation_models/0_general/5_shared_state_concurrency/1_programming_model.txt @@ -0,0 +1,18 @@ +def programming_model: + - formal: ??? + + - in words: ??? + + - plain english: ??? + + - intuition: ??? + + - properties: ??? + + - examples: ??? + + - use cases: ??? + + - proof: ??? + +References: ??? diff --git a/0_computation_models/0_general/6_message_passing_concurrent/0_def.txt b/0_computation_models/0_general/6_message_passing_concurrency/0_message_passing_concurrency.txt similarity index 100% rename from 0_computation_models/0_general/6_message_passing_concurrent/0_def.txt rename to 0_computation_models/0_general/6_message_passing_concurrency/0_message_passing_concurrency.txt diff --git a/0_computation_models/0_general/6_message_passing_concurrency/1_programming_model.txt b/0_computation_models/0_general/6_message_passing_concurrency/1_programming_model.txt new file mode 100644 index 0000000..31f5b67 --- /dev/null +++ b/0_computation_models/0_general/6_message_passing_concurrency/1_programming_model.txt @@ -0,0 +1,18 @@ +def programming_model: + - formal: ??? + + - in words: ??? + + - plain english: ??? + + - intuition: ??? + + - properties: ??? + + - examples: ??? + + - use cases: ??? + + - proof: ??? + +References: ??? diff --git a/0_computation_models/0_general/7_relational/0_def.txt b/0_computation_models/0_general/7_relational/0_relational.txt similarity index 100% rename from 0_computation_models/0_general/7_relational/0_def.txt rename to 0_computation_models/0_general/7_relational/0_relational.txt diff --git a/0_computation_models/0_general/7_relational/1_programming_model.txt b/0_computation_models/0_general/7_relational/1_programming_model.txt new file mode 100644 index 0000000..31f5b67 --- /dev/null +++ b/0_computation_models/0_general/7_relational/1_programming_model.txt @@ -0,0 +1,18 @@ +def programming_model: + - formal: ??? + + - in words: ??? + + - plain english: ??? + + - intuition: ??? + + - properties: ??? + + - examples: ??? + + - use cases: ??? + + - proof: ??? + +References: ??? diff --git a/0_computation_models/0_general/8_specialised_models/0_def.txt b/0_computation_models/1_specialized/0_graphical_user_interface_programming/0_graphical_user_interface_programming.txt similarity index 100% rename from 0_computation_models/0_general/8_specialised_models/0_def.txt rename to 0_computation_models/1_specialized/0_graphical_user_interface_programming/0_graphical_user_interface_programming.txt diff --git a/0_computation_models/1_specialized/0_graphical_user_interface_programming/1_programming_model.txt b/0_computation_models/1_specialized/0_graphical_user_interface_programming/1_programming_model.txt new file mode 100644 index 0000000..31f5b67 --- /dev/null +++ b/0_computation_models/1_specialized/0_graphical_user_interface_programming/1_programming_model.txt @@ -0,0 +1,18 @@ +def programming_model: + - formal: ??? + + - in words: ??? + + - plain english: ??? + + - intuition: ??? + + - properties: ??? + + - examples: ??? + + - use cases: ??? + + - proof: ??? + +References: ??? diff --git a/0_computation_models/1_specialized/0_distributed/0_def.txt b/0_computation_models/1_specialized/1_distributed_programming/0_distributed_programming.txt similarity index 100% rename from 0_computation_models/1_specialized/0_distributed/0_def.txt rename to 0_computation_models/1_specialized/1_distributed_programming/0_distributed_programming.txt diff --git a/0_computation_models/1_specialized/1_distributed_programming/1_programming_model.txt b/0_computation_models/1_specialized/1_distributed_programming/1_programming_model.txt new file mode 100644 index 0000000..31f5b67 --- /dev/null +++ b/0_computation_models/1_specialized/1_distributed_programming/1_programming_model.txt @@ -0,0 +1,18 @@ +def programming_model: + - formal: ??? + + - in words: ??? + + - plain english: ??? + + - intuition: ??? + + - properties: ??? + + - examples: ??? + + - use cases: ??? + + - proof: ??? + +References: ??? diff --git a/0_computation_models/1_specialized/2_constraint_programming/0_constraint_programming.txt b/0_computation_models/1_specialized/2_constraint_programming/0_constraint_programming.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/0_computation_models/1_specialized/2_constraint_programming/0_constraint_programming.txt @@ -0,0 +1 @@ + diff --git a/0_computation_models/1_specialized/2_constraint_programming/1_programming_model.txt b/0_computation_models/1_specialized/2_constraint_programming/1_programming_model.txt new file mode 100644 index 0000000..31f5b67 --- /dev/null +++ b/0_computation_models/1_specialized/2_constraint_programming/1_programming_model.txt @@ -0,0 +1,18 @@ +def programming_model: + - formal: ??? + + - in words: ??? + + - plain english: ??? + + - intuition: ??? + + - properties: ??? + + - examples: ??? + + - use cases: ??? + + - proof: ??? + +References: ??? diff --git a/README.md b/README.md index 9650948..c6519b5 100644 --- a/README.md +++ b/README.md @@ -3,34 +3,48 @@ ![build status](https://github.com/praisetompane/computer_programming/actions/workflows/computer_programming.yaml/badge.svg)
## Objectives -- Attempts to define a unified discipline of computer programming independent of programming language implementations. +- Attempts to define a unified scientific discipline of computer programming independent of programming language implementations. ## Definitions: -- def programming concepts (Van Roy, Haridi S. 2004:xiii): - - these are organized in terms of/in relation to computation models: - - def computation model: formal system, that defines how computations are done (Van Roy, Haridi S. 2004:xiii): - - based on a simple core language called its kernel language (Van Roy, Haridi S. 2004:xiv) - - def kernel language: TBD - - defined in terms of (Van Roy, Haridi S. 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 (Van Roy, Haridi S. 2004:29). - - def programming techniques: TBD - - def design principles: TBD - - set of techniques for: - - reasoning about programs - -- def creative extension principle: main criterion for when and which concept to add to a computation mode/kernel language (Van Roy, Haridi S. 2004:xiv) - -- def computer programming: the act of extending or changing a system's functionality (Van Roy, Haridi S. 2004:xv). +- 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 computer programming: the act of extending or changing a system's functionality (Haridi and Van Roy, 2004:xv). - practitioners: - general users: by changing the setting of an alarm - expert users: by writing new features for the system or updating existing diff --git a/todo.txt b/todo.txt index 3fe6add..12031ed 100755 --- a/todo.txt +++ b/todo.txt @@ -2,6 +2,7 @@ - lectures: - readings: - Van Roy, P. 2004. Concepts, Techniques, and Models of Computer Programming + - current: 1 Introduction to Programming Concepts pg 31 - assignments: - exams: