skill程序接口函数参考-Interprocess Communication SKILL Functions Reference

skill程序接口函数参考-Interprocess Communication SKILL Functions Reference
skill程序接口函数参考-Interprocess Communication SKILL Functions Reference

Interprocess Communication SKILL Functions Reference

Product Version 06.01

November 2001

1990-2001 Cadence Design Systems, Inc. All rights reserved.

Printed in the United States of America.

Cadence Design Systems, Inc., 555 River Oaks Parkway, San Jose, CA 95134, USA

Trademarks:Trademarks and service marks of Cadence Design Systems, Inc. (Cadence) contained in this document are attributed to Cadence with the appropriate symbol.For queries regarding Cadence’s trademarks, contact the corporate legal department at the address shown above or call 1-800-862-4522.

All other trademarks are the property of their respective holders.

Restricted Print Permission:This publication is protected by copyright and any unauthorized use of this publication may violate copyright,trademark,and other laws.Except as speci?ed in this permission statement, this publication may not be copied, reproduced, modi?ed, published, uploaded, posted, transmitted, or distributed in any way,without prior written permission from Cadence.This statement grants you permission to print one (1) hard copy of this publication subject to the following conditions:

1.The publication may be used solely for personal, informational, and noncommercial purposes;

2.The publication may not be modi?ed in any way;

3.Any copy of the publication or portion thereof must include all original copyright, trademark, and other

proprietary notices and this permission statement; and

4.Cadence reserves the right to revoke this authorization at any time, and any such use shall be

discontinued immediately upon written notice from Cadence.

Disclaimer: Information in this publication is subject to change without notice and does not represent a commitment on the part of Cadence. The information contained herein is the proprietary and con?dential information of Cadence or its licensors,and is supplied subject to,and may be used only by Cadence’s customer in accordance with, a written agreement between Cadence and its customer. Except as may be explicitly set forth in such agreement, Cadence does not make, and expressly disclaims, any representations or warranties as to the completeness, accuracy or usefulness of the information contained in this document. Cadence does not warrant that use of such information will not infringe any third party rights, nor does Cadence assume any liability for damages or costs of any kind that may result from use of such information.

Restricted Rights:Use,duplication,or disclosure by the Government is subject to restrictions as set forth in FAR52.227-14 and DFAR252.227-7013 et seq. or its successor.

Contents

Before Y ou Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 About This Manual. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 About the SKILL Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Other Sources of Information. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 Product Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 Other SKILL Development Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 Related SKILL API Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 Document Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 Section Names and Meaning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 Syntax Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 SKILL Syntax Examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9

1

Interprocess Communication

SKILL Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 Communicating With Child Processes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12 Handling Child Process Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12 Blocking Reads and the SKILL Evaluation Process. . . . . . . . . . . . . . . . . . . . . . . . . .13 T uning the Handlers to Avoid Freezing Graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . .13 Waiting for the Child to Become Active . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13 Data Buffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 Child Process Handles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 Formatting Child to Parent SKILL Communication. . . . . . . . . . . . . . . . . . . . . . . . . . .15 Detecting Child Process Termination. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 What’s New . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16 New Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16 New Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16 New Function Names and Handle T ype. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16 New Installation Requirement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17 Copying and Pasting Code Examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18

SKILL Development Help. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 Quick Reference T ool - Finder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20 SKILL Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21 ipcActivateBatch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21 ipcActivateMessages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23 ipcBatchProcess. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24 ipcBeginProcess. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25 ipcCloseProcess. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28 ipcContProcess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29 ipcGetExitStatus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30 ipcGetPid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31 ipcGetPriority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32 ipcIsActiveProcess. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33 ipcIsAliveProcess. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34 ipcKillAllProcesses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 ipcKillProcess. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36 ipcReadProcess. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 ipcSetPriority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39 ipcSkillProcess. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40 ipcSleep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43 ipcSoftInterrupt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44 ipcStopProcess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45 ipcWait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46 ipcWaitForProcess. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47 ipcWriteProcess. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48 Programming Examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49 Synchronous Input/Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49 Asynchronous Input/Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50 Multiple UNIX Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50

Before You Start

Overview information:

s“About This Manual” on page5

s“About the SKILL Language” on page5

s“Other Sources of Information” on page6

s“Document Conventions” on page7

About This Manual

This manual is for the following users.

s Programmers beginning to program in SKILL?.

s CAD developers who have experience programming in SKILL,

both Cadence internal users and Cadence customers.

s CAD integrators.

About the SKILL Language

The SKILL programming language lets you customize and extend your design environment. SKILL provides a safe,high-level programming environment that automatically handles many traditional system programming operations,such as memory management.SKILL programs can be immediately executed in the Cadence environment.

SKILL is ideal for rapid prototyping.Y ou can incrementally validate the steps of your algorithm before incorporating them in a larger program.

Storage management errors are persistently the most common reason cited for schedule delays in traditional software development.SKILL’s automatic storage management relieves your program of the burden of explicit storage management.Y ou gain control of your software development schedule.

SKILL also controls notoriously error-prone system programming tasks like list management and complex exception handling, allowing you to focus on the relevant details of your

algorithm or user interface design.Y our programs will be more maintainable because they will be more concise.

The Cadence environment allows SKILL program development such as user interface customization. The SKILL Development Environment contains powerful tracing, debugging, and pro?ling tools for more ambitious projects.

SKILL leverages your investment in Cadence technology because you can combine existing functionality and add new capabilities.

SKILL allows you to access and control all the components of your tool environment:the User Interface Management System, the Design Database, and the commands of any integrated design tool.Y ou can even loosely couple proprietary design tools as separate processes with SKILL’s interprocess communication facilities.

Other Sources of Information

For more information about SKILL and other related products, you can consult the sources listed below.

Product Installation

The Cadence Installation Guide tells you how to install the product.

Other SKILL Development Documentation

The following are SKILL development-related documents. Y ou can access this information directly using the CDSDoc SKILL menu.

SKILL Development Help

SKILL Development Functions Reference

SKILL Language User Guide

SKILL Language Functions Reference

SKILL++? Object System Functions Reference

Related SKILL API Documentation

Cadence tools have their own application procedural interface functions.Y ou can access the API manuals directly using the CDSDoc SKILL menu.

Design Framework II?SKILL Functions contains APIs for the graphics editor,database access,design management,technology?le administration,online environment,design?ow, user entry, display lists, component description format, and graph browser.

User Interface SKILL Functions contains APIs for management of windows and forms. Software Installation and License Management Reference in the Cadence Configuration Guide contains SKILL licensing functions.

Document Conventions

The conventions used in this document are explained in the following sections.This includes the subsections used in the de?nition of each function and the font and style of the syntax conventions.

Section Names and Meaning

Each function can have up to seven sections.Not every section is required for every function description.

s Syntax

The syntax requirements for this function.

s Prerequisites

Steps required before calling this function.

s Description

