Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用C实现其他语言是否以任何方式限制了他们的设计?

使用C实现其他语言是否以任何方式限制了他们的设计?
EN

Stack Overflow用户
提问于 2010-08-18 15:30:31
回答 9查看 764关注 0票数 22

似乎在过去20年中出现的大多数新的编程语言都是用C编写的。这是完全有意义的,因为C可以被看作是一种可移植的汇编语言。但我好奇的是,这是否以任何方式限制了语言的设计。促使我提出问题的是,如何在Python中直接使用C堆栈调用函数。显然,编程语言设计者可以用他们想要的任何语言做任何他们想做的事情,但在我看来,你选择用来编写新语言的语言会让你处于某种心态中,并给你提供了一些很难忽视的捷径。这些语言的其他特征是否来自于用该语言编写的语言(好的或坏的)?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2010-08-18 15:39:28

即使使用C实现,您在实现方面也是出人意料的自由。例如,chicken scheme使用C作为中间语言,但仍然设法在其垃圾收集器中使用堆栈作为托儿所生成。

也就是说,在某些情况下会有一些限制。举个例子: GHC haskell编译器有一个名为Evil Mangler的perl脚本,用来修改GCC输出的汇编代码,从而实现一些重要的优化。他们已经转向内部生成的程序集和LLVM,部分原因就是这个原因。也就是说,这并没有限制语言设计--只是编译器对可用优化的选择。

票数 5
EN

Stack Overflow用户

发布于 2010-08-18 15:40:21

我倾向于不同意。

我不认为一种语言的编译器或解释器是用C实现的--毕竟,你可以用C实现一个完全不同于它的宿主环境的虚拟机,这意味着你可以摆脱C/准汇编语言的思维模式。

