Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >什么时候混合语言?

什么时候混合语言?
EN

Stack Overflow用户
提问于 2009-07-03 13:32:24
回答 11查看 768关注 0票数 7

有些语言应该混合的情况是什么?

我说的不是使用ASP.NET和C#和HTML,也不是用C编写的通过SQL查询访问SQL数据库的应用程序。例如,我说的是将C++与Fortran或Ada与Haskell混合等。

编辑

首先:谢谢你的回答。

当我问这个问题时,我想到你总是读“每一种语言都有其特殊目的”。

通常,您可以通过使用特殊的库以任何语言完成几乎所有的工作。但是,如果您对学习不同的语言感兴趣,那么为什么不选择最适合您的编程语言而不是一个解决您的语言最初设计的问题的库呢?

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2009-07-03 13:56:32

那么,最明显(也是最常见)的情况是,当您使用一些高级语言来完成大部分程序时,获得快速开发和健壮性的好处,同时使用一些低级语言,比如C,甚至程序集来获得重要的速度。

而且,很多时候,需要与其他语言编写的软件进行接口。这里有一个很好的例子,就是操作系统公开的APIs -它们通常是用C编写的(尽管我还记得一些使用Pascal的旧MacOS版本)。如果您没有用于语言编译器基础结构的本机绑定,则必须编写一些接口代码来“将”您的程序与“另一面”“粘合”。

还有一些特定于领域的语言被专门调优以有效地表达某种类型的计算。你通常不把你的整个程序都写在它们里面,只是在某些地方它是合适的工具。Prolog就是一个很好的例子。

最后但并非最不重要的是,有时您手头有一堆用另一种语言编写的旧代码和测试代码,您可以从使用这些代码中获益。与其用一种新的更好的语言重新发明轮子,不如把它与新程序连接起来。这可能是最常见(如果不是唯一的)情况下,适合类似用途的语言混合在一起(您提到的是C++和Fortran吗?)

一般来说,不同的语言有不同的长处和弱点。你应该试着使用合适的工具来完成手头的工作。如果用一种不同的语言表达程序的某些部分的好处大于它所带来的问题,那么最好去做。

票数 5
EN

Stack Overflow用户

发布于 2009-07-03 13:52:42

