Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"

Programming Concepts

by aartist (Monk)
on Dec 29, 2017 at 10:59 UTC ( #1206422=perlmeditation: print w/replies, xml ) Need Help??

Before a long time, I had taken a course, 'Programming Languages'. It discussed the various feature of programming languages and how it is implmented in a particular language. That could be the most interesting subject considering that I have spent few years in Programming. Unfortuanately much of that learning is lost in learning the syntax of the languages. Now, that I have programmed in various languages, I like to go to the basics again for my understanding.

I like to know "what are the various programming concepts on which various languages have been designed", "Where do they differ" etc. So that, I can undertand or pickup any language based on concepts and pickup implementation of that concept later in my learning easily. I l like to see this in terms of Perl, Python, Java, Javascript and "your favorite language".

Also now that, there are variety of framework for each language, I like to gain similar knowledge as on which concepts these framework are designed. Each frame work could have been designed based on different concepts.

Any references would be useful.


Replies are listed 'Best First'.
Re: Programming Concepts
by LanX (Archbishop) on Dec 30, 2017 at 14:04 UTC
    I think you are looking for Programming paradigms.

    Please note the final remark:

    > Most programming languages supports more than one programming paradigm to allow programmers to use the most suitable programming style and associated language constructs for a given job.

    Cheers Rolf
    (addicted to the Perl Programming Language and ☆☆☆☆ :)
    Wikisyntax for the Monastery

Re: Programming Concepts
by karlgoethebier (Monsignor) on Dec 30, 2017 at 17:37 UTC

    I followed the link LanX provided and to my real surprise i found Programming Paradigms for Dummies by Peter Van Roy. This stuff doesn't look bad IMHO. May be it's not a bad starting point. Hard stuff - don't be fooled by the funny title.

    Best regards, Karl

    «The Crux of the Biscuit is the Apostrophe»

    perl -MCrypt::CBC -E 'say Crypt::CBC->new(-key=>'kgb',-cipher=>"Blowfish")->decrypt_hex($ENV{KARL});'Help

        Great expectatations. From ibidem:

        "One approach to study computer programming is to study programming languages. But there are a tremendously large number of languages, so large that it is impractical to study them all. How can we tackle this immensity? We could pick a small number of languages that are representative of different programming paradigms. But this gives little insight into programming as a unified discipline."
        "This book uses another approach. We focus on programming concepts and the techniques to use them, not on programming languages. The concepts are organized in terms of computation models. A computation model is a formal system that defines how computations are done. There are many ways to define computation models. Since this book is intended to be practical, it is important that the computation model should be directly useful to the programmer. We will therefore define it in terms of concepts that are important to programmers: data types, operations, and a programming language. The term computation model makes precise the imprecise notion of “programming paradigm”. The rest of the book talks about computation models and not programming paradigms. Sometimes we will use the phrase programming model. This refers to what the programmer needs: the programming techniques and design principles made possible by the computation model."

        See also: Seif Haridi

        Best regards, Karl

        «The Crux of the Biscuit is the Apostrophe»

        perl -MCrypt::CBC -E 'say Crypt::CBC->new(-key=>'kgb',-cipher=>"Blowfish")->decrypt_hex($ENV{KARL});'Help

Re: Programming Concepts
by Laurent_R (Canon) on Dec 30, 2017 at 11:11 UTC
    Your question is far too vague and is thus very difficult to answer.

    One possible approach would be to start with programming paradigms, such as procedural or imperative programming (such as Pascal or C), object-oriented programming (C++, Java), functional programming (Lisp, Scheme, Haskell), logic programming (Prolog), declarative programming (make, regexes, grammars), constraint programming, and so on. The cited languages are just examples, many of them are not belonging to only one of the paradigms. Perl is pretty much multi-paradigm.

Re: Programming Concepts
by Anonymous Monk on Dec 29, 2017 at 11:18 UTC
    The trouble with this sort of question is that it's so abstract that it becomes a Rorschach test. Everybody sees the question they want to see. Can you provide any specific instances of the kind of thing you're interested in?
Re: Programming Concepts
by Anonymous Monk on Jan 02, 2018 at 08:17 UTC
    Another good strategy is to surf to a site like GitHub, or SourceForge, which are "source-code repository" sites where the actual source-code of complete projects can be found ... in whatever programming-language you care to name. I find it very useful to look at source-code, when I know in advance that it works and that it was written by someone who really knew what (s)he was doing.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlmeditation [id://1206422]
Approved by herveus
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (5)
As of 2019-02-21 18:27 GMT
Find Nodes?
    Voting Booth?
    I use postfix dereferencing ...

    Results (114 votes). Check out past polls.

    • (Sep 10, 2018 at 18:53 UTC) Welcome new users!