Comparison of programming paradigms
Main paradigm approaches[edit]
The following are widely considered the main programming paradigms, as seen when measuring programming language popularity. There is some overlap between paradigms, inevitably, but the main features or identifiable differences are summarized in this table:
- Imperative programming – defines computation as statements that change a program state.
- Procedural programming, structured programming – specifies the steps a program must take to reach a desired state.
- Declarative programming – defines program logic, but not detailed control flow.
- Functional programming – treats programs as evaluating mathematical functions and avoids state and mutable data
- Object-oriented programming (OOP) – organizes programs as objects: data structures consisting of datafields and methods together with their interactions.
- Event-driven programming – program control flow is determined by events, such as sensor inputs or user actions (mouse clicks, key presses) or messages from other programs or threads.
- Automata-based programming – a program, or part, is treated as a model of a finite state machine or any other formal automaton.
None of the main programming paradigms have a precise, globally unanimous definition, nor official international standard. Nor is there any agreement on which paradigm constitutes the best method to developing software. The subroutines that implement OOP methods may be ultimately coded in an imperative, functional, or procedural style that may, or may not, directly alter state on behalf of the invoking program.
Differences in terminology
https://en.wikipedia.org/wiki/Comparison_of_programming_paradigms
最新文章
- openfire的组件(Component)开发
- mysql case when then end学习
- 解决tableView分割线左边不到边的情况
- And Then There Was One
- WEB开发者必备的7个JavaScript函数
- DZY Loves Colors
- 使用JQuery获取对象的几种方式
- UltraEdit-32 恢复到初始默认配置
- OpenWrt配置opkg.conf
- java---interrupt、interrupted和isInterrupted的区别
- Css详解之(选择器)
- 新闻网站开发-手机端-基于Wordpress
- 【原创】大数据基础之HDFS(1)HDFS新创建文件如何分配Datanode
- 面试 -- 关于Activity的相关知识
- 1:Python开发:初识Python
- POJ 1094 Sorting It All Out 【拓扑排序】
- Win10系列:VC++文件选取
- python 2.0 与 python 3.0 区别
- Influxdb安装部署
- RxJava中的doOnSubscribe默认运行线程分析
热门文章
- bootstrapvalidator使用,重置校验
- linux 结构需要清理 (structure needs cleaning)
- 16种C语言编译警告(Warning)类型的解决方法
- [SDOI2016]数字配对(费用流+贪心+trick)
- Web项目部署(Flask Angular2 Nginx)
- JAVA 中 重定向
- C#-WinForm中文本框的中文乱码问题
- 数据库连接池和connection的理解
- 不做Next,争做Nest——庆科首届智能硬件创新设计大赛产生决赛12强
- 最全Pycharm教程(38)——Pycharm版本号控制之远程共享