Changes for page Overview
To version 7.1
edited by Andrea Omicini
on 23/07/2022 01:21
on 23/07/2022 01:21
Change comment:
There is no comment for this version
Summary
-
Page properties (5 modified, 0 added, 0 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,1 +1,0 @@ 1 -Overview - Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. aricci1 +XWiki.AndreaOmicini - Syntax
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki 1.01 +XWiki 2.1 - Tags
-
... ... @@ -1,1 +1,0 @@ 1 -Menu.1.2 - Content
-
... ... @@ -1,23 +1,23 @@ 1 += Overview = 1 1 2 -Every paradigm, computational model, or language is based on some kind of driving abstract or high level metaphors, which are often are essential to define the main characteristics of the paradigm abstractions. simp Ametaphors are taken from humans cooperative working environments, where "systems" are composed by individual autonomous entities (humans), encapsulating different kind of skills, which actively carry on some kind of task or goal oriented activities, both individually and cooperatively by interacting with other individuals and suitably exploiting resources and tools, artifacts to use a unique term, available in the environment.3 +Every paradigm, computational model, or language is based on some kind of driving abstract or high level metaphors, which are often are essential to define the main characteristics of the paradigm abstractions. {{simpa/}} metaphors are taken from humans cooperative working environments, where "systems" are composed by individual autonomous entities (humans), encapsulating different kind of skills, which actively carry on some kind of task or goal oriented activities, both individually and cooperatively by interacting with other individuals and suitably exploiting resources and tools, artifacts to use a unique term, available in the environment. 3 3 4 -simp Abrings this metaphor down to computer programming, conceiving a software systems as one or multiple *workspaces* where ensemble of autonomous entities called *agents* execute their task-oriented activities and interact by co-constructing, sharing and using *artifacts*, analogously to the human case.5 +{{simpa/}} brings this metaphor down to computer programming, conceiving a software systems as one or multiple **workspaces** where ensemble of autonomous entities called **agents** execute their task-oriented activities and interact by co-constructing, sharing and using **artifacts**, analogously to the human case. 5 5 6 -So, while classes and objects are still used to represent basic data structures and abstract data types, in simp Aagents and artifacts are used as basic high-level building blocks to decompose and structure complex systems, composed by ensemble of interacting and coordinating parts.7 +So, while classes and objects are still used to represent basic data structures and abstract data types, in {{simpa/}} agents and artifacts are used as basic high-level building blocks to decompose and structure complex systems, composed by ensemble of interacting and coordinating parts. 7 7 8 8 In particular: 9 9 10 -* *agents* can be used to model as first -class abstraction pro-active entities, i.e. entities programmed so as to autonomously execute some kind activity-composed by one or more activities-encapsulating the control of such activity;11 -* *artifacts* can be used to model as first -class abstraction what is used or constructed by agents during their activities, including resources, tools, devices, typically passive entities encapsulating some kind of functionality.12 -* *workspaces* are the logical place where agents and artifacts are immersed, used to give a topology to the overall activities, and then partition the application environment. 11 +* **agents** can be used to model as first-class abstraction pro-active entities, i.e. entities programmed so as to autonomously execute some kind activity - composed by one or more activities - encapsulating the control of such activity; 12 +* **artifacts** can be used to model as first-class abstraction what is used or constructed by agents during their activities, including resources, tools, devices, typically passive entities encapsulating some kind of functionality. 13 +* **workspaces** are the logical place where agents and artifacts are immersed, used to give a topology to the overall activities, and then partition the application environment. 13 13 14 14 Objects and classes are used as basic abstractions to define data structures to build agents and artifacts. 15 15 16 -We believe that this approach to computer programming can be a good candidate to for being a general-purpose easy to learn and use programming model for multi-core / concurrent / distributed programming, so as to make it easier the design and development of those software systems that more and more are target of mainstream software development. According to several computer scientists and engineers, concurrency is going to play a fundamental role in mainstream software development, both for distributed / network -based and standalone applications. Quoting Herb Sutter and James Larus, Microsoft (ACM Queue, 3(7), Sept. 2005), among the others:17 +We believe that this approach to computer programming can be a good candidate to for being a general-purpose easy to learn and use programming model for multi-core / concurrent / distributed programming, so as to make it easier the design and development of those software systems that more and more are target of mainstream software development. According to several computer scientists and engineers, concurrency is going to play a fundamental role in mainstream software development, both for distributed / network-based and standalone applications. Quoting Herb Sutter and James Larus, Microsoft (ACM Queue, 3(7), Sept. 2005), among the others: 17 17 19 +//"The biggest sea change in software development since the OO revolution is knocking at the door, and its name is Concurrency ... The concurrency revolution is primarily a software revolution. The difficult problem is not building multicore hardware, but programming it in a way that lets mainstream applications benefit from the continued exponential growth in CPU performance ... Today concurrent programming languages and tools are at a level comparable to sequential programming at the beginning of the structured programming era. Semaphores and coroutines are the assembler of concurrency, and locks and threads are the slightly higher-level structured constructs of concurrency. What we need is OO for concurrency - higher-level abstractions that help build concurrent programs, just as object-oriented abstractions help build large componentized programs."// 18 18 19 - ~~"The biggest sea change in software development since the OO revolutionis knockingatthe door, anditsnameis Concurrency ... Theconcurrency revolutionisprimarilyasoftwarerevolution. The difficultproblem is not buildingmulticore hardware, butprogramming it inawaythat letsmainstream applicationsbenefitfrom thecontinuedexponentialgrowthn CPU performance ... Today concurrent programming languages and tools are at alevelcomparable to sequentialprogrammingat thebeginningofthestructuredprogrammingera. Semaphores andcoroutines are the assemblerofconcurrency,andlocksandthreadsaretheslightly higher-levelstructuredconstructsof concurrency.Whatweneedis OO for concurrency- higher-levelabstractionsthathelpbuild concurrentprograms,just as object-orientedabstractions help build largecomponentized programs."~~21 +Following this perspective, in {{simpa/}} agents and artifacts abstractions can be used as higher-level building blocks to design and build concurrent applications, not providing just mechanisms but a new (methodological) perspective to be exploit for developing software systems. 20 20 21 - 22 -Following this perspective, in simpA agents and artifacts abstractions can be used as higher-level building blocks to design and build concurrent applications, not providing just mechanisms but a new (methodological) perspective to be exploit for developing software systems. 23 - 23 +{{include reference="Environment" excludeFirstHeading="true"/}}