标签: preprocessor

嵌入式SQL,如Java等OO语言

让我在OO语言中使用SQL的一件事就是必须在字符串中定义SQL语句.

当我以前在IBM大型机上工作时,这些语言使用SQL预处理器来解析本机代码中的SQL语句,因此语句可以用明文SQL编写而不会混淆字符串,例如在Cobol中有一个EXEC SQL. ... END-EXEC语法结构,它允许纯SQL语句可以嵌入在COBOL代码.

<pure cobol code, including assignment of value
 to local variable HOSTVARIABLE>    

EXEC SQL
       SELECT COL_A, COL_B, COL_C
       INTO :COLA, :COLB, :COLC
       FROM TAB_A
       WHERE COL_D = :HOSTVARIABLE
END_EXEC

<more cobol code, variables COLA, COLB, COLC have been set>
Run Code Online (Sandbox Code Playgroud)

...这使得SQL语句非常容易阅读并检查错误.在EXEC SQL .... END-EXEC令牌之间没有对缩进,换行等的限制,因此您可以根据品味格式化SQL语句.

请注意,此示例适用于单行选择,当需要多行结果集时,编码不同(但仍然易于阅读).

所以,以Java为例

  1. 是什么让"旧COBOL"方法不受欢迎?不仅是SQL,而且使用这种方法可以使系统调用更具可读性.我们称之为嵌入式外语预处理器方法.

  2. SQL 的嵌入式外语预处理器是否可用于实现?您是否看到能够在Java代码中编写本机SQL语句的好处?

编辑

我真的在问你是否认为OO语言中的SQL是一种回归,如果没有,那么可以做些什么来使它变得更好.

java sql preprocessor

7
推荐指数
1
解决办法
4169
查看次数

Inno Setup:如何查看Inno Setup预处理器的输出(转换)?

我有一个带有预处理程序指令(#defines,#ifs等)的Inno Setup脚本

我想在我的脚本上运行Inno Setup预处理器并查看预处理器的输出(Inno-Setup中的翻译).也就是说,我想查看它通常提供给Inno Setup Compiler的预处理器的结果,其中所有引用{#something}都被更改为something定义为的内容.

我查看命令行选项(of iscc.exe)和#pragma指令,但没有找到我正在寻找的内容.我看到我可以指定不运行编译器(#pragma -c- | /$c-)但我没有找到一种方法来查看预处理器的输出.

简而言之,我如何看待Inno Setup预处理器的输出?

preprocessor inno-setup

7
推荐指数
1
解决办法
1271
查看次数

EXTENDS挑战:预处理器函数宏和类类oop

背景

我一直在使用C预处理器来管理和"编译"包含多个文件和构建目标的半大型JavaScript项目.这使全面进入C预处理指令一样#include,#define,#ifdef等从JavaScript中.这是一个示例构建脚本,因此您可以测试示例代码:

#!/bin/bash
export OPTS="-DDEBUG_MODE=1 -Isrc"
for FILE in `find src/ | egrep '\.js?$'`
do
  echo "Processing $FILE"
  cat $FILE  \
  | sed 's/^\s*\/\/#/#/'  \
  | cpp $OPTS  \
  | sed 's/^[#:<].*// ; /^$/d'  \
  > build/`basename $FILE`;
done
Run Code Online (Sandbox Code Playgroud)

创建一个src和一个build目录,然后放入.js文件src.


便利宏

最初,我只是想要预处理器的东西#include,也许还有几个#ifdef,但我想,有一些方便的宏也不是很好吗?随后进行了实验.

#define EACH(o,k)     for (var k in o) if (o.hasOwnProperty(k))
Run Code Online (Sandbox Code Playgroud)

很酷,所以现在我可以这样写:

EACH (location, prop) {
  console.log(prop + " : " location[prop]);
}
Run Code Online (Sandbox Code Playgroud)

它将扩展到: …

javascript shell macros preprocessor prototypal-inheritance

7
推荐指数
1
解决办法
607
查看次数

使用xcode,如何从命令输出定义预处理器宏?

正如主题所说,我希望能够在构建期间运行特定命令,并使其输出成为预处理器宏的定义.

现在,我有几个用户定义的变量(在project.pbxproj中),我可以使用它们的值来填充宏定义,如下所示:

GCC_PREPROCESSOR_DEFINITIONS =(
"STRINGIFY(x)= @#x",
"_ MACRO = STRINGIFY($ {MACRO})",
);
MACRO = foo;

我可以将MACRO设置为每个方案不同的值(例如Debug vs. Release),这非常有用.但是,我无法弄清楚如何通过运行命令来设置它.

macros xcode preprocessor

7
推荐指数
1
解决办法
4837
查看次数

如何预处理机器学习数据?

我只是想要一些关于如何在将数据输入机器学习算法之前对其进行预处理的一般提示.我正在努力进一步理解为什么我们在预处理时做出不同的决定,如果有人可以通过我们在清理数据时需要考虑的所有不同的事情,删除多余的数据等等.我会发现它非常有用.我在网上搜索了一些规范的答案或经验法则,但似乎没有.

我在这里有.tsv文件中有一组数据.训练集总计7,000行,测试集为3,000行.如果100行不可读,我应该使用哪些不同的策略来处理格式错误的数据?500?1000?任何帮助我理解这一点的指导都将非常感激.

示例代码很好看,但如果您不喜欢它,则没有必要,我只想了解我应该做什么!:)

谢谢

python preprocessor artificial-intelligence machine-learning scikit-learn

7
推荐指数
1
解决办法
4727
查看次数

如何将C中的多行宏与行尾的注释结合起来

我有脑痉挛... C中是否有一种方法可以将多线宏与每条线上的注释结合起来?

例如

#define MYARRAY { \
  0.001,   //  5 mV \
  0.002,   // 10 mV \
  0.004,   // 20 mV \
  0.007,   // 35 mV \
  0.013    // 65 mV \
}
Run Code Online (Sandbox Code Playgroud)