A brief phrase identifying the purpose of the function.

A text description of the operation performed by the function.

s Arguments

An explanation of the arguments input to the function.

s Return Value

An explanation of the value returned by the function.

s Example

Actual SKILL code using this function.

s References

Other functions that are relevant to the operation of this function:ones with partial or similar functionality or which could be called by or could call this function. Sections in this manual which explain how to use this function.

Syntax Conventions

This list describes the syntax conventions used in this document.

literal (LITERAL)

Nonitalic(UPPERCASE)words indicate keywords that you must

enter literally. These keywords represent command (function,

routine) or option names.

argument (z_argument)

Words in italics indicate user-de?ned arguments for which you

must substitute a name or a value. (The characters before the

underscore (_) in the word indicate the data types that this

argument can take. Names are case sensitive. Do not type the

underscore (z_) before your arguments.)

|Vertical bars (OR-bars) separate possible choices for a single

argument. They take precedence over any other character. [ ]Brackets denote optional arguments.When used with OR-bars,

they enclose a list of choices. Y ou can choose one argument

from the list.

{ }Braces are used with OR-bars and enclose a list of choices.Y ou

must choose one argument from the list.

...Three dots (...) indicate that you can repeat the previous

argument.If you use them with brackets,you can specify zero or

more arguments. If they are used without brackets, you must

specify at least one argument, but you can specify more.

argument...;specify at least one,

;but more are possible

[argument]... ;specify zero or more

,... A comma and three dots together indicate that if you specify

more than one argument,you must separate those arguments by

commas.

=>A right arrow points to the return values of the function.Variable

values returned by the software are shown in italics. Returned

literals, such as t and nil, are in plain text. The right arrow is

also used in code examples in SKILL manuals.

/A slash separates the possible values that can be returned by a

SKILL function.

Note:The language requires any characters not included in the list above. Y ou must enter required characters literally.

SKILL Syntax Examples

The following examples show typical syntax characters used in SKILL.

Example 1

list(g_arg1 [g_arg2] ...)=> l_result

This example illustrates the following syntax characters.

list Plain type indicates words that you must enter literally.

g_arg1Words in italics indicate arguments for which you must substitute

a name or a value.

( )Parentheses separate names of functions from their arguments. _An underscore separates an argument type (left) from an

argument name (right).

[ ]Brackets indicate that the enclosed argument is optional. ...Three dots indicate that the preceding item can appear any

number of times.

=> A right arrow points to the description of the return value of the

function. Also used in code examples in SKILL manuals.

l_result All SKILL functions compute a data value known as the return

value of the function.

Example 2

needNCells(s_cellType |st_userType x_cellCount)=> t/nil

This example illustrates two additional syntax characters.

|Vertical bars separate a choice of required options.

/Slashes separate possible return values.

1 Interprocess Communication

SKILL Functions

Overview information:

s“Overview” on page11

s“Communicating With Child Processes” on page12

s“What’s New” on page16

s“Copying and Pasting Code Examples” on page18

s“SKILL Development Help” on page18

s“Quick Reference T ool - Finder” on page20

s“SKILL Functions” on page21

s“Programming Examples” on page49

Overview

The Interprocess Communication (IPC) SKILL functions allow you to create and communicate with child processes. This mechanism allows SKILL-based programs access to IPC and process control functionality that would normally require system level programming.

Using this mechanism you can:

s Create encapsulation tools or utility programs.

s Communicate with encapsulated programs using standard IO channels.

s Control the encapsulated programs by sending signals like kill, interrupt, stop, and continue.

s Allow encapsulated programs to execute SKILL commands in the parent process.

s Run child processes on remote hosts.

The ability to run child processes, establish communication channels and control the processes through a SKILL procedural interface is a powerful utility. Programmers are advised to familiarize themselves with the basic principles of network and distributed programming.

Communicating With Child Processes

A child process can be a program that executes normally under the given operating system. Design Framework II? runs non-Cadence software as a child process. A child process can be as simple as execution of a UNIX? utility, such as,mail,wc,cat,ls, stand-alone simulator,a batch program,and so forth.Basically any process can be a child process,and run in parallel with the parent process that created it.

The parent process communicates with a child process by writing to the child process’s stdin channel and reading from its stdout and stderr https://www.360docs.net/doc/a77052565.html,munication can be carried out in one of two modes: synchronous or asynchronous.

Handling Child Process Output

When using SKILL interprocess communication,you should be aware of two possible modes of dealing with output from a child process. Y ou can synchronize the ?ow of a program with child process output by performing blocking read operations. A blocking read operation will wait until data arrives from the child process thereby guaranteeing sequential ?ow of your program.

Alternatively, you can choose to deal with output from a child process by registering a call-back function(referred to in this document as outputHandler).This function will be called asynchronously whenever data is received from a child process and the event manager in the parent program is ready to handle the data.

There is only one mode of operation for the write function. Write always returns with a success/failure status. When a call to write returns, it does not always mean that the child process received the data. It just means that the data was dispatched successfully.

Blocking Reads and the SKILL Evaluation Process

Caution

A blocking read overrides the outputHandler and data entered using one

of the methods is never available again for the other method to retrieve.

Y ou should determine in advance whether the use for SKILL IPC requires synchronous or asynchronous input and output handling, in which case either blocking reads or handlers should be the mode of operation.Synchronous and asynchronous output handling should not be mixed.An errHandler,once de?ned for a process,always receives the error messages despite a blocking read.

Caution

Remember when writing asynchronous data handling code that the SKILL

evaluation process blocks out any incoming messages.These messages

cannot be gathered until the evaluator winds down and control returns to

the top level.

It is sometimes necessary to open gaps in the evaluator to collect incoming messages.These gaps can be opened using one of the following methods:

s Blocking read with a time-out greater than0(dataHandlers will not be called during a blocking read)

s ipcSleep,ipcWait,ipcWaitForProcess (dataHandlers will be called during these calls)

Tuning the Handlers to Avoid Freezing Graphics

The data handlers are routines invoked by the SKILL interpreter in a non-deterministic fashion. Y ou must tune their performance with respect to the frequency of incoming data because their activation can disrupt the responsiveness of the user interface graphics. Remember,it can be annoying to a user when the system feels unresponsive during the time data handlers are executing.

Waiting for the Child to Become Active

The ipcBeginProcess and ipcSkillProcess function calls initiate a child process and return without waiting for that child to become active.

T o synchronize the activity of the parent process with that of the child process spawning and being ready for communication, use the ipcWaitForProcess function to force the parent process to wait until the child process is ready to communicate.

Data Buffers

The input and output performed by child processes must take into account buffer limitations. The standard IO channels have a4096byte buffer.For example,a child process’s output may not always get?ushed immediately after the child writes to stdout.A child process may have to ?ush data at appropriate points so the parent process can receive the data.

Buffer limits do not apply to the SKILL-based parent process.For example,a child process’s data is buffered in the parent process using memory pools limited only by the availability of runtime memory.