然而,更难断言C语言本身对后来语言的设计没有任何影响。例如,使用大括号{ }将语句分组到块中,空格和缩进几乎不重要的概念,本机类型的名称(intchar等)。和其他关键字,或如何定义变量的方式(即,先声明类型,然后是变量的名称,可选的初始化)。当今许多流行且广泛使用的语言(C++、Java、C#,我相信还有更多)都与C语言共享这些概念。(这些概念在C语言中可能并不是全新的,但AFAIK C提出了这种特定的语言语法组合。)

票数 8
EN

Stack Overflow用户

发布于 2010-08-18 15:36:31

不,简而言之。现实情况是,看看周围用C编写的语言,例如,Lua与C语言的距离是最远的,而不是成为Perl。它具有一流的功能,完全自动化的内存管理等。

新的语言受到其实现语言的影响是不寻常的,除非该语言包含严重的限制。虽然我绝对不赞成C,但它并不是一种有限的语言,只是与更现代的语言相比,它非常容易出错,编程速度也很慢。哦,除了在CRT里。例如,Lua不包含目录功能,因为它不是CRT的一部分,所以他们不能在标准C中实现它,这是C限制的一种方式。但就语言功能而言,它并不受限制。

如果你想提出一个论点,说用C实现的语言有XYZ限制或特征,你就必须证明用另一种方法做事情在C中是不可能的。

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

https://stackoverflow.com/questions/3513780

复制
相关文章
MS SQL SERVER导出表结构到Excel
在结果就能看到数据库所有表的结构,这个时候只要全选,然后右击出来属性框,选择将结果另存为,这个时候您只要选择导出CSV,然后新建一个Excel表格,在菜单栏选择数据,再选择自文本,后面的大家可以自己的需求自行处理了。
jamesjiang
2022/11/20
1.5K0
vb中adodc连接sql(如何用vb打印Access数据)
本文实例讲述了使用ADODB.Connection连接access数据库的方法,驱动类型版本为:Microsoft.Jet.OLEDB.4.0。在VB的数据库操作中,连接数据库是第一步,也是最基本的,本文所述的这个例子,对于初学者学习如何在VB中连接Access数据库有着很好的借鉴参考价值。
全栈程序员站长
2022/08/01
2.1K0
VB.NET DATAGRIDVIEW数据导出Excel
Dim rowc As Integer = prt_dgv.Rows.Count
办公魔盒
2019/07/22
2.4K0
VB.NET DATAGRIDVIEW数据导出Excel
机房收费系统——VB将MSHflexgrid控件中的数据导出为Excel
 在做机房收费系统的时候,许多窗体用到的一个功能,就是将从数据库中提取出来的数据导出到Excel中。
令仔很忙
2018/09/14
1.2K0
vb.net从数据库中取数据
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/155767.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/06
2.2K0
vb.net从数据库中取数据
excel 导出json_导出的数据格式不对
但是用这种方式会出现一种问题,就是当你的table有分页的情况下,只能抓取当前分页的数据。
全栈程序员站长
2022/09/20
1.3K0
excel 导出json_导出的数据格式不对
从mongoDB中定时导出数据shell脚本
目标:编写一个shell脚本,以便能够将mongoDb中的数据导出成为csv格式的文件。要求:1. 为了避免导出巨量数据,仅需要过滤出当月数据和上个月的数据即可。2. 由于当天的数据是不完整的,所以需要排除当天的数据以下是一个例子,将代码保存为.sh文件后使用 chmod +x 将该脚本设置为可执行,然后使用crontab命令将脚本加到定时任务当中
用户1503405
2021/10/31
1.4K0
SQL DML:数据导入&导出
将文件导入到Hive中,需要文件编码格式为UTF-8,\n为换行符,否则就需要进行预处理。处理过程分为两部分:编码格式、换行符。
十里桃花舞丶
2021/09/10
7420
MS SQL 的存储过程练习
/*带参存储过程 if(OBJECT_ID('proc_find_stu', 'p') is not null)    drop proc proc_find_stu go create proc proc_find_stu(@startId int, @endId int) as    select * from student where stu_id between @startId and @endId go*/ /*调用存储过程 exec proc_find_stu 7, 9*/ --带通配符参数存储过程 /*if(OBJECT_ID('proc_findStudentByName','P') is not null)    drop proc proc_findStudentByName go create proc proc_findStudentByName(@name varchar(20) = '%j%', @nextName varchar(20) = '%') as    select * from student where stu_name like @name and stu_name like @nextName; go*/ --执行存储过程 /*exec proc_findStudentByName; exec proc_findStudentByName '%o%','t%';*/ --带输出参数存储过程 /*if(OBJECT_ID('proc_getStudentRecord','P') is not null)    drop proc proc_getStudentRecord go create proc proc_getStudentRecord(    @id int,--默认输入参数    @name varchar(20) out, -- 输出参数    @age varchar(20) output -- 输入输出参数 ) as    select @name = stu_name, @age = stu_age from student where stu_id = @id and stu_age = @age; go*/ -- /*declare @id int,         @name varchar(20), @temp varchar(20); set @id = 9; set @temp = 40; exec proc_getStudentRecord @id,@name out,@temp output; select @name, @temp print @name + '#' + @temp;*/ --不缓存存储过程 --WITH RECOMPILE 不缓存 /*if (OBJECT_ID('proc_temp','P') is not null)    drop proc proc_temp go create proc proc_temp with recompile as     select * from student; go*/ --exec proc_temp; --加密WITH ENCRYPTION /*if (OBJECT_ID('proc_temp_encryption','P')is not null)    drop proc proc_temp_ecryption go create proc proc_temp_encryption with encryption as    select * from student; go*/ /*exec proc_temp_encryption; exec sp_helptext 'proc_temp'; exec sp_helptext 'proc_temp_encryption';*/ --带游标参数存储过程 /*if(OBJECT_ID('proc_cursor','P') is not null)    drop proc proc_cursor go create proc proc_cursor    @cur cursor varying output as    set @cur = cursor forward_only static for    select stu_id, stu_name, stu_age from student;    open @cur; go*/ --调用 /*declare @exec_cur cursor; declare @id int,         @name varchar(20), @age int; exec proc_curs
静谧的小码农
2019/01/11
9850
宝塔面板Linux系统通过Docker部署VB.NET Asp.Net Core WebAPI应用
一,首先,创建一个ASP.NET Core测试项目 1.1 打开VS2019/2022,创建一个.NTE6 Core控制台应用,为什么要这么干呢?因为VB已经不是MS的宠儿了,只能通过控制台,手动配
办公魔盒
2023/03/02
3.2K0
宝塔面板Linux系统通过Docker部署VB.NET Asp.Net Core WebAPI应用
MS SQL Sever数据库系统
是一个高性能的、多用户的关系数据库管理系统,它提供客户/服务器体系结构,是目前较为时流行的一种数据库服务器系统。
ellipse
2019/08/16
9130
Ms SQL Server 如何导入数据库
首先打开 Management Studio,随便在一个数据库上右键,然后选择新建查询:
wsuo
2020/07/30
2.2K0
Ms SQL Server 如何导入数据库
Linux中mongodb安装和导出为json
采用官方工具导出mongo数据为json格式 文档:https://docs.mongodb.com/manual/reference/program/mongoexport/ 可以远程导出,只要有host:port即可。 首先需要安装tools: 在redhat中: 文档:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/ 1、编写repo文件 Create a /etc/yum.repos.d/mongodb-org
Ryan-Miao
2018/03/13
1.9K0
ASP.NET输出JSON格式数据
一直使用WordPress3.1的版本,12月份WordPress发布了3.5的版本,想尝试升级一一下。当然最好是先在本地环境测试通过,然后上传的服务器是最好的方法。操作系统是Windows8 64位,设置基本和操作无关。 按照安装步骤,显示Apache2.2,然后是PHP5.4,最后就是MySQL5.5。安装过程问题还是蛮多了,下面总结如下,基本都是因为少配置了,或者配置不正确导致的。我安装好以上三个软件之后,将下载的WordPress3.5解压后的文件复制到Apache htdocs根目录下。然后在浏览
八哥
2018/01/18
3.7K0
ASP.NET输出JSON格式数据
JSON在线生成VB.NET实体类应用实例-JSON数据解析
2.在主页json数据框中粘贴标准的json数据然后点击”生成VB.NET实体类“按钮,即可生成解析当前JSON的实体类,然后复制即可使用!
办公魔盒
2019/12/02
2.7K0
使用 flink table sql接收 json 数据写入 mysql 中
使用 flink(table sql)+kafka+mysql 实现一个简单的 demo
earthchen
2021/05/27
5.5K0
php连接MS SQL Server
从5.3开始,PHP自带的dll不再支持2000以后的MS SQL Server了。
似水的流年
2019/12/04
1.9K0
一段从Infor ERP LN(Baan)的Oracle数据库中导出数据到SQL Server的SQL语句
保存一段从Baan ERP LN的Oracle数据库中导出数据到SQL Server的SQL语句,前提是在MSSQL 2005中建立Link Server。
崔文远TroyCui
2019/02/27
1.3K0
StreamingPro SQL Server 支持异步导出数据
StreamingPro可以很容易让你搭建一个Spark SQL Server 服务,并且提供Http 格式的接口进行交互。通常查询结果较小,但是如果用户的SQL可能会产生几G甚至几十G的结果,那么Driver 就直接挂了。StreamingPro提供了同步和异步机制,将SQL的查询结果放在HDFS上。如果是同步的话,执行完后返回下载地址(HTTP接口,StreamingPro提供),如果是异步,则会使用用户提供的回调函数告知任务完成,并且提供下载地址。
用户2936994
2018/08/27
4810
StreamingPro SQL Server 支持异步导出数据
微信海量数据查询如何从1000ms降到100ms?
👉腾小云导读 微信的多维指标监控平台,具备自定义维度、指标的监控能力,主要服务于用户自定义监控。作为框架级监控的补充,它承载着聚合前 45亿/min、4万亿/天的数据量。当前,针对数据层的查询请求也达到了峰值 40万/min,3亿/天。较大的查询请求使得数据查询遇到了性能瓶颈:查询平均耗时 > 1000ms,失败率居高不下。针对这些问题,微信团队对数据层查询接口进行了针对性的优化来满足上述场景,将平均查询速度从1000ms+优化到了100ms级别。本文为各位分享优化过程,希望对你有用! 👉目录 1 背景介绍
腾讯云开发者
2023/06/05
5480
微信海量数据查询如何从1000ms降到100ms?

相似问题

用户字符串输入以彩色显示

11

以彩色显示jquery调色器图标

216

如何在shell屏幕中以彩色显示

23

如何使用jsp、javascript、css以粗体或彩色显示表格数据

20

以彩色显示文件中的内容

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档