我需要在头文件中定义一个注释数组值列表,这些值在其他地方使用,并使其非常易读.

c preprocessor comments

7
推荐指数
2
解决办法
652
查看次数

如何从命令行调用Visual Studio预处理器?

我想使用此处描述的预处理器实现解决方案:

在C#代码中重用.h文件中的define语句

如果您能指出我在MSDN上的文档,可以获得奖励积分.我找不到它们......

preprocessor visual-studio

6
推荐指数
1
解决办法
4476
查看次数

预处理器“无效的整数常量表达式”将int与double进行比较

在代码的某个地方,我有预处理程序定义

#define ZOOM_FACTOR 1
Run Code Online (Sandbox Code Playgroud)

在另一个地方,我有

#ifdef ZOOM_FACTOR
#if (ZOOM_FACTOR == 1)
#define FONT_SIZE 8
#else
#define FONT_SIZE 12
#endif
#else
#define FONT_SIZE 8
#endif
Run Code Online (Sandbox Code Playgroud)

问题是当我将ZOOM_FACTORvalue 更改为floating pointvalue时,例如1.5,我遇到了编译错误C1017: invalid integer constant expression

有谁知道为什么我收到这个错误,有没有什么办法之间做出比较integerfloating point number预处理指令内?

c++ preprocessor

6
推荐指数
1
解决办法
209
查看次数

Tensorflow 2.0 100% 使用所有 CPU 核心

我的 Tensorflow 模型大量使用数据预处理,这些数据预处理应在 CPU 上完成,以使 GPU 开放用于训练。

top - 09:57:54 up 16:23,  1 user,  load average: 3,67, 1,57, 0,67
Tasks: 400 total,   1 running, 399 sleeping,   0 stopped,   0 zombie
%Cpu(s): 19,1 us,  2,8 sy,  0,0 ni, 78,1 id,  0,0 wa,  0,0 hi,  0,0 si,  0,0 st
MiB Mem :  32049,7 total,    314,6 free,   5162,9 used,  26572,2 buff/cache
MiB Swap:   6779,0 total,   6556,0 free,    223,0 used.  25716,1 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ …
Run Code Online (Sandbox Code Playgroud)

cpu preprocessor tensorflow

6
推荐指数
2
解决办法
1万
查看次数

C/C++ 中的单行 #ifdef

考虑以下简单的 C/C++ 示例:

#define FOO
...
#ifdef FOO
  bar++;
#endif
Run Code Online (Sandbox Code Playgroud)

好的,现在我想将该条件(以及任何其他类似的)条件放入一行中,以提高代码可读性(该代码有数十个单行语句,每个语句都需要有条件,每个语句取决于不同的定义)。使用时,看起来像这样:

#define FOO
...
MY_IFDEF(FOO,bar++;) //Single-line conditional
Run Code Online (Sandbox Code Playgroud)

目标是拥有一个可重用的宏,它可以采用任意标识符,并且如果该标识符之前已被 #define-d 编译该语句,并在一行中完成所有操作。

有任何想法吗?

UPDATE0:代码必须针对 C 和 C++ 进行编译

c preprocessor c-preprocessor

6
推荐指数
1
解决办法
4925
查看次数