Data written to a child process’s stdin channel should be read by the child process frequently. If the stdin channel buffer ?lls up then the parent process discards data to prevent blocking on write.

Child Process Handles

A child process handle returned from a call to ipcBeginProcess,ipcSkillProcess,or ipcBatchProcess is an opaque data structure.

Child Process Read-Only Properties

A child process handle has the following read-only properties that can be accessed programmatically using the-> syntax.

Property Meaning

command Name of the command

host Name of the host machine running the process

processPid Process id of the child process on host

exitStatus Exit status of the child process

priority Priority given to the child process

type Begin, SKILL, or Batch process

state Active, Dead, or Stopped

Some of these properties are only meaningful if the child process is active. Once the child process expires, only state and exitStatus are guaranteed to have meaningful results. Formatting Child to Parent SKILL Communication

Processes invoked using ipcSkillProcess send SKILL commands back to the parent for execution.Each command sent by the child must be formatted in the following way to ensure error-free execution.

Surround Each Command With Parentheses

For example, to send two println commands, format the string this way: (println x) (println y)

When the child performs multiple print statements in sequence,the parentheses are needed: ..printf("(println x) ");printf("(println x) ");

Insert Spaces at the End of Each Command

Alternatively,use the SKILL prog construct to send compound statements to SKILL.SKILL commands sent by a child process can become packed together in one string and sent to SKILL to evaluate. Therefore, exercise care in using the correct syntax as in the example above.

This is similar to typing more than one command per line at the Command Interpreter Window.In fact,the CIW is a good place to experiment with formats of compound statements. Detecting Child Process Termination

There are two ways of detecting child process termination:

s The synchronous method using ipcIsAliveProcess or ipcWait.

s The asynchronous method using postFunc at initiation time.

Behavior is unde?ned if you mix the use of synchronous and asynchronous child process exit detection.

What’s New

The SKILL IPC mechanism was originally implemented as part of the Human Interface layer (hi).This layer was represented by the hiBeginProcess family of functions.This layer used X as the communication medium.

New Functions

The following functions have been added or changed in recent releases.

s ipcWait has been modi?ed to include the x_interval argument

New Layer

The hi-based layer is being replaced by a newly rewritten layer represented by the ipcBeginProcess family of functions. Although the function names are slightly different, their functionality is identical.

The aim of the new layer is to enhance performance and remove the dependency on X as a communication medium. The new layer uses sockets for interprocess communications. New Function Names and Handle Type

Users are encouraged to migrate their code from using hi-based communication functions to using the ipc* functions.

The main difference between the two procedural interfaces is that the child process handle returned from the function spawning the process (such as,hiBeginProcess) is no longer of type integer. The new implementation returns an opaque handle, that is, a C structure wrapped in SKILL. Only the type of the handle is different; its use remains the same.

Although the function names are slightly different, their functionality is identical.

Function Name Changes

New Name Being End-of-Lifed

ipcActivateBatch hiActivateBatch

ipcActivateMessages hiActivateMessages

ipcBatchProcess hiBatchProcess

Function Name Changes

New Name Being End-of-Lifed

ipcBeginProcess hiBeginProcess

ipcCloseProcess hiCloseChild

ipcContProcess hiContChild

ipcGetExitStatus hiGetExitStatus

ipcGetPid hiGetPid

ipcGetPriority hiGetPriority

ipcIsActiveProcess hiIsActiveChild

ipcIsAliveProcess hiIsAliveChild

ipcKillAllProcesses hiKillAllProcs

ipcKillProcess hiKillChild

ipcReadProcess hiReadChild

ipcSetPriority hiSetPriority

ipcSkillProcess hiSkillProcess

ipcSleep hiSleep

ipcSoftInterrupt hiSoftInterrupt

ipcStopProcess hiStopChild

ipcWait hiWait

ipcWaitForProcess hiWaitForChild

ipcWriteProcess hiWriteChild

New Installation Requirement

T o make IPC work,an installation in addition to the ones needed for normal SKILL operations is required. The bin package cdsServIpc must be present in the search path. This replaces the serv daemon used with the hi-based implementation.If you are running a child process remotely, then cdsServIpc must be present locally on the remote host.

Copying and Pasting Code Examples

Y ou can copy examples from CDSDoc windows and paste the code directly into the CIW or use the code in nongraphics SKILL mode.

T o select text

s

Press Control-drag left mouse to select a text segment of any size.s

Press Control-double click left mouse to select a word.s Press Control-triple click left mouse to select an entire section.SKILL Development Help

Information about the SKILL Development T oolbox is available in SKILL Development Help,which you access by clicking the Help button on the toolbox. Use this source for toolbox command reference information.

Finder...

Tracing...

SKILL Profiler...

SKILL Lint...

SKILL Debugger...

Commands Help SKILL Development

T o see SKILL Development Help,click

on the Help button.

Code Browser...

The Walkthrough topic in this help system identi?es and explains the tasks you perform when you develop SKILL programs using the SKILL Development T https://www.360docs.net/doc/a77052565.html,ing a demonstration program,it explains the various tools available to help you measure the performance of your code and also look for possible errors and inef?ciencies in your code.It includes a section on working in the non-graphical environment.

For a list of SKILL lint messages, and message groups, refer to the SKILL Development Help.

Quick Reference Tool - Finder

Quick reference information for syntax and abstract statements for SKILL language functions and application procedural interfaces (APIs) is available using the Finder, a new tool accessible from the SKILL Development Toolbox or from UNIX?.

For more information refer to Finder in SKILL Development Help.

excel表格的各函数常用函数

excel表格的各函数的基本操作 常用函数如下: 1、SUM()求和、总分函数 例:=SUM(B2:B5) 2、A VERAGE()求平均函数 例:=A VERAGE(B2:B5) 3、MIN()求最小值函数 例:=MIN(B2:B5) 4、MAX()求最大值函数 例:=MAX(B2:B5) 5、COUNTIF()求条件统计函数( 例:=COUNTIF(B7:B33,“>=90”) 6、COUNT()求统计函数 例:=COUNT(B7:B33) 7、IF()求逻辑函数 例:=IF(G7>=90,“优秀”,IF(G7>=80,“良好”,IF(G7)>=70,“中等”,IF(AND(G7<70,G7>0),“差生”,“没参考”)))) 8、RANK()求名次函数 例:=RANK(G7,$G$7:$G$33) 9、NOW()求电脑现在日期 例:=NOW() 10、求“性别”函数 例:=IF(MOD(MID(B6,15,1),2)=0,"女","男") 11、求“出生日期”函数 例:=CONCATENA TE(MID(B6,7,2),"-",MID(B6,9,2),"-",MID(B6,11,2)) 12、求“年龄”、“工龄”函数 例:=DATEDIF(E6,NOW(),"Y") 13、求“等级”函数 例:=IF(C6="基础班","入门级",IF(OR(C6="AUTOCAD班",C6="PHOTOSHOP",C6="CORELDRAW"),"平面设计级",IF(C6="综合班","综合办公应用级",IF(C6="OFFICE套班","办公应用级","网络设计级")))) 14、SUNIF()条件求和函数(根据指定的条件求和) 例:=SUMIF(B7:B33,">=100") 例:=SUMIF(C7:C36,"=人事",D7:D36)

