CISSP考试指南笔记:8.8 编程语言和概念

admin 2022年9月16日08:39:22评论17 views字数 3392阅读11分18秒阅读模式

Machine language is in a format that the computer’s processor can understand and work with directly.

An assembly language is considered a low-level programming language and is the symbolic representation of machine-level instructions.

Third-generation programming languages are known as high-level languages due to their refined programming structures. High-level languages use abstract statements.

Fourth-generation programming languages focus on highly abstract algorithms that allow straightforward programming implementation in specific environments.

The early 1990s saw the conception of the fifth generation of programming languages (natural languages).

Assemblers, Compilers, Interpreters

Assemblers are tools that convert assembly language source code into machine code.

Compilers are tools that convert high-level language statements into the necessary machine-level format (.exe, .dll, etc.) for specific processors to understand.

A tool called an interpreter does the last step of transforming high-level code to machine-level code.

The greatest advantage of executing a program in an interpreted environment is that the platform independence and memory management functions are part of an interpreter. The major disadvantage with this approach is that the program cannot run as a stand-alone application, but requires the interpreter to be installed on the local machine.

A garbage collector identifies blocks of memory that were once allocated but are no longer in use and deallocates the blocks and marks them as free.

Object-Oriented Concepts

OOP works with classes and objects.

The following breaks down the benefits of OOP:

  • Modularity The building blocks of software are autonomous objects, cooperating through the exchange of messages.
  • Deferred commitment The internal components of an object can be redefined without changing other parts of the system.
  • Reusability Classes are reused by other programs, though they may be refined through inheritance.
  • Naturalness Object-oriented analysis, design, and modeling map to business needs and solutions.

An object is encapsulated, meaning the data structure (the operation’s functionality) and the acceptable ways of accessing it are grouped into one entity.

Polymorphism takes place when different objects respond to the same command, input, or message in different ways.

Object-oriented analysis (OOA) is the process of classifying objects that will be appropriate for a solution.

Object-oriented design (OOD) creates a representation of a real-world problem and maps it to a software solution using OOP.

Other Software Development Concepts

Data Modeling

Data modeling considers data independently of both the way the data is processed and the components that process the data. A data model follows an input value from beginning to end and verifies that the output is correct.

Data Structures

A data structure is a representation of the logical relationship between elements of data.

Cohesion and Coupling

Cohesion reflects how many different types of tasks a module can carry out. If a module carries out only one task (i.e., subtraction) or tasks that are very similar (i.e., subtract, add, multiply), it is described as having high cohesion, which is a good thing. The higher the cohesion, the easier it is to update or modify and not affect other modules that interact with it.

Coupling is a measurement that indicates how much interaction one module requires to carry out its tasks. If a module has low (loose) coupling, this means the module does not need to communicate with many other modules to carry out its job.

Objects should be self-contained and perform a single logical function, which is high cohesion. Objects should not drastically affect each other, which is low coupling.

Application Programming Interfaces

An application programming interface (API) specifies the manner in which a software component interacts with other software components.


原文始发于微信公众号(debugeeker):CISSP考试指南笔记:8.8 编程语言和概念

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年9月16日08:39:22
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CISSP考试指南笔记:8.8 编程语言和概念http://cn-sec.com/archives/923217.html

发表评论

匿名网友 填写信息