Course Outline

Lua 소개

  • 약간의 역사
  • Lua의 목표, 특징 및 비목표
  • Lua 문서 및 튜토리얼 리소스
  • Lua 인터프리터 설치
  • LuaRocks 설정 및 사용

기본 구문 및 의미

  • 식별자
  • 댓글, 블록 댓글
  • 전역 변수 및 엄격성 강화
  • 지역 변수
  • 독립 실행형 프로그램, 프로그램 인수
  • 컴파일 단위, 청크, 표현식, 세미콜론

데이터 유형 및 데이터 구조

  • 기본 유형: nil, 부울, 숫자, 문자열
  • 객체 유형: 함수, 사용자 데이터, 스레드, 테이블
  • 참조/객체와 기본 값 비교
  • Lua에서 테이블의 중요성

테이블 소개 및 다양성

  • 연관 배열로서의 테이블
  • 숫자형 배열, 시퀀스로 된 테이블

기본 제어 구조

  • if then elseif else 종료
  • while 루프
  • 반복 루프
  • 간단한 for 루프

오류 처리

  • 반환 값과 예외
  • 반환 값을 예외로 변환
  • 예외를 반환 값으로 변환
  • 오류 수준

예제 프로그램

  • 다항식 평가
  • 너비 우선 탐색
  • 추가 연습

기능에 대한 추가 정보

  • 명명된 인수
  • 객체 지향 호출
  • 폐쇄
  • 카레링
  • 테일콜
  • 다중 할당 및 반환
  • Varargs

반복자와 코루틴

  • 일반적인 for 루프
  • 상태 비저장 및 상태 저장 반복자
  • 반복자와 코루틴의 차이점

메타테이블과 메타메서드

  • 설정된 예
  • __tostring 메타메서드
  • 산술 메타메서드
  • __index, __newindex 메타메서드
  • __len 메타메서드

모듈 및 패키지

  • 모듈 사용
  • 모듈 생성
  • 모듈을 패키지로 구성

고급 테이블

  • 대기열 및 스택용 테이블
  • 그래프를 설명하는 표
  • 테이블로서의 행렬
  • 테이블로 연결된 목록
  • 문자열 버퍼

예제를 통한 메타테이블

  • 프록시
  • 읽기 전용
  • 메모
  • 메모이제이션을 이용한 동적 프로그래밍
  • 피보나치의 예

환경

  • 전역 변수와 환경의 관계
  • 자유변수
  • _ENV 테이블과 _G 테이블

모듈에 대한 추가 정보

  • 모듈 생성에 대한 다양한 접근 방식
  • 동작을 변경하는 모듈
  • 모듈 초기화 및 인수
  • 환경을 사용하여 안전한 모듈 구현

고급 반복자와 코루틴

  • 생산자, 소비자, 필터
  • 반복자를 얻기 위해 코루틴 래핑하기
  • 연결된 목록에 대한 상태 비저장 반복자

생태계에 기여

  • MoonRocks에 패키지 업로드

Lua의 기능적 패러다임

  • 지도 기능
  • 축소/접기 기능

객체지향 Programming

  • OOP에 대한 다양한 접근 방식
  • 상속에 대한 다양한 접근 방식

Lua 표준 라이브러리 둘러보기

편집

  • 편집
  • 평가
  • 환경과의 관계
  • 바이너리 청크

쓰레기 수거

  • 약한 테이블
  • 종료자, __gc 메타 메서드

Lua 바이트코드와 가상머신

  • 소스 코드에서 바이트코드 생성
  • 바이트코드 읽기 및 분석
  • Lua VM의 소스 코드 둘러보기

C 모듈

  • Lua에서 C에 전화 걸기
  • Search C 모듈의 경로 및 로딩

C에서 Lua 호출 중

  • 스택
  • 오류 처리
  • 계속

C에서 Lua 값 및 유형 처리

  • 배열
  • 문자열
  • 사용자 데이터
  • 메타테이블
  • 객체 지향 호출
  • 가벼운 사용자 데이터

메모리 관리

  • 할당자
  • GC API

Lua의 스레드

  • 코루틴과 스레드
  • 실제 멀티스레딩 및 Lua 상태

Requirements

하나 이상의 다른 프로그래밍 언어에 대한 지식. Programming 경험. 선택적으로 다른 스크립팅 언어에 익숙하다면 Lua를 더 쉽게 이해할 수 있습니다.

 21 Hours

Number of participants



Price per participant

회원 평가 (3)

Related Courses

Combined C/C++, JAVA and Web Application Security

28 Hours

Advanced Java Security

21 Hours

Combined JAVA, PHP and Web Application Security

28 Hours

Standard Java Security

14 Hours

Java and Web Application Security

21 Hours

Advanced Java, JEE and Web Application Security

28 Hours

Related Categories