牛津英语初三写作课improve your writing skill 教学设计

牛津英语初三写作课——improve your writing skill教学设计 教材分析: 在初三的第二学期,面对学生在写作过程中出现的一系列问题,如偏题,离题,语法错误多,单词句型单一,于是我针对中考作文的要求,以一篇作文为基础,展开一节作文讲评课,以期提高学生的写作能力。 学情分析: 初三(2)班学生数32人,有17名女生和15名男生。本班属于初三平行班,学生的学习基础一般,上学期期末的英语平均成绩是96分。学习习惯有待改进,目前已接近中考,班级整体学习英语的气氛比较好,优等生已经养成了良好的英语学习习惯,成绩较稳定,中等生对基础知识掌握不牢或者不会融会贯通,导致在输出的主要环节———写作时问题较多,但主要集中在语言运用上,学困生在英语学习上的障碍直接影响了写作的得分,所以我们只能保持其兴趣,鼓励其多写! 教学目标: 这是一节写作课,用一篇学生写过的以Computers have changed our life为题的作文为例子,围绕中考写作评价基本要求,按照内容、语言、结构三个方面来展开。这三个方面所需要的例子都是来自学生们的这篇作文。这节课的教学目标是:1让学生掌握中考作文的三个方面—内容、语言和结构。2让学生修改自己作文出现的常见语言错误。3帮助学生学会在作文中使用美丽的词藻,短语和句型以及连接词和谚语。4通过以上的学习让学生体会语言的差异和优美。 重点难点: 教学重点:1让学生改正语言运用时常见的错误,例如:可数名词和不可数名词的用法,动词尤其是系动词,情态动词的用法,还有如何用地道的英语表达来代替中国式英语。 2 让学生学会在作文中更多的使用连接词和谚语。 教学难点:1学生在写作时要做到内容切题,不说废话。 2 学生在写作时语言运用基本正确,少语法错误。 3学会自如的使用优美的词句和短语来为文章增色。 课前准备: 1学生的学习准备:学生在上课之前写了两篇文章,一篇是去年中考的作文:I want to do

雅思口语Part2话题范例:Skill

雅思口语Part2话题范例:Skill Question Describe a skill you wish you had. Sample answer If I ever get the chance to learn a new skill, I would like to learn karate which is a form of martial art. I had a great fascination and attraction to learn it but never had the chance actually to learn it. This is important for keeping a sound body and to remain fit. It is also a great weapon of self defense in time of adversity and sudden attack by rouge people. The greatest benefit this karate offers is a discipline and self control. Besides the physical exercise, patience and hard work karate requires a great deal of mental power, calmness and a type of discipline which are necessary for a modest life. If I get the chance, I would get admitted in a good karate learning training center that would offer a really good training so that I can efficiently learn it. I will need to devote a great deal of regular time and will have to have the determination to learn the necessary skill. I would like to get involve in some kind of activity which is helpful to keep the body and soul sound. Physical exercise is one way to do that but karate would be more helpful as it would require the mental patience, determination as well. I have found some of my friends and relatives found it very helpful in their lives and I was inspired by their discussion regarding the usefulness of this martial art. Similar Cue Card Topics Your ability to talk about this Cue Card would enable you to talk about the following Cue Cards as well: Describe a skill or quality you have. Describe a skill you wish you had. Describe something you plan to learn in the future. Describe one of your friends who has a positive quality or special skill. Describe a technically skilled person you know about.

MT明泰_读卡器_API接口函数库使用说明书

API接口函数库使用说明 部文件:V1.0.20 发布时间:2015-04-29

版本更新记录

目录 API接口函数库使用说明 (1) 1. 文档概述 (6) 1.1. 文档围 (6) 1.2. 面向对象 (6) 1.3. 参考资料 (6) 2. 函数库介绍 (6) 2.1. 功能 (6) 2.2. 性能 (7) 3. 运行环境 (7) 3.1. 硬设备 (7) 3.2. 软件的运行平台 (7) 3.3. 函数调用方法 (8) 3.3.1. Delphi调用32位动态库的方法 (8) 3.3.2. VB调用32位动态库的方法 (9) 3.3.3. VC调用32位动态库的方法 (11) 4. API介绍 (11) 4.1. 函数调用流程 (11) 4.1.1. 非接触式存储卡API调用流程 (11) 4.1.2. 非接触式CPU卡片API调用流程 (12) 4.1.3. 接触式CPU卡片API调用流程 (12) 4.1.4. 接触式存储卡片API调用流程 (12) 4.1.5. API调用流程 (12) 4.1.6. 函数操作结果信息表 (16) 4.2. 设备操作函数组 (19) 4.2.1 打开读写器device_open (19) 4.2.2 关闭读写器device_close (19) 4.2.3 判断设备通讯类型device_gettype (19) 4.2.4 设置通讯波特率device_setbaud (20) 4.2.5 获取读写器版本信息device_version (20)

4.2.6 读写器蜂鸣device_beep (21) 4.2.7 LED灯控制 device_ledctrl (21) 4.2.8 获取读写器生产序列号 device_readsnr (22) 4.2.9 获取设备状态 get_device_status (22) 4.2.10 读取读卡器的EEPROM (23) 4.2.11更新读卡器的EEPROM (23) 4.2.12 复位串口配置信息 ReSetupComm (24) 4.2.13 读卡器软复位 device_reset (24) 4.2.14 获取设备状态扩展 get_device_statusEx (25) 4.2.15 获取非接触式CPU卡卡片状态 dev_cardstate (25) 4.2.16 获取接触式CPU卡到位状态 ICC_GetStatus (26) 4.2.17 读EMID号Dev_GetEMID (26) 4.3 接触式卡片操作函数 (27) 4.3.1 判断接触式卡片状态sam_slt_getstate (27) 4.3.2 接触式卡片上电复位sam_slt_reset (28) 4.3.3 接触式卡设置复位波特率sam_slt_reset_baud (28) 4.3.4 接触式卡片下电sam_slt_powerdown (29) 4.4. 非接触 CPU 卡函数 (29) 4.4.1 激活非接触式卡open_card (29) 4.4.2 设置非接触式卡片为halt状态 rf_halt (30) 4.4.3 应用层传输命令card_APDU (31) 4.5 非接触式存储卡操作函数 (31) 4.5.1 激活非接触式存储卡rf_card (31) 4.5.2 非接触式存储卡认证扇区 rf_authentication (33) 4.5.3 非接触式存储卡读数据rf_read (33) 4.5.4 非接触式存储卡写数据rf_write (34) 4.5.5 非接触式存储卡读值块rf_readval (34) 4.5.6 非接触式存储卡写值块rf_initval (35) 4.5.7 非接触式存储卡加值rf_increment (35) 4.5.8 非接触式存储卡减值rf_decrement (36) 4.5.9 非接触式存储卡值传送 rf_transfer (36) 4.6 二代操作函数 (37) 4.6.1 卡操作指令-读卡IDCard_Read (37) 4.6.2 卡操作指令-读卡IDCard_ReadCard (39) 4.6.3卡操作指令根据索引获取数据IDCard_GetCardInfo (40) 4.6.4 获取二代证模块ID IDCard_GetModeID (40) 4.6.5 读卡模块扩展一IDCard_ReadCard_Extra (41) 4.6.6 设置二代证照片存储路径 IDCard_SetPhotoPath (41) 4.6.7 设置二代证照片名字 IDCard_SetPhotoName (42) 4.6.8 读二代证信息扩展二 IDCard_ReadCard_Ex (42) 4.6.9 删除所有二代证照片文件delete_all_photofile (44) 4.6.10 获取卡ID号IDCard_Read_IDNUM (44) 4.6.11 获取卡IDCard_Name (45) 4.6.12 获取卡性别IDCard_Sex (45)