例如,在电子游戏中,我们为了不同的目的使用不同的语言:

  • Application (游戏)代码:必须是快速的、有组织的,并且大多数时候是跨平台的(至少可以预见到MacOS ),通常是在约束重的平台(控制台)上,所以C++ (有时还有C和asm)是used.
  • Development Tools:级别设计工具生成游戏代码将使用的数据。这类工具不需要在目标平台上运行(但如果可以的话,更容易调试),所以它们通常是用快速开发语言(如C#、Python、C# system )制作的:游戏的某些部分必须由设计者使用变量或脚本进行调整。嵌入脚本语言而不是编写脚本语言真的非常容易和廉价,因此Lua或其他类似的脚本语言通常是used.
  • Web应用程序:有时游戏需要在线提供一些数据,最常见的是在使用SQL访问的数据库中。然后,web应用程序用一种语言编写,这些语言可能是C#、Ruby(R.O.R.)、Python或其他任何对工作有益的语言。因为它是关于web的,所以您必须使用HTML/Javascript too.
  • etc...

在我的游戏中,我也使用HTML/Javascript作为GUI。

编辑

要回答你的编辑:你知道最好的语言并不总是工作中最有效的工具。这就是为什么我在我的自制游戏中使用C++的原因,因为我最了解它(我可以使用很多其他语言,因为目标是Win/Mac/Linux,而不是控制台),但我使用Python来处理与构建进程、文件操作等相关的所有东西。我不深入了解Python,但用它快速处理文件比用C++更容易。出于明显的原因,我不会在web应用程序中使用C++。

最后,你使用对这项工作有效的方法。这就是你在现实世界中工作时学到的东西,考虑到金钱、时间和质量。

票数 11
EN

Stack Overflow用户

发布于 2009-07-03 13:50:04

我知道,在你的问题中,你有点排除了这一点,但不同的语言被用于不同的领域。

现在我正在开发一个数据可视化工具,数据在数据库中,所以当然有一些SQL,但这并不算什么,因为它很小,而且经常需要。数据被转换成一系列的图表,我用的是R,它像MATLAB,但是开源。这是一种独特的统计语言,具有一些先进的绘图功能。

数据可视化器不仅仅是一个图形生成器,所以需要有一种方法来浏览和导航这堆图像文件。我们选择使用带有嵌入式javascript的html构建一个可以轻松分发的离线“应用程序”。它是离线的,因为它是自包含的,html是小心生成的,它里面的js是精心制作的,允许用户浏览成千上万的图像,排序或过滤,根据一系列的标准。

您是如何根据数据库结构精心制作javascript和html的?随着我团队的其他成员取得进展,数据库结构会发生变化。它们是由一个perl程序(实际上是一次传递脚本)生成的,该程序读取数据库中的某些结构和关键信息,然后输出超过300 db的html/js。它也不是完全简单的html,与R图和一些onclick() javascript对齐的图像地图允许用户实际与普通的图像图交互,因此整个过程就像一个真正的数据浏览器/可视化应用程序。

这是四种“语言”,如果算上SQL,就有五种,只是为了制作一个单一的最终产品。

我认为在一种语言中这样做并不是一个好的选择,因为我们正在利用一个真正的web浏览器的功能来为我们提供一个免费的GUI和前端。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1080909

复制
相关文章
R语言实现混合模型
普通的线性回归只包含两项影响因素,即固定效应(fixed-effect)和噪声(noise)。噪声是我们模型中没有考虑的随机因素。而固定效应是那些可预测因素,而且能完整的划分总体。例如模型中的性别变量,我们清楚只有两种性别,而且理解这种变量的变化对结果的影响。 那么为什么需要 Mixed-effect Model?因为有些现实的复杂数据是普通线性回归是处理不了的。例如我们对一些人群进行重复测量,此时存在两种随机因素会影响模型,一种是对某个人重复测试而形成的随机噪声,另一种是因为人和人不同而形成的随机
机器学习AI算法工程
2018/03/14
4.4K0
什么时候使用Dockerfiles(什么时候不使用……)
在这篇文章中,我们将讨论一些使用 Dockerfile 的最佳实践,探索一些注意事项,并使用 Dockerfile 和云原生 Buildpacks 构建应用。你将了解每种工具最擅长的工作是什么,以及如何决定何时使用它们。
CNCF
2021/12/15
1.7K0
什么时候使用Dockerfiles(什么时候不使用……)
R语言使用混合模型进行聚类
让我们通过一个例子激发您为何使用混合模型的原因。让我们说有人向您展示了以下密度图:
拓端
2020/07/16
1.3K0
R语言 线性混合效应模型实战案例
处理分组数据和复杂层次结构的分析师,从嵌入在参与者中的测量,嵌套在州内的县或嵌套在教室内的学生,经常发现他们需要建模工具来反映他们数据的这种结构。在R中,有两种主要的方法来拟合多级模型,这些模型考虑了数据中的这种结构。这些教程将向用户展示如何使用lme4R中的包来拟合线性和非线性混合效果模型,以及如何使用rstan以完全适合贝叶斯多级模型。这里的重点是如何使模型适合R而不是模型背后的理论。有关多级建模的背景知识,请参阅参考资料。
拓端
2020/11/19
1.4K0
MATLAB 与 C 语言的混合编程
MATLAB 与 C 语言的接口采用称为 MEX 的动态链接方式进行。MEX 文件是由 C/C++ 源程序经过编 译生成的 MATLAB 动态链
glm233
2020/09/28
3.5K0
MATLAB 与 C 语言的混合编程
什么时候用Goroutine?什么时候用Channel?
什么场景下用channel合适呢? 通过全局变量加锁同步来实现通讯,并不利于多个协程对全局变量的读写操作。 加锁虽然可以解决goroutine对全局变量的抢占资源问题,但是影响性能,违背了原则。 总结:为了解决上述的问题,我们可以引入channel,使用channel进行协程goroutine间的通信。 Go语言中的操作系统线程和goroutine的关系: 一个操作系统线程对应用户态多个goroutine。 go程序可以同时使用多个操作系统线程。 goroutine和OS线程是多对多的关系,即m:n。 Go
王中阳Go
2022/10/26
9660
R语言 线性混合效应模型实战案例
首先,请注意,围绕多级模型的术语非常不一致。例如,多级模型本身可以称为分级线性模型,随机效应模型,多级模型,随机截距模型,随机斜率模型或汇集模型。根据学科,使用的软件和学术文献,许多这些术语可能指的是相同的一般建模策略。
拓端
2020/08/10
1.8K0
R语言学习中什么时候是突飞猛进?
我看到大牛的代码,我查看R包源码的编写,感觉自己才刚刚入门,还有很多东西要学,要掌握。此小大之辩也。感觉上面的阶段只是入门的不同阶段而已,就像幼儿园,分为小班,中班,大班,自己的水平相比大牛,仅仅是刚入门。
邓飞
2019/12/05
3720
基于R语言的lmer混合线性回归模型
混合模型在很多方面与线性模型相似。它估计一个或多个解释变量对响应变量的影响。混合模型的输出将给出一个解释值列表,其效应值的估计值和置信区间,每个效应的p值以及模型拟合程度的至少一个度量。如果您有一个变量将您的数据样本描述为您可能收集的数据的子集,则应该使用混合模型而不是简单的线性模型。
拓端
2020/08/21
4.3K0
基于R语言的lmer混合线性回归模型
《基于混合方法的自然语言处理》译者序
随着智能音箱走进千家万户,基于人工智能的产品与服务切实地来到了我们的身边。我们对智能音箱说话,问天气,定闹钟,听音乐,交流是如此的自然,这就是人工智能给我们带来的便利。
半吊子全栈工匠
2021/09/27
4780
R语言:EM算法和高斯混合模型的实现
期望最大化(EM)算法是用于找到最大似然的或在统计模型参数,其中该模型依赖于未观察到的潜变量最大后验(MAP)估计的迭代方法。期望最大化(EM)可能是无监督学习最常用的算法。
拓端
2020/08/20
1.7K0
R语言:EM算法和高斯混合模型的实现
什么时候调用layoutSubviews
如果你想强制更新布局,不要直接调用此方法。你可以调用setNeedsLayout方法;如果你想立即数显你的views,你需要调用layoutIfNeeded方法。
全栈程序员站长
2022/09/13
4270
R语言实现有限混合模型建模分析
有限混合模型在应用于数据时非常有用,其中观察来自不同的群体,并且群体隶属关系未知。
拓端
2020/07/16
4860
基于R语言混合效应模型(mixed model)案例研究
混合模型在很多方面与线性模型相似。它估计一个或多个解释变量对因变量的影响。混合模型的输出将为解释值列表,它们的效果大小的估计值和置信区间,每种效果的p值以及至少一种模型拟合程度的度量。当您有一个变量将数据样本描述为可以收集的数据的子集时,应该使用混合模型而不是简单的线性模型。
拓端
2022/04/14
2.7K0
基于R语言混合效应模型(mixed model)案例研究
什么时候索引失效
强制走索引 使用explain执行计划看,走的那个查询范围是什么,影响行数是多少,是否走了全表查询
2021/09/07
3280
什么时候,使用Excel?
极力推崇PowerBI是创作PowerBI大师的初衷,虽然从Excel到PowerBI有极其诱人的理由,但我们不可否认的是Excel本身作为全世界最广泛的办公工具它具有不可替代的应用场景。
公众号PowerBI大师
2019/08/07
2K0
什么时候,使用Excel?
R语言用Rshiny探索lme4广义线性混合模型(GLMM)和线性混合模型(LMM)
随着软件包的进步,使用广义线性混合模型(GLMM)和线性混合模型(LMM)变得越来越容易。由于我们发现自己在工作中越来越多地使用这些模型,我们开发了一套R shiny工具来简化和加速与对象交互的lme4常见任务。
拓端
2020/11/19
1.8K0
R语言用Rshiny探索lme4广义线性混合模型(GLMM)和线性混合模型(LMM)
JS WeakMap 什么时候用?
携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第21天,点击查看活动详情
掘金安东尼
2022/09/22
2.1K0
JS WeakMap 什么时候用?
在Python中什么时候用Yield什么时候用Return
在Python中,使用yield和return的关键字来定义生成器函数,生成器函数可以用于避免一次性计算所有值,而是在需要时生成它们。生成器函数使用yield语句来暂停和恢复其执行,并允许保存状态信息。当恢复时,生成器函数从上次yield语句的位置继续执行,并继续生成值。生成器函数可以包含多个yield语句,以产生一系列值。生成器函数还可以使用return语句来提前终止,并返回一个值。在Python中,生成器函数是一种非常强大的工具,可以帮助程序员节省内存,提高代码的效率。"
大数据弄潮儿
2017/12/21
2.4K0
在Python中什么时候用Yield什么时候用Return
入门科普:什么时候要用Python?用哪个版本?什么时候不能用?
Python使用面向对象编程(object-oriented programming,OOP)和构造,你可以像任何其它面向对象的语言一样使用它,譬如Java。
IT阅读排行榜
2018/08/13
1.2K0
入门科普:什么时候要用Python?用哪个版本?什么时候不能用?

相似问题

混合语言框架

39

检测混合语言php

14

混合语言CUDA编程

17

Rails混合模板语言

20

新语言混合示例

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文