Sergej Chodarev
Sergej Chodarev
malloc
)void foo() {
int x = 5;
int *p = malloc(sizeof(int));
*p = 5;
}
malloc
a free
)function foo(data) {
...
return bar(data);
}
(define (factorial n)
(if (= n 1)
1
(* n (factorial (- n 1)))))
(define (factorial n)
(define (iter product counter)
(if (> counter n)
product
(iter (* counter product)
(+ counter 1))))
(iter 1 1))
Reifikácia (reification, zhmotnenie) – vytvorenie reprezentácie entity systému v meta-systéme.
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Main.sayHello(Main.java:8)
at Main.main(Main.java:4)
Throwable
void printStackTrace()
StackTraceElement[] getStackTrace()
String getFileName()
int getLineNumber()
String getClassName()
String getMethodName()
boolean isNativeMethod()
public interface Logger {
void logRecord(String className,
String methodName,
int lineNum,
String message,
int logRecordType);
...
}
public interface Logger {
void logRecord(String message,
int logRecordType);
...
}
public void logRecord(String message, int logRecordType) {
Throwable ex = new Throwable();
StackTraceElement ste = ex.getStackTrace()[1];
logRecord(ste.getClassName(), ste.getMethodName(),
ste.getLineNumber(), message, logRecordType);
}
public void logRecord(String message, int logRecordType) {
StackWalker.getInstance()
.walk(frames -> frames.skip(1).findFirst())
.ifPresent(frame -> logRecord(
frame.getClassName(),
frame.getMethodName(),
frame.getLineNumber(),
message, logRecordType
));
}
StackWalker walker = StackWalker.getInstance(
Option.RETAIN_CLASS_REFERENCE);
Optional<Class<?>> callerClass = walker.walk(s ->
s.map(StackFrame::getDeclaringClass)
.filter(interestingClasses::contains)
.findFirst());