excel函数公式图文说明教程

excel函数公式实例教程 excel教程珍藏版,简单明了,包你学会,欢迎转载! 教程在陆续上传添加中,敬请期待! 1、PERCENTILE函数实例:求百分比数值点 Excel中PERCENTILE函数实例:求百分 比数值点 [日期:2010-08-09] 来源:IT部落窝作者:IT部落窝阅读:8560次[字体:大中小] Excel中PERCENTILE函数的用法是:返回区域中数值的第 K 个百分点的值。 PERCENTILE函数实例:求百分比数值点 下面是IT部落窝某几天的一个流量表,详见下图。现在要统计出90%、80%、70%、60%、50%对应的百分比数值点。我们使用PERCENTILE函数设计公式来求取。 操作步骤如下:

第一步,选中B17单元格,输入公式:=PERCENTILE(C2:C14,0.9),确定,得到90%处的对应的百分比数值点。 第二步,选中B18单元格,输入公式:=PERCENTILE(C2:C14,0.8),确定,得到80%处的对应的百分比数值点。 第三步,选中B19单元格,输入公式:=PERCENTILE(C2:C14,0.7),确定,得到70%处的对应的百分比数值点。 第四步,选中B20单元格,输入公式:=PERCENTILE(C2:C14,0.6),确定,得到60%处的对应的百分比数值点。 第五步,选中B21单元格,输入公式:=PERCENTILE(C2:C14,0.5),确定,得到50%处的对应的百分比数值点。 2、frequency函数实例:统计一组数据出现的次数

frequency函数实例:统计一组数据出 现的次数 [日期:2010-08-06] 来源:IT部落窝作者:IT部落窝阅读:5390次[字体:大中小] 下表中统计了公司员工被投诉的记录。问题是统计出指定的员工编号被投诉的出现次数。 我们使用excel中frequency函数可以实现出现次数统计。frequency函数用于计算数值在某个区域内的出现频率次数,然后返回一个垂直数组。 操作步骤如下: 首先在C列建立需要参与统计投诉出现次数的员工编号,然后选中D5:D8单元格区域,在编辑栏输入公式:=FREQUENCY(B2:B11,C5:C8),然后按下“Ctrl+Shift+Enter”组合键,即可一次性统计出各个编号在B2:B11单元格区域中出现的次数。 3、frequency函数用法介绍 Excel中frequency函数用法介绍 [日期:2010-08-06] 来源:IT部落窝作者:IT部落窝阅读:6622次[字体:大中小]

C语言标准库函数

标准库函数 本附录描述了标准C支持的库函数①。使用此附录时,请记住下列要点。 为了简洁清楚,这里删除了一些细节。如果想看全部内容,请参考标准。本书的其他地方已经对一些函数(特别是printf函数、scanf函数以及它们的变异函数)进行了详细介绍,所以这里 只对这类函数做简短的描述。为了获得关于某个函数更详细的信息(包括如何使用这个函数的示 例),请见函数描述右下角用楷体列出的节号。 每个函数描述结尾都有其他与之相关函数的列表。相似函数非常接近于正在描述的函数。相关函数经常会和在描述的函数联合使用。(例如,calloc函数和realloc函数与malloc函数“类似”, 而free函数则与malloc函数“相关”。)也可参见的函数和在描述的函数没有紧密联系,但是却 可能有影响。 如果把函数行为的某些方面描述为由实现定义的,那么这就意味着此函数依赖于C库的实现方式。 函数将始终行为一致,但是结果却可能会由于系统的不同而千差万别。(换句话说,请参考手册了 解可能发生的问题。)另一方面,未定义的行为是一个不好的消息:不但函数的行为可能会因系统 不同而不同,而且程序也可能会行为异常甚至崩溃。 中许多函数的描述提到了定义域错误和取值范围错误。在本附录的末尾对这两种错误进行了定义。 601 下列库函数的行为是会受到当前地区影响的: 字符处理函数(除了isdigit函数和isxdigit函数)。 格式化输入/输出函数。 多字节字符和字符串函数。 字符串转换函数。 Strcoll函数、strftime函数和strxfrm函数。 例如,isalpha函数实际上检测字符是否在a到z之间或者在A到Z之间。在某些区域内也把其他字符看成是字母次序的。本附录描述了在"C"(默认的)地区内库函数的行为。 一些函数实际上是宏。然而,这些宏的用法和函数完全一样,所以这里不对它们区别对待。 abort 异常终止程序 void abort(void); 产生SIGABRT信号。如果无法捕获信号(或者如果信号处理函数返回),那么程序会异常 终止,并且返回由实现定义的代码来说明不成功的终止。是否清洗输出缓冲区,是否关 闭打开的流,以及是否移除临时文件都是由实现定义的。 相似函数exit函数、raise函数 相关函数assert函数、signal函数 也可参见atexit函数 26.2节abs 整数的绝对值 int abs(int j); 返回整数j的绝对值。如果不能表示j的绝对值,那么函数的行为是未定义的。 ①这些材料经ANSI许可改编自American National Standards Institude ANSI/ISO 9899?1990。这个标准的副本可从 ANSI购买(ANSI, 11 West 42nd Street, New York, NY 10036)。

API函数手册

POSTEK PPLⅠAPI函数手册 G Series 条码标签打印机 Version 2.00 深圳市博思得通信发展有限公司 二○○四年

