没有合适的资源?快使用搜索试试~ 我知道了~
响应式Web编程科林·维达尔引用此版本:科林·维达尔。 响应式Web编程。 网络。 2018年,蓝色海岸大学法语。NNT:2018AZUR4049。电话-01900619HAL ID:电话:01900619https://theses.hal.science/tel-01900619提交日期:2018年HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire响应式Web编程科林·维达尔因里亚为获得蓝色海岸大学和法兰西学院的计算机科学博士学位而提交。导演:曼努埃尔·塞拉诺共同监督人:Gérard Berry支持日期:2018年在陪审团面前,由以下人员组成:杰拉德·贝瑞教授法兰西学院Emmanuel Chailoux教授索邦大学罗兰·杜库尔瑙名誉教授蒙彼利埃大学阿兰·吉罗研究总监因里亚曼努埃尔·塞拉诺研究总监因里亚博士论文响应式Web编程评审团组成:报告员:Emmanuel Chailoux索邦大学教授Alain Girault Inria研究主任检查员:Roland Ducournau蒙彼利埃大学名誉教授论文联合主任:Gérard Berry法兰西学院教授论文主任:Manuel Serrano Inria研究总监23谢谢你非常感谢曼努埃尔·塞拉诺为我的论文提供了框架,给了我很大的自由,同时在我需要的时候也能为我还有,谢谢你的名字--很多关于GNU/Linux和信息学隐藏的一面的极客讨论!也非常感谢Gérard Berry,他共同监督了这篇论文,提供了一个非常严格的批判性观点,并感谢Emmanuel Chailloux和Alain Girault同意担任本论文的报告员。感谢RolandDurcournau向还要感谢Francis Dolière Somé,我和他共用一间办公室,他把他的停车场借给了我三年。感谢Inria和INDES团队的所有其他人,和讨论。我还要感谢我的父母劳伦斯·德斯特拉德(Laurence Destrade)和帕特里克·维达尔(Patrick Vidal),感谢他们在最后,最后但我非常感谢你的许多和温暖的鼓励,你的巨大支持和你一贯的好心情,使我能够继续前进,45摘要Web是一个通用平台,用于开发与远程用户和服务交互丰富的应用程序。这些交互是作为异步事件实现的,这些事件可以在应用程序执行期间的JavaScript是一种Web语言,它以一种非抽象的方式处理异步事件,这使得本论文的贡献是Hiphop.js是同步反应式语言Esterel的时间结构的JavaScript实现。通过这些构造,Hiphop.js应用程序的控制流是显式的。因此,只需读取应用程序的源代码,就可以准确地知道何时以及在什么条件下处理事件。这使得验证和维护应用程序变得更加容易。Hiphop.js语言与动态Web环境的深度集成是本论文工作的重要组成部分。程序是在JavaScript应用程序的执行过程中构建和编译的关键词:Web,异步编程,JavaScript,反应式编程,同步语言67摘要Web是用于开发与用户和远程服务交互的应用程序的通用平台这些交互被实现为可以随时启动的异步事件。JavaScript是Web的主流语言,它使用低级抽象来处理异步事件,这使得编写、验证和维护交互式应用程序变得困难。我们通过设计和实现一种名为Hiphop.js的新的域特定语言来解决这个问题它通过重用来自同步编程语言Esterel的时间结构,提供了JavaScript事件处理机制的替代方案。这些结构使程序的控制流明确且确定。Hiphop.js嵌入在JavaScript中,遵循Web的传统动态编程风格。它与JavaScript紧密耦合,可以交换值和访问任何数据结构。它还可以支持对需要支持按需Web下载的现有程序的动态它可以在Web应用程序的两端运行,即在服务器和客户端上。在本文中,我们介绍了Hiphop.js,它的设计和实现。我们概述了它的编程环境,并介绍了我们为验证该方法而实现的原型Web应用程序。关键词:Web、异步编程、JavaScript、反应式编程、同步语言89目录感谢31一般介绍151.1动机和目标161.1.1网络:通用平台161.1.2活动编排1.2贡献171.3论文大纲182最先进2.1同步反应式语言202.2反应式函数式编程212.3响应式Web技术222.3.1异步/await承诺和构造232.3.2响应式Web图形界面和交互式程序。262.3.3网络中的演员模型2.3.4全球视图31102.4Hiphop.js32的定位3Web 2.0和Hiphop.js353.1导言363.2交互性、事件和异步性363.3JavaScript中的计时器应用程序373.3.1基本计时器373.3.2带悬架的计时器403.4在Hiphop.js43中实现定时器3.4.1基本计时器433.4.2带悬架的计时器463.5讨论473.6结论484Hiphop.js语言494.1导言514.2反应和说明书的514.3"你好,世界! 在Hiphop.js....................................................................... 51中4.4具体语法524.4.1模块534.4.2信号534.4.3表达式554.4.4最后期限564.4.5说明Hiphop.js574.4.6基本控制574.4.7序列574.4.8并行执行584.4.9信号发射60114.4.10 等待604.4.11 条件分支614.4.12 优先购买权614.4.13 暂停624.4.14 在反应期间执行JavaScript代码634.4.15 本地信号的定义644.4.16 第65章4.4.17 陷阱684.4.18 异步JavaScript执行控制4.4.19 模块的重复使用745Hiphop集成体系结构5.1从代码到5.1.1通用源代码785.1.2编译和执行:响应式机器795.2事件和信号795.3Hiphop.js81程序的动态性5.3.1程序的动态构建815.3.2平行线82的塑性5.4异步操作845.5响应式图形界面865.5.1代理Hop.js865.5.2用作代理的输出信号875.5.3与输入信号相关联的值的广播6编译技术和运行时模型6.1抽象语法956.1.1模块和信号96126.1.2表达式976.1.3讨论1016.2从代码到6.2.1预处理器1026.2.2转换为JavaScript104标准代码6.2.3AST 105的建造6.3从6.4执行模式6.4.1与程序110关联的门图6.4.2反应110的实施6.4.3计算门的值6.4.4执行与门相关联的6.5电路118的产生6.6优化1216.7结论1257开发环境1277.1兴趣和特点1287.2使用1297.2.1可视化和导航1297.2.2逐步执行模式7.2.3编程接口1327.3内部运作1337.3.1全球架构1337.3.2增量更新1347.3.3限制1357.4结论135138Hiphop.js 137应用程序示例8.1表格138的自动验证8.2机器和并行1408.3音频或视频1458.4make-j150的简化版本8.5素数1539前景1599.1语言扩展1609.1.1从EXEC160发送全局信号9.1.2局部变量1629.1.3可迭代的反应机器1649.2Hiphop.js165的分布式版本10 一般结论167附件171A Hiphop.js语言地图173BHiphop.js175抽象语法C Hiphop.js 179编译器实现的整体架构参考文献1831415第一章一般介绍总结1.1动机和目标161.1.1网络:通用平台161.1.2活动编排1.2贡献171.3论文大纲18161.1动机和目标1.1.1Web:通用从历史上看,Web一直是一种交换和阅读结构化、静态和非交互式文档的手段。然后,技术被移植到网络上,并允许创建具有动态内容的交互式网页,然后Web 2.0诞生了[如今,网络继续发展,这要归功于Web技术包括用于网络交换的JavaScript、HTML、CSS和HTTP事实上,术语Web应用程序是指任何高度依赖于这些技术并且通常具有丰富的用户交互的应用程序。它们越来越多地在Web浏览器的初始框架之外使用。例如,Electronics[GitHub,2013]和React Native [Facebook,2015]是基于网络技术的工具,允许为从传统电脑到手机的所有类型的设备创建 随着由于其标准化、技术可能性和广泛使用,Web现在已经成为编写交互式应用程序和交换数据的该平台本质上是动态的:应用程序的行为根据用户的操作以及与之通信的对等体的行为而L’objet de cette thèse est l’étude de la gestion de cesinteractions dans le contexte dynamique du web par le1.1.2事件的编排现代Web应用程序在与用户和远程服务器的持续交互中这些互动是多种多样的:在线选择和播放音乐和视频、视频会议、预订火车和17数据和文件系统访问、交互式地图中的导航和缩放等。应用程序这些交互本质上是异步的,因为不可能预测它们发生在程序执行的什么时候。从实现的角度来看此外,每个事件接收都事件编排是一个术语,指的是对各种计算和交互的反应式事件的循环在Web应用程序[W3C,2017]中,事件处理程序每次接收到事件时,适当的处理程序都会将与该事件类型关联的函数添加到队列的末尾。JavaScript运行时环境有一个事件循环,只要队列不为空,它就会当需要编排的事件数量很大时这是因为定义事件处理程序的语法和顺序并不反映不同的运行时调度可能性为了理解程序的不同状态和可能的行为,有必要在头脑中展开不同的潜在此外,在这种编排模型中,代码的修改、组合和重用更加困难,特别是当代码的修改导致新的状态时:因此,有必要通过考虑事件和状态的更大组合来再次在精神上展开各种潜在的1.2贡献Hiphop.js语言就是这篇论文的成果。它通过在环境中引入同步反应式编程提供了一种替代的编排解决方案。1. 虽然JavaScript没有指定异步事件处理,但绝大多数JavaScript环境都18Web的固有动态性。为此,Hiphop.js通过合并同步反应式语言Este-rel v5的语义和构造来扩展JavaScript语言 [Berry和Gonthier,1992,Berry,2000 b]。这些构造 也 适 应 于 Web的 动 态 环 境: Hiphop.js 程序是 动态构造的 ,然后连接 到JavaScript事件,也就是说,在执行周围的构造还允许此外,Hiphop.js具有用于更新Web应用程序因此,Hiphop.js在Web中引入了结构和抽象,允许对事件及其处理进行分层查看。这使得程序动态在代码语法中是明确的,使交互式Web应用程序的编写和维护更加容易1.3论文计划第2章介绍了与Hiphop.js相关的相关工作。第3章通过实际示例强调了与JavaScript异步事件处理模型相关的问题。这些相同的示例随后在Hiphop.js中实现,允许在引入新语言的同时将JavaScript模型与Hiphop.js的响应模型进行比较。第4章是一本全面的Hiphop.js手册,描述了第5章解释了Hiphop.js是如何集成和连接到JavaScript模型的。然后,第6章详细介绍了Hiphop.js的内部工作原理及其实现。第7章介绍了为Hiphop.js设计的符号和分布式调试器,第8章介绍并解释了用Hiphop.js编写的实际应用程序。最后,第9章概述了Hiphop.js的发展前景第3章、第4章、第5章、第7章和第8章主要针对对使用Hiphop.js编写程序感兴趣的读者,而第6章则针对对修改语言感兴趣的
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功