6 ms·
There's many topics in this area. Ones that are well known in industry are algorithmic complexity theory and type theory. Ones that are less well known include
by Geminidog 6y ago
There's many topics in this area. Ones that are well known in industry are algorithmic complexity theory and type theory. Ones that are less well known include the two resources below.
http://www4.di.uminho.pt/~jno/ps/pdbc.pdf http://www4.di.uminho.pt/~jno/ps/pdbc.pdf
https://softwarefoundations.cis.upenn.edu https://softwarefoundations.cis.upenn.edu
I suggest you get use to ML style languages before diving into those two resources (Haskell is a good choice) as it's not easy to learn this stuff and I think it's also part of the reason why it hasn't been so popular in industry.
The first resource builds towards a prolog like programming style where you feed the computer a specification and the computer produces a program that fits the specification.
The second resource involves utilizing a language with a type checker so powerful that the compiler can fully prove your program correct outside of just types.
Both are far away from the ideal that the industry is searching for but in terms of optimizing and formalizing design these two resources are examples of the right approach to improving software design.
I haven't found anything specifically on the organization of software modules so as far as I know none exists. But given the wide scope of software research I'm sure at least one paper has talked about this concept.
- Twisol 6y ago> I haven't found anything specifically on the organization of software modules so as far as I know none exists. Parnas (1971) is seminal on this topic. https://apps.dtic.mil/sti/pdfs/AD0773837.pdf https://apps.dtic.mil/sti/pdfs/AD0773837.pdf
- Geminidog 6y agoSure this paper introduces the concept of modules in software back when modules were non-existent. As far as I know, there's nothing on the optimal way to organize (keyword) modules.
- Twisol 6y ago> Sure this paper introduces the concept of modules in software back when modules were non-existent. No... that's not correct. The very first non-clerical page quotes from a textbook discussing modular systems, and Parnas himself notes a distinct lack of material on how to actually organize and break down the system into modules. The paper is literally called "On the criteria to be used in decomposing systems into modules." It is prudent to at least read the preexisting material if you are going to dismiss it.
- Geminidog 6y agoMy mistake, I skimmed it and saw assembly language and I assumed it was that really early seminal paper that introduced modules to the programming world. Obviously my guess was wrong.