API函数库文件说明 名称:CDFPSK.dll 中文版本编号:1.X.X.X 英文版本编号:2.X.X.X 版权所有:?2004深圳市博思得通信发展有限公司。保留所有权利。 用途 本API函数库为深圳市博思得通信发展有限公司条码标签打印机的用户提供一组命令,为他们编写基于Windows9X,NT,2000,XP等操作系统的应用程序提供便利。 本API函数库仅支持本公司产品。 缩略语对照 PPLⅠ:深圳市博思得通信发展有限公司的第一套打印机编程语言(Printer Porgram Language Ⅰ)。 API:应用程序编程接口(Application Program Interface)。 Dots:像素(pixel)是一种计算机科学技术尺寸单位,原指电视图像成像的最小单位,在打印机领域表示打印机的最小打印成像单位:1dot等于一英寸除以打印机的最大分辨率。 - 对于203DPI的打印机来说, 1dot = 25.4mm/203 = 0.125mm(1dot = 1000 / 203 = 5mil); - 对于300DPI的打印机来说, 1dot = 25.4mm/300 = 0.085mm(1dot = 1000 / 300 = 3mil)。 TrueType Font:是基于Windows操作系统使用,可装卸的字体。 - 已经安装的TrueType Font,都可以被本函数使用。 使用前须知 字符串 * 字符串以双引号(“)作为起始和结束标记; *

英语泛读教程2 reading skill C部分题目的单词解释

Unit1 1.requite vt. 报答,回报;酬谢[ 过去式requited 过去分词requited 现在分词 requiting ] 2.prospect n. 前途;预期;景色 3.station vt. 配置;安置;驻扎 4.on the side 作为兼职,作为第二职业 5.well up 涌出;流露;萌发take shape v. 形成;成形;体现;具体化overwhelm vt. 淹没;压倒;受打击;覆盖;压垮 6.veteran adj. 经验丰富的;老兵的 7.Wilted adj. 枯萎的;萎蔫的edible adj. 可食用的n. 食品;食物 8.Limelight n. 石灰光,石灰光灯;众人注目的中心(但此题只根据它字面意思选, 选D)dazzling adj. 耀眼的;眼花缭乱的substantial success 实质的成就 9.Exhilarating adj. 使人愉快的;令人喜欢的;爽快的 10.Corroded adj. 侵蚀的,已被腐蚀的rusted adj. 锈的,已被腐蚀的 Unit2 1.Ethics n. 伦理学;伦理观;道德标准ideology n. 意识形态;思想意识;观念 学 2.Assess vt. 评定;估价;对…征税evaluate vt. 评价;估价;求…的值scrutinize vt. 详细检查;细看decompose vi. 分解;使腐烂 3.Overlapping adj. 重叠;覆盖 4.Conceive 构思;以为;持有,怀孕contending adj. 争先的,争辩conceptualizing 使概念化,仔细构想 5.Transcend vt. 胜过,超越 6.undermine vt. 破坏,渐渐破坏;挖掘地基enhance vt. 提高;加强;增加 7.sanction vt. 制裁,处罚;批准;鼓励framing v. 制定;构造;装框子(frame 的ing形式)confining adj. 受限的,限制的;狭窄的,偏狭的;拘束的 8.orchestrated 使…协调地结合在一起,精心安排(orchestrate的过去式和过去分词) coordinated adj. 协调的refined adj. [油气][化工][冶] 精炼的;精确的sophisticated adj. 复杂的;精致的;久经世故的;富有经验的 9.encompass vt. 包含;包围,环绕;完成 10.intensifying v. 加紧,加剧;加强;增强(intensify的现在分词)retarding v. 迟滞, 减速(retard的ing形式);延迟

DLL函数接口说明

typedef void __stdcall (*fun_AddResult)(char pDataStr[10][255],double pDataDouble[100]); extern "C" void __declspec(dllimport) __stdcall SetBackColor(TColor pBkColor); extern "C" void __declspec(dllimport) __stdcall FanSelect( void *pSeriesNames,//系列名称YLDStr * (typedef struct{char Data[255];} YLDStr;) const int pSeriesNameCount,//系列名称个数,-1时表示全部选择 void *pSubSeriesNames,//系列名称YLDStr * (typedef struct{char Data[255];} YLDStr;) const int pSubSeriesNameCount,//子系列名称个数,-1时表示全部选择 const double &pFlow, //风量 const int &pFlowUnitType, //风量单位类型0-m^3/h 1-m^3/s 2-l/s 3-cfm const double &pPres, //风压 const int &pPresUnitType, //风压单位类型0-Pa 1-mmH2O 2-kgf/cm^2 3-inH2O const int &pPresType, //风压类型0-全压1-静压 const int &pOutFanType,//出风方式0-管道出风1-自由出风 const double &pAirDensity,//空气密度 const double &pMotorSafeCoff,//电机容量安全系数(%) const bool &pUserSetMotorSafeCoff,//用户设定了电机容量安全系数 double &rFlow_STDUnit,//标准单位下的风量 fun_AddResult pAddResult//函数指针,用于回传数据 ); extern "C" void __declspec(dllimport) __stdcall Belt_Selection( const char *pSeriesName, const char *pSubTypeName, const char *pModelName, const int &pSped_DataType,//电机转速类型0-标准数据1-用户数据默认为0(界面选择) const int &pHz_DataType,//频率选择0-50HZ 1-60HZ(界面选择) const int &pRotation,//出风旋转角度R0,R90,R180,R270(参考常量定义) const double &pFanSped,//风机转速(第一步计算得到) const double &pMotorPow,//电机功率(第一步计算得到) const double &pFlow_STDUnit,//标准单位下的风量 const double &pTPres,//全压(第一步计算得到) const double &pSPres,//静压(第一步计算得到) const double &pFTEff,//全压内效率(第一步计算得到) const double &pSdbA,//噪声(第一步计算得到) const int &pV olt,//用户选择的电压(参考电压常量声明V380 V400) , bool pPole[4],//用户选择的极数2,4,6,8 bool pBeltType[4],//用户选择的皮带类型SPZ SPA SPB SPC const bool &pBeSetFanSped,//用户设定了风机转速 const double &pFanSpedRt_User,//用户设定的风机转速差 const bool &pBeSetBeltMoveSped,//用户设定最大皮带运动速度 const double &pBeltMoveSped_User,//用户设定的最大皮带运动速度

1C语言入门_3简单函数_3形参和实参解读

第 3 章 简单函数 3. 形参和实参
下面我们定义一个带参数的函数, 我们需要在函数定义中指明参数的个数和每个 参数的类型,定义参数就像定义变量一样,需要为每个参数指明类型,参数的命 名也要遵循标识符命名规则。例如: 例 3.4. 带参数的自定义函数
#include
void print_time(int hour, int minute) { printf("%d:%d\n", hour, minute); }
int main(void) { print_time(23, 59); return 0; }
需要注意的是, 定义变量时可以把相同类型的变量列在一起,而定义参数却不可 以,例如下面这样的定义是错的:
void print_time(int hour, minute) {

printf("%d:%d\n", hour, minute); }
学习 C 语言的人肯定都乐意看到这句话:“变量是这样定义的,参数也是这样 定义的,一模一样”,这意味着不用专门去记住参数应该怎么定义了。谁也不愿 意看到这句话:“定义变量可以这样写,而定义参数却不可以”。C 语言的设计 者也不希望自己设计的语法规则里到处都是例外, 一个容易被用户接受的设计应 该遵循最少例外原则(Rule of Least Surprise)。其实关于参数的这条规定也不 算十分例外,也是可以理解的,请读者想想为什么要这么规定。学习编程语言不 应该死记各种语法规定,如果能够想清楚设计者这么规定的原因(Rationale), 不仅有助于记忆,而且会有更多收获。本书在必要的地方会解释一些 Rationale, 或者启发读者自己去思考, 例如上一节在脚注中解释了 void 关键字的 Rationale。 [C99 Rationale]是随 C99 标准一起发布的,值得参考。 总的来说,C 语言的设计是非常优美的,只要理解了少数基本概念和基本原则就 可以根据组合规则写出任意复杂的程序, 很少有例外的规定说这样组合是不允许 的,或者那样类推是错误的。相反,C++的设计就非常复杂,充满了例外,全世 界没几个人能把 C++的所有规则都牢记于心,因而 C++的设计一直饱受争议, 这个观点在[UNIX 编程艺术]中有详细阐述。 在本书中,凡是提醒读者注意的地方都是多少有些 Surprise 的地方,初学者如 果按常理来想很可能要想错, 所以需要特别提醒一下。而初学者容易犯的另外一 些错误, 完全是因为没有掌握好基本概念和基本原理,或者根本无视组合规则而 全凭自己主观臆断所致, 对这一类问题本书不会做特别的提醒,例如有的初学者 看完第 2 章 常量、变量和表达式之后会这样打印π 的值:
double pi=3.1416; printf("pi\n");
之所以会犯这种错误,一是不理解 Literal 的含义,二是自己想当然地把变量名 组合到字符串里去, 而事实上根本没有这条语法规则。如果连这样的错误都需要 在书上专门提醒,就好比提醒小孩吃饭一定要吃到嘴里,不要吃到鼻子里,更不 要吃到耳朵里一样。 回到正题。我们调用 print_time(23, 59)时,函数中的参数 hour 就代表 23,参 数 minute 就代表 59。确切地说,当我们讨论函数中的 hour 这个参数时,我们 所说的“参数”是指形参(Parameter),当我们讨论传一个参数 23 给函数时, 我们所说的“参数”是指实参(Argument),但我习惯都叫参数而不习惯总把 形参、实参这两个文绉绉的词挂在嘴边(事实上大多数人都不习惯),读者可以 根据上下文判断我说的到底是形参还是实参。 记住这条基本原理: 形参相当于函

CadenceSkill语言简介

Cadence skill语言简介 Cadence提供二次开发的SKILL语言,它是一种基于通用人工智能语言—Lisp 的交互式高级编程语言(LISP即List Processing-表处理,是最早和最重要的符号处理编程语言之一,它于1958年由美国的J. McCarthy提出,LISP在人工智能AI方面获得广泛应用)。 SKILL语言支持一套类似C语言的语法,大大降低了初学者学习的难度,同时高水平的编程者可以选择使用类似Lisp语言的全部功能。所以SKILL语言既可以用作最简单的工具语言,也可以作为开发任何应用的、强大的编程语言。SKILL可以与底层系统交互,也提供了访问Cadence各个工具的丰富接口。用户可以通过Skill语言来访问,并且可以开发自己的基于Cadence平台的工具。 1. Skill语言和Lisp语言的关系 Skill函数提供两种表示法,一种是代数表示法,现在大多数语言采取这种方式,即func( arg1 arg2 ...),另一种是前缀表示法,类似于Lisp语言,即(func arg1 arg2 ...)。这里举个例子作为对比: 1.代数表示法 procedure( fibonacci(n) if( (n == 1 || n == 2) then 1 else fibonacci(n-1) + fibonacci(n-2) ) ) 2.前缀表示法 (defun fibonacci (n) (cond ((or (equal n 1) (equal n 2)) 1) (t (plus (fibonacci (difference n 1)) (fibonacci (difference n 2)))) ) ) 这里可以看到类似Lisp语言的表示法后面有很多右括号,而且函数和参数容易混淆,所以一般推荐还是用常用的类C语言代数表示法 Skill程序就像一个list表,类似Lisp语言,程序的操作就像操作数据(list)一样,可以生成,修改,求值等 2. 关于Skill函数 SKILL语言支持一套类似C语言的语法,初学者有了一定的C语言基础,入门是很容易的。Cadence的工具可以通过CIW,Bindkey,Form,Menu等多种方式调用skill函数,送到skill语言的解释器来执行各种操作。

api接口文档

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。API除了有应用“应用程序接口”的意思外,还特指API的说明文档,也称为帮助文档。 API:应用程序接口(API:Application Program Interface) 应用程序接口(是一组定义、程序及协议的集合,通过API 接口实现计算机软件之间的相互通信。API 的一个主要功能是提供通用功能集。程序员通过调用API 函数对应用程序进行开发,可以减轻编程任务。API 同时也是一种中间件,为各种不同平台提供数据共享。 根据单个或分布式平台上不同软件应用程序间的数据共享性能,可以将API 分为四种类型: 远程过程调用(RPC):通过作用在共享数据缓存器上的过程(或任务)实现程序间的通信。 标准查询语言(SQL):是标准的访问数据的查询语言,通过数据库实现应用程序间的数据共享。 文件传输:文件传输通过发送格式化文件实现应用程序间数据共享。

信息交付:指松耦合或紧耦合应用程序间的小型格式化信息,通过程序间的直接通信实现数据共享。 当前应用于API 的标准包括ANSI 标准SQL API。另外还有一些应用于其它类型的标准尚在制定之中。API 可以应用于所有计算机平台和操作系统。这些API 以不同的格式连接数据(如共享数据缓存器、数据库结构、文件框架)。每种数据格式要求以不同的数据命令和参数实现正确的数据通信,但同时也会产生不同类型的错误。因此,除了具备执行数据共享任务所需的知识以外,这些类型的API 还必须解决很多网络参数问题和可能的差错条件,即每个应用程序都必须清楚自身是否有强大的性能支持程序间通信。相反由于这种API 只处理一种信息格式,所以该情形下的信息交付API 只提供较小的命令、网络参数以及差错条件子集。正因为如此,交付API 方式大大降低了系统复杂性,所以当应用程序需要通过多个平台实现数据共享时,采用信息交付API 类型是比较理想的选择。 API 与图形用户接口(GUI)或命令接口有着鲜明的差别:API 接口属于一种操作系统或程序接口,而后两者都属于直接用户接口。 有时公司会将API 作为其公共开放系统。也就是说,公司制定自己的系统接口标准,当需要执行系统整合、自定义和程序应用等操作时,公司所有成员都可以通过该接口标准调用源代码,该接口标准被称之为开放式API。

EXCEL公式手册

这个东西其实是公司一个很老的培训资料,内容非常简单,说白了就是把Excel里按F1打开帮助都能找到的东西贴出来而已。这个东西的唯一价值,只是告诉你这些公式你可能会用得到,所以老手就不必看了,也不必喷了。我在原文的基础上添加了AVERAGEIF、AVERAGEIFS、SUMIFS、COUNTIFS和IFERROR函数(适用于2007以上版本)。 Contents Chapter 0:Updates内容更新 0.1 AVERAGEIF 0.2 AVERAGEIFS、SUMIFS、COUNTIFS 0.3 IFERROR Chapter 1:Text Functions文本函数 1.1 Concatenate 1.2 Exact 1.3 Upper 1.4 Lower 1.5 Left 1.6 Right 1.7 Len 1.8 Trim 1.9 Text 1.10 Substitute Chapter 2:LOOKUP查询函数 2.1 HLookup 2.2 VLookup 2.3 Lookup Chapter 3:Date and Time日期与时间函数 3.1 Today 3.2 Year

3.4 Day 3.5 Date 3.6 Time 3.7 Hour 3.8 Minute 3.9 Second Chapter 4:Math数学函数4.1 ABS 4.2 INT 4.3 PRODUCT 4.4 MOD 4.5 Rand 4.6 ROUND 4.7 ROUNDUP 4.8 ROUNDDOWN 4.9 SumIF 4.10 SumProduct 4.11 Trunc Chapter 5:Logical逻辑函数5.1 And 5.2 Not 5.3 Or 5.4 True 5.5 False 5.6 If Chapter 6:Financial财务函数6.1 PMT

如何学好并精通C语言

程序员之路——如何学习C语言并精通C语言 程序员之路——如何学习C语言 学习C语言不是一朝一夕的事情,但也不需要花费十年时间才能精通。如何以最小的代价学习并精通C 语言是本文的主题。请注意,即使是“最小的代价”,也绝不是什么捷径,而是以最短的时间取得最多的收获,同时也意味着你需要经历艰苦的过程。 一、要读就读好书,否则不如不读 所有初学者面临的第一个问题便是:如何选择教材。好的开始是成功的一半,选择一本优秀的教材是事半功倍的关键因素。不幸的是,学校通常会帮你指定一本很差劲的C语言课本;而幸运的是,你还可以再次选择。 大名鼎鼎的谭浩强教授出了一本《C语言程序设计》,据说发行量有超过400万,据我所知,很多学校都会推荐这本书作为C语言课本。虽然本人的名字(谭浩宇)跟教授仅仅一字之差,但我是无比坚定地黑他这本书的。这本书不是写给计算机专业的学生的,而是给那些需要考计算机等级考试的其它专业学生看的。这本书的主要缺点是:例子程序非常不专业,不能教给你程序设计应该掌握的思考方式;程序风格相当地不好,会让你养成乱写代码的恶习;错误太多,曾经有人指出过这本书的上百个错误,其中不乏关键的概念性错误。好了,这本书我也不想说太多了,有兴趣大家可以百度一下:) Kernighan和Ritchie的《The C Programming Language》(中译名《C程序设计语言》)堪称经典中的经典,不过旧版的很多内容都已过时,和现在的标准C语言相去甚远,大家一定要看最新的版本,否则不如不看。另外,即使是最经典最权威的书,也没有办法面面俱到,所以手边常备一本《C语言参考手册》是十分必要的。《C语言参考手册》就是《C Reference Manual》,是C语言标准的详细描述,包括绝大多数C标准库函数的细节,算得上是最好的标准C语言的工具书。顺便提一句,最新的《C程序设计语言》是根据C89标准修订的,而《C语言参考手册》描述的是C99标准,二者可能会有些出入,建议按照C99标准学习。还有一本《C和指针》,写得也是相当地不错,英文名是《Pointers on C》,特别地强调指针的重要性,算是本书的一个特点吧。不过这本书并不十分适合初学者,如果你曾经学过C语言,有那么一些C语言的基础但又不是很扎实,那么你可以尝试一下这本书。我相信,只要你理解了指针,C语言便不再神秘。 如果你已经啃完了一本C语言教材,想要更进一步,那么有两本书你一定要看。首先是《C Traps and Pitfalls》(中译名《C陷井与缺陷》),很薄的一本小册子,内容非常非常地有趣。要注意一点,这本书是二十多年前写成的,里面提到的很多C语言的缺陷都已被改进,不过能够了解一些历史也不是什么坏事。然后你可以挑战一下《Expert C Programming》(中译名《C专家编程》),书如其名,这本书颇具难度,一旦你仔细读完并能透彻理解,你便可以放心大胆地在简历上写“精通C语言”了。 切记一个原则,不要读自己目前还看不懂的书,那是浪费生命。如果你看不懂,那你一定是缺失了某些必需基础知识。此时,你要仔细分析自己需要补充哪些内容,然后再去书店寻找讲述的这些内容的书籍。把基础知识补充完毕再回头来学习,才会真正的事半功倍。 二、Unix/Linux还是Windows,这是个很大的问题 不同的编程环境会造就出不同思维的程序员。Windows的程序员大多依赖集成开发环境,比如Visual Studio,而Unix程序员更加钟爱Makefile与控制台。显而易见,集成开发环境更容易上手,在Windows上学习C语言,只需要会按几个基本的Visutal C++工具栏按钮就可以开始写Hello, World!了,而在Unix下,你需要一些控制台操作的基本知识。有人也许认为Unix的环境更简洁,但习惯的力量是很大的,大家都很熟悉Windows的基本操作,而为了学习C语言去专门装一个Unix系统,似乎有点不划算。 对于一个只懂得Windows基本操作、连DOS是什么都不知道的新手而言,尽快做一些有趣而有意义的事情才是最重要的。用C语言写一个小程序远比学习ls、cat等命令有趣,况且我们要专注于C语言本身,就不得不暂时忽略一些东西,比如编译链接的过程、Makefile的写法等等等等。 所以我建议初学者应该以Visual C++ 6.0(不是VisualC++ .NET)或者Dev C++作为主要的学习环境,而且千万不要在IDE的使用技巧上过多纠缠,因为今后你一定要转向Unix环境的。Visual C++ 6.0使用很方便,调试也很直观,但其默认的编译器对C标准的支持并不好,而Dev C++使用gcc编译器,对C99的标准都支持良好。使用顺带提一下,很多大学的C语言课程还在使用Turbo C 2.0作为实验环境,这是相当不可取的,原因其一是TC 2.0对C标准几乎没有支持,其二是TC 2.0编译得到的程序是16位的,这对今后理解32位的程序会造成极大的困扰(当然,用djgpp之类的东西可以使TC

相关文档